Lectori Salutem! CP/M FIGFORTH adapted for CP/M 2.X by Albert van der Horst (030-911911) FORTH Gebruikersgroep of the ***** HCCH ****** HOBBY COMPUTER CLUB (HOLLAND) (facilities : courtesy of BSO/AT in UTRECHT ) This one is an Osborne version, but there are no modification neccessary to access standard 8" diskettes. -------- INTRODUCTION ----------------------------- This description is only meant to help in bringing up your CP/M FORTH system. It cannot replace the FIGFORTH installation guide. Now that CP/M supports random access files ( rel 2.0 ) there is no point in FORTH addressing physical sectors. Instead, sectors are allocated in file with some user specified name. You simply type: A>FORTH FORTH.FRT where you may use any file containing blocks for FORTH.FRT To make starting easier, also a file named STARTUP.FRT is supplied. One will discover that a number of words have disappeared, that were not useful in portable software, mostly low level stuff. All names required by the FIGFORTH installation manual remain. Because FIGFORTH 1.1 was intended for 8" diskette, disk access on the Osborne was really inefficient: 73 sec for 80 blocks. Now it is 2 to 3 sec. Copying blocks is faster than in unmodified 1.1 FIGFORTH for 8" and about as fast as 8" systems modificied for speed. ( But these suffer from incompatiblity) --------- CONTENTS STARTUP.FRT ------------------ SCREEN 0 Better not used for programs because of the FIGFORTH model SCREEN 1&2 Simple screen editor SCREEN 2 Also : utility to extend the mass storage SCREEN 3 Screen copy utility SCREEN 4&5 System error messages SCREEN 6&7 Debug help -------- ALLOCATING MORE BLOCKS ------------ The file STARTUP.FRT can be used as a starting point for a file of blocks of the size wanted (as long as space permits) To extend mass storage with N blocks load block 1&2 and type: N EXTEND The new word BDOS allows to use the space remaining on the floppy to make or read CP/M files without the necessity for low level definitions. Use COPY-SCREEN from screen 3 to place blocks where you want them. -------- OSBORNE EDITOR AS AN EXAMPLE ------------------- Most people would not like the official FIGFORTH editor, if their system has a cursor supported video screen. If you insist on the FIGFORTH editor, read the next paragraph. Instead of the FIGFORTH editor an example of a screen editor is given. The editor on screen 1&2 is for the Osborne 1. You will not have much trouble in adapting it, especially if your's is a Televideo compatible terminal. Edit screen 5 with cursor control : 5 EDIT To exit : ^E Toggle insert mode : ^I Delete next character : ^D To quit : ^Q Delete current line : ^Y Insert line before current : ^X Clear screen : ^Z Simple, and quite usable! -------- ADVICE ON BRINGING UP AN EDITOR --------- If you have any memory mapped video, the whole of screen 1 will work all right as soon as you fill in the SCAD constant. You may use X E-L to change line X with your own cursor control system and ^E and ^Q will work all right. This may help you to patch in your own escape sequences (if any) A-L and C-L will work always, memory mapped or not. If you don't have memory mapped video you willl probably need the FIG-FORTH editor as described in the installation guide/glossary. Type it in with your favorite CP/M editor. Take care to have exactly 64 characters a line ( including linefeeds and/or carriage returns) Append the file to STARTUP.FRT, start up FORTH with this file and replace all control char's by spaces: HEX : -CTL 10 0 DO A-L DROP 3E + 2020 SWAP ! LOOP ; for CR+LF HEX : -CTL 10 0 DO A-L DROP 3F + 20 SWAP C! LOOP ; for CR only -------- ASSEMBLING THE SYSTEM ------------------- If you have enough disc space, the FORTH assembler source may reside in one file. Assembling is straigtforward for that case. If you change the source, please increment the user version number, it will be visible as a letter on startup. -------- ASSEMBLING ON A SMALL SYSTEM ------------ The following is meant for single sided, single density 5" floppies like the Osborne 1 where FORTH.ASM is split in three and FORTH.SUB has to be used. First copy ASM.COM, LOAD.COM, PIP.COM en FORTH.SUB to an empty floppy in drive A: and FORTH1.ASM,FORTH2.ASM en FORTH3.ASM to an empty floppy in drive B: . Start the assembly by typing: A>SUBMIT FORTH A new FORTH system will be created on the disk in drive B: Room is critical. Because the source is splitted in three WORDSTAR may be used as long as you discard the .BAK files immediately. ----------- ENHANCING THE BASIC SYSTEEM -------------- The good cooperation with CP/M allows to create a FORTH with a greater precompiled portion. An example : 6 LOAD 7 LOAD DECIMAL HERE 256 / . 43 OK HEX LATEST 10C ! HERE 11C ! HERE 11E ! BYE A>SAVE 43 DEBUGFRT.COM ----------- REMARKS ----------------------------- The mechanisme where a great screen number is automatically located on a second drive has been abandoned. A number of two drives is an arbitrary choice. It is felt that this stuff doesn't belong in a basic system especially now that assigning the block area is flexible and system independant.The block area may also reside on drive B ( or for that matter a winchester disk) Using the word BDOS , you can easily access other files by creating an FCB somewhere and even imitate the old situation, working transparently with 2 drives. Y