The cassette version of FORTH Since the cassette version has no use of disc access routines, the FORTH words in TABLE 1 have been removed. These words would otherwise occupy valuable memory space, and their use would crash the system. TABLES 2 and 3 list words changed and added to the system. BLOCK and BUFFER are identical. BLOCK first looks for a buffer identified by the block number requested (?BUFF does this). If none of the buffers contains the requested block, a "free" buffer should be assign -ed. ?ASSIGN looks for the first buff- re not marked "updated", and assigns it to the requested block number. If all buffers are marked as updated, a message will be printed. See screens 1, 2 and 3 for BLOCK, ?BUFF and ?ASSIGN. CINDEX lists the block (or screen) number, and the first line, of the first 5 buffers. If the first line contains a non-printing character, a line of blanks is printed. If you have a 32K RAM ABC80, you will have 21 more buffers available. Depress any key to list the remaining buffers. RETURN (key) will exit CINDEX. Each buffer of 768 bytes is preceeded by a two byte header (which contains the screen number, with the most significant bit set if the block has been "updated", and the buffer is followed by a three byte tail (two bytes in disc version). These bytes are always set to zero, which stops loading of a block. ZTAIL puts zeroes in all the tail bytes. ZHEAD puts zeroes in all the header bytes. EMPTY-BUFFERS is defined as ZHEAD ZTAIL. The contents of the buffers is therefore not destroyed by EMPTY-BUFFERS. MEMORY ALLOCATION In the disc version, FORTH begins at the bottom of RAM (32768 or 49152) and occupies about 7.5K. The disc buffers (12 or 2) are located at the top of memory (up to 62720) and the intervening space is free for new FORTH words (+ terminal buffer and stacks). In the cassette version, FORTH begins at 53082, occupying about 7K, with space above, up to 64256. Between 49152 and FORTH we find 5 buffers. If an addi- tional 16K of RAM is available, it is used for 21 buffers, from 32920 to 49151. COLD (the cold start routine) tests if extra RAM is available (?START does this) and resets the value of FIRST (lowest buffer address) and #BUFF. All tails are zeroed and the printer is set to PR-OFF. The remainder of COLD is unchanged from the disc version. EXIT FROM THE SYSTEM The disc version of BYE is a system reset (equivalent to pushing the "panic button"). In the cassette version, BOFA and EOFA are set to the limit between the top buffer and FORTH. Following BYE you can run a BASIC program to read up- dated buffers and write them out as a text file, for future use. $BAS has been added to FORTH. BOFA and EOFA are set to the current end of FORTH (equal to HERE). After using a short BASIC program (to load additional screens, for example) a warm start of FORTH will allow you to continue using the new words loaded, or defined, on the previous use of FORTH. TABLE 1 FORTH words deleted from the cassette version ERR# ?DISK TRIAD INDEX FLUSH R/W SEC-WRITE SEC-READ T&SCALC SET-DRIVE DR1 DR0 +BUF DISK-ERROR DENSITY SEC/BLK TRACK SEC DRIVE TABLE 2 FORTH words chnaged BLOCK BUFFER BYE EMPTY-BUFFERS MESSAGE COLD LIMIT VEDIT TABLE 3 FORTH words added CINDEX ?ASSIGN ?BUFF ZWORD ZHEAD ZTAIL ?START $BAS Best regards from Robert Johnsen