Z E N=====TRS 80  CASSETTE================EDITOR * ASSEMBLER * DEBUGGER=============================     The 'REF' command will generate a complete cross reference listing of all the labels and the references to them in the in-memory source file.  (No selector parameter). Printer Driver --------------                  ZEN uses the TRS80 ROM printer driver at 4025H.Lines per page (4028H) are initialised at 66 once and once only on entering ZEN.Whenever ZEN displays its command loop prompt 'Z>' the line counter at 4029H has been set at 64, i.e. bottom of a page, in preparation for ZEN's formfeed that preceeds any output.COMMAND SET-----------GLOBAL COMMANDS:H ... HOWBIGK ... KILLS ... SORT     characterA ... ASSEMBLEI ... INCREASE numericO ... Operating SystemREF . CROSS REFERENCECASSETTE COMMANDS:RO .. READ   OBJECTR ... READ   SOURCERE .. READ   EDTASMWO .. WRITE  OBJECTW ... WRITE  SOURCEVO .. VERIFY OBJECTV ... VERIFY SOURCESOURCE POINTER COMMANDS:T ... TARGET    numericB ... BASE      also shift down arrowU ... UP        numeric  also up-arrowD ... DOWN      numeric  also down-arrowP ... PRINT     numericp ... LPrint    numeric  (Shift P)L ... LOCATE    stringSOURCE EDIT COMMANDS:G ... Global    numericZ ... ZAP       numericE ... ENTERN ... NEWDEBUGGER COMMANDS:J ... JumpC ... COPYF ... FILLX ... XAMINEM ... MODIFY      numericQ ... QUERY       numericq ... Query to Printer    (Shift Q)i ... Input Port  numeric (Shift I)o ... Output Port numeric (Shift O)A     ASSEMBLE, will assemble the source file from start of file to the      END pseodo-op. Upon entry you will be prompted for an output       option, these are:      V     VIDEO       (list to video).      E     EXTERNAL    (list to external printer).      C     CASSETTE      The default option generates no output. This is the fastest mode      and should be used until all source errors are eliminated. If you      select the cassette option you will be further prompted for       either a filename or filespec.S     SORT, alphabetically sorts the symbol table built during the      previous assembly. Adding a selector letter to the command will      restrict the display to symbols beginning with that letter.      Upon entry you will be prompted for an output option, these are:      V     VIDEO    (the default option)      E     EXTERNAL (printer)REF   CROSS REFERENCE will generate a listing of all the labels stored      in the Symbol Table, their hexadecimal value, the line number of      their occurrence and all references to them in the in memory      source file.  Output options are as for SORT.CASSETTE COMMANDS-----------------       The cassette drive is used to save and load two types of file,       the LEVEL II format OBJECT file (or System tape) and the ZEN       format SOURCE file.       As the formats of the two types of file are completely different       we suggest that you don't mix them on the same cassette.       Except for the read Edtasm (RE) the three cassette commands       apply to both types of file.  The default command, just the       command letter, always refers to source files.       Adding the letter 'O' to the command letter causes the command       to apply to object files.       Object files are blocks of position dependant machine code with       a filename up to six characters and an execution address at the       end of the file.       Source files are blocks of position independant text with       filenames of up to thirty characters.R      READ SOURCE, will read a source file from cassette.       Source filesre appended to the end of the in-memory file, if one       exists, thereby allowing multiple files to be merged.RO     READ OBJECT, will read an object file and load into memory.       Object files are stored at their load address.  ZEN does not       check that the System tape is not loading on top of ZEN's code.       The execution address is given as the user PC by the X command.       Both modes prompt for a filename then commence to search for       that file.       A default response to the filename request causes       ZEN to skip the name check and read the first file found.       When the file is located the letter "L" replaces the cursor.       Any checksum errors will cause the message BAD READ to be       displayed and the tape will stop.       After a source file has been read the new file size is       displayed. If the Source file exceeds available RAM the error       message MEMORY FULL is displayed and loading stops.       Source file names from tape are stored at 4531H.V & VO     VERIFY, checks that a file on cassette contains no errors.       This command is used in exactly the same way as READ but nothing       is loaded into memory. thus allowing you to check the result of       many hours work immediately.  It should become a habit to check       files as soon as you have recorded them.RE     READ EDTASM, will read an Edtasm cassette source file ignoring       the uneccessary line number bytes, which are displayed in the       top right hand corner of the video.  After reading ZEN places       the necessary colons ":" after the labels.       Edtasm tapes are not recorded with checksums and therefore       cannot be verified.W      WRITE SOURCE file to cassette.WO     WRITE OBJECT file to cassette.  Prompts will be given for name,       start, stop and execution addresses.SOURCE POINTER COMMANDS-----------------------B     BASE, pointer moves to end of file.SOURCE EDIT COMMANDS--------------------E     ENTER, enters text continuously into the file.  Upon entry the      line number is displayed as a prompt.  Type in a line of text,      terminating with the (ENTER) key.  The next line number will then      be displayed and so on.  To exit from the command simply key a      full stop "." as the first character of the line.      You can enter text anywhere in the file.  Text is inserted at the      current line with the old current line, and all following lines,      moving downwards.N     NEW, lets you add to the end, or edit, the current line.NOTE  Although line numbers are displayed with most commands you are  never required to actually enter them yourself.  They are there solely as a positional guide and are computed dynamically by ZEN rather than being stored in the file along with the text.NOTE  Should you exceed available memory the MEMORY FULL error message will be displayed.  The file will be in a safe state.Monitor Commands----------------      REENTRY is located at 4453H      ZEN won't replace the CALL as it is able to distinguish between      this and a genuine breakpoint (A CALL is needed rather than a JP      in order to leave the program counter on the stack).      J1A19H<E> returns to BASIC but with the stack still as left      by ZEN; execute a CLEAR50 command to restore the correct BASIC      environment.  Command 'O' is the same as J1A19H.      Do NOT supply a breakpoint otherwise on the first RST30 code      encountered you will be back in ZEN.      J72H is a better return to Basic but is not recognised by Radio      Shack and may not work on Model3.      J0<E> will generate a complete reboot of the system.Note: Zen is located from 4450H upwards with the entry point 4450H.      To re-enter Zen from Basic key: SYSTEM<E> *? /17488<E>M     MODIFY, lets you examine and modify memory contents.  If you      supply an address parameter then display commences at that      address.  MODIFY takes a default of the CURRENT OBJECT      POINTER which is an object pointer similar to the source      current line pointer.      The address and the byte at that address will be displayed      in hex followed by a prompt for a parameter.  The default      response will cause a step onto the next address.  Entering      an actual parameter causes that byte to be replaced with your      parameter.  Your parameter is erased on the video display,      the new value is displayed and ZEN steps to the next address.      Entering '-' (minus sign) backsteps one byte.      To exit simply key a full stop "." as your parameter.      The current object pointer is left pointing at the last byte      displayed.THE ASSEMBLER-------------LISTOFF      Stops listing        (No operand)LISTON       Cancels Listoff      (No operand)END          End assembly         (No operand)EXEC         Execution address    (One operand)DS or DEFS   Define Storage       (One operand)DW or DEFW   Define Word          (One operand)EQU          Equate               (One operand)ORG          Origin               (One operand)LOAD         Load memory          (One operand)DB or DEFB   Define Byte(s)       (Multiple operands)   or DEFMASSEMBLER OUTPUT----------------ZEN supports two list devices, the 64 character x 16 line video and an external printer.ZEN generates completely formatted output to both devices.Listings are output a page at a time with a delay between pages.The pages are set at 15 lines to the video and 60 lines to the printer.Pause Control:   Pressing any key except BREAK during the delay between pages will hold the listing until another key is depressed.Sort and Cross Reference outputs are similar in principle to assembly listings with pause control at the end of each page.ASSEMBLER ERROR HANDLING------------------------If the assembler finds an error in the source code the following will happen:(1)  Assembly terminates.(2)  An ERROR message is displayed.(3)  The incorrect line becomes the editor current line.(4)  The line is displayed.(5)  The command loop is re-entered.You can now correct the error and assemble again.ERROR MESSAGES--------------DOUBLE SYMBOL ... You have declared the same symbol more than once.UNDEFINED ....... You have used an undefined symbol.RESERVED ........ You have used a reserved keyword for a symbol.SYMBOL .......... An obligatory symbol is missing (eg with EQU).FULL ............ The symbol table is full  (Use I command).EOF ............. You have forgotten END and have hit EOF.ORG ! ........... No origin specified.HUH? ............ The line doesn't make sense.OPERAND ......... Something is wrong with the operand......                  Examples ..... LD A,256                                 BIT 9,B                                 LD(DE),C                  Also any attempts to index or jump relative                  out of range.The assembler will catch all incorrect statements.   The only incorrect statement which will damage ZEN is a LOAD over its code.ROM---   The only calls to ROM are to the official addresses published by Radio Shack.The following table compares all of the commands available at the command level in ZEN with the nearest equivalents in EDTASM and MON#3.       ZEN                   EDTASM           MON #3       ===                   ======           ======      A   Assemble             A      B   Base                 P*      C   Copy                                  M   or D   Down      E   Enter Editor         I      F   Fill                                  Z      G   Global      H   Howbig      I   Increase S.T.Shift I   Input Port      J   Jump                                   J      K   Kill                 D#:*      L   Locate               F      M   Modify                                E      N   New line             R.      O   Op. System           B                BShift O   Out Port      P   Print                PShift P   Line print           H                Shift P      Q   Query                                 H and AShift Q   Query to Printer      R   Read tape            L                L      S   Symbol table      T   Target to line       P   or U   Up      V   Verify tape      W   Write tape           W                P      X   Examine registers      REF Cross reference      A/NO/NL      Z   Zap                  DCOPYRIGHT 1982 (C) LAURIE SHIELDS & AVALON SOFTWARE 