Sharp logo
HU BASIC 700B 
written by Paul Trainer / SUC/UK
Source: SUC-magazine July 1992, Volume 12, Number 2, pp. 49 - 51 


I mentioned in the last issue that Maurice had done some work on a Japanese Version of Hu BASIC for the 700 and that there was still some work to be done on the graphics etc. Well thanks to Geoff Cox of London, we have the proper British / European version, the one that Kuma used to retail. Geoff also sent me a copy of the list of keywords and commands for the BASIC and I have listed them below.

Commands and syntax similar to Sharp S-BASIC.

LIMIT, NEW, AUTO, LIST, RUN, CONT, DELETE, RENUM, TRON, TROFF, LOAD, SAVE, VERIFY, MERGE, LET, PRINT, USING, INPUT, CLR, DIM, GOTO, GOSUB, RETURN, IF...THEN, FOR...TO, NEXT, ON, STOP, END, REM, READ, DATA, RESTORE, DEF FN, POKE, OUT, ON ERROR GOTO, RESUME, ERROR, CONSOLE, CURSOR, COLOR, CLS, KEY/DEF KEY, KEYLIST, MID$, BOOT, MUSIC, TEMPO, SIN, COS, TAN, ATN, ABS, SGN, INT, SQR, EXP, LOG, PAI, RAD, RND, ASC, CHR$, VAL, STR$, HEX$, LEFT$, RIGHT$, LEN, PEEK, USR and ERL.

Additional commands, some of which can be found in Sharp DBASICs.

CLEAR
Clears and partitions memory.
NEWON Restores machine to “power on" status.
LLIST Similar to LIST/P
EDIT
Brings a program line to view for editing.
SEARCH Searches for a string within a program.
LOADM Loads machine code into memory for use by BASIC.
SAVEM Saves machine code to tape.
DEFtype Assigns numeric or string types to groups of variables.
LPRINT Similar to PRINT/P
WRITE Prints data on the screen using quotes and commas.
LINPUT Stops program and awaits a complex string of data from the keyboard.
OPTION BASE Sets the lowest subscript of arrays to 0 or 1.
LABEL
Assigns an identifying label to a point in a program.
REPEAT Initiates a loop concluded by an UNTIL statement.
UNTIL Ends a REPEAT loop and defines the conditions for its termination.
WHILE/WEND Similar to above.
SWAP Swaps the values of two variables.
DEF USR Defines a user-defined machine code subroutine.
CALL
Calls a machine code subroutine.
OUT Sends a byte of data to a specified output port.
OPEN Opens an input/output buffer.
CLOSE Closes an input/output buffer.
PRINT# Writes data to a sequential file.
WRITE# As above, but with use of commas and quotes.
INPUT# Reads sequential file.
LINPUT# Reads a complex data string from sequential file.
ERROR Simulates an error condition.
LOCATE
Similar to CURSOR.
CREV Prints characters in reverse image.
CFLASH Prints blinking characters.
CSIZE Creates oversized characters.
DEF CHR$ Creates a user-defined character.
WINDOW Relates logical graphics coordinates and absolute screen coordinates.
POKE@ Puts a byte of data into video RAM.
OPTION SCREEN Switches graphics memory to use as ordinary read/write memory.
KEYO Simulates the input of data from the keyboard.
REPEAT ON/OFF Turns on/off the character repeat feature of keys held down.
CLICK ON/OFF Turns on/off a click sound when typing.
MEM$ Writes or returns a string to a specified memory location.
MON Jump to RAM monitor.

PAUSE

Pauses program for a specified period.
WAIT Awaits a specified byte of data at an input port.
TIME$ Similar to TI$.
DAY$ Sets the day of the week.
DATE$ Sets the day, month and year.
TIME Sets the program execution timer to zero.
BEEP Similar to USR(62).
PLAY
Performs the function of both MUSIC and TEMPO statements.
FIX Truncates decimal numbers, making them integer.
FRAC Returns decimal portion of a number.
CINT/CSNG/COBL Convert numbers to integer, single-precision, and double-precision type, respectively.
FAC Returns a factorial of a number.
OCT$ Converts a number to octal form.
BIN$ Converts a number to binary form.
STRING$ Returns a string of a specified length made of a single character.
SPACE$ Returns a string of blanks.
INSTR Reports the position of a substring within a string.
HEXCHR$
Returns a hexadecimal representation of a character string.
PEEK@ Reads the contents of a specified location in video memory.
POS Reports the horizontal position of the cursor.
LPOS Reports the position of the printer head.
FRE Similar to SIZE.
POINT Reports the pallet code of a dot on the screen.
SCRN$ Returns a string of specified length taken from the video display.
CHARACTER$ Returns the character from a specified position.
INKEY$ Similar to GET A$.
CSRLIN Reports the vertical position of the cursor.
DTL Reports line number of the currently read DATA statement.
ERR Similar to ERN.

There are also a few other undocumented commands which I have found whilst entering ‘Block Land‘ and other programs, some are reserved features and others are not implemented. Others probably would work if I knew the syntax. A list of these are below.

AND, OR, NOT, KLIST, DEVI$, DEVO$, SPEED, ERASE, FILE, LFILE, DEVICE, NAME, JOY, KILL, LSET, RSET, INIT, VDI, MAXFILE, CGEN, MKI$, MKS$, MKD$, RANDOMIZE and additional aspects to commands such as BEEP 1 which gives a continous tone until BEEP 0 is entered. There was no mention of a sound poke in either the stuff Geoff sent me or Software Manual 1, so I decided to find it. It is similar to S-BASIC in the respect of poking a location and then using another address to switch it on/off. POKE 3197,n :CALL(3109) is the syntax to turn it on ( n=0 to 255 ).To switch the sound off, CALL(3136). Another nice touch is the use of either upper or lowercase to enter commands.

In conclusion - Hu BASIC 700B is a super tape-based language to use, I suspect, given some of the reserved features above that it has been taken from a disk based version; the free space of only 28k tends to back this up. If there were a full disk version, I would use no other. When you request this BASIC please remember that Maurice and others did a lot of work converting the MZ-80K version to the 700 and that full documentation for that version also relates to the new version and can be found in SOFTWARE MANUAL No. 1.


Go to the top of this page Home

last updated September 13, 2003
SUC / UK: Paul Trainer