Paper-Tape HP-BASIC info... (incomplete, I have no docs to go by) When entering code use underscore to logically erase the previous character, use the shift squiggly thing (next to 1) to abandon the line. This basic has only numeric input, no strings besides PRINT, requires LET, one statement per line. Variable names are a single letter plus an optional digit, array names are a single letter. The last line must be END. One or two dimension arrays can be DIM'd, has matrix ops like MAT C = A + B to operate on entire arrays at once, MAT A=ZER clears array. Has floating point math and ops like SIN COS TAN etc. Enter SCRATCH to erase the program in memory. PTAPE loads a basic listing attached to PTR, the easiest way to save a listing is LIST then copy/paste from the terminal to a file. (PLIST writes to PTP but isn't readable). Lines must be 72 chars or less, printed lines too or they will wrap or ignore the ';' on the preceding line. BYE jumps to mem loc 77 (OCTAL), stock is halt but a JMP 76,I can be added here with loc 76 containing the address to jump to. Run from 100 to initialize, run from 2050 to re-enter and preserve the program in memory (READY doesn't show), run from 5137 to execute the basic program. Typically it's convenient to add JMP 3,I (124003) to location 2 and one of these addresses to location 3. Location 111 contain the location of the driver code, which extends to the nearest 4KW boundary minus 101 to leave room for the boot loader program. When a basic program is present location 113 contains the end of the program. Location 110 contains the end of the basic interpreter. The following keywords were found by dumping the binary as text. The first 8 (RUN to BYE) are immediate commands, the last 5 (ZER-TRN) appear to be matrix functions. RUN DEF CALL AND LOG SCR[ATCH] REM DATA OR ABS LIST GOTO READ >= SQR PLIST IF PRINT <= INT PTA[PE] FOR INPUT <> RND STOP NEXT RESTORE TAB SGN TAP[E] GOSUB MAT SIN ZER BYE RETURN THEN COS CON LET END TO TAN IDN DIM STOP STEP ATN INV COM WAIT NOT EXP TRN Some of these are self-explanitory if used to old-style basics but others elude me.. like does CALL call ML and how to do it, and if LISTing only some lines is possible. In addition to this list the normal single-char functions < > = + - * / ^ ( ) work as expected. <> converted to #. The following procedure can be used to make a 28KW version of papertape BASIC using the prepare.abs and hpbasic.abs files... ------- begin log -------- sim> set clk dev=10 sim> set tty dev=11 sim> set ptr dev=12 sim> set ptp dev=13 sim> load prepare.abs sim> load hpbasic.abs sim> attach ptp basic28.abs PTP: creating new file sim> d s 11 sim> run 2 PHOTO READER I/O ADDRESS? 12 PUNCH I/O ADDRESS? 13 SYSTEM DUMP I/O ADDRESS?13 CORE SIZE? 28 HALT instruction 102077, P: 16562 (JMP 16547) sim> detach ptp sim> d 0-77777 0 sim> load basic28.abs sim> run 100 READY ------- end log ----------