SIG/M volume 10 games, disassembler, North Star Basic patch for CP/M, CDOS simulator, and other utilities 10.01 LANES.BAS 6K Games using MicroSoft Basic 10.02 JOURNAL.BAS 2K 10.03 GAMMONB.BAS 15K 10.04 BLACKBOX.BAS 3K 10.05 BOGGLE.BAS 1K 10.06 GAMMON.H19 11K Heath terminal adaptation 10.07 NIM1.H19 8K 10.08 OTHELLO.H19 5K 10.09 STARWAR2.H19 12K 10.10 ALS8CPM.ASM 17K Converts Processor Tech assembler files to CP/M format 10.11 DIV16B.ASM 1K 16 bit division by 8 bit divisor 10.12 DSIM.LIB 5K CDOS calls for CP/M 10.13 NSCPM48.ASM 22K Patches to run North Star Basic under CP/M 10.14 NSCPM48.DOC 8K 10.15 RETURN48.COM 1K 10.16 REZ.ASM 33K RESOURCE resurrected with .ASM 10.17 REZ.COM 7K a nifty 8080 disassembler 10.18 REZ.DOC 26K modified for Z80 TDL op codes 10.19 REZ.Z80 36K modified for Zilog op codes 1.0 INTRODUCTION A special interface between North Star BASIC (Rel 4) and CPM (V1.4 and V2.0) has been implemented. This interface allows almost all of the North Star BASIC functions and capabilities to be used on any CPM system. With suitable patching, the interface will run on Cromemco CDOS (V1.07). The following two sections describe the interface and its use. 2.0 NORTH STAR DOS TO CPM COMMAND MAPPING Assuming you are familiar with North Star DOS and CPM, the following commands are used in conjunction with the North Star BASIC (Rel 4) which runs on CPM: North Star DOS CPM A. List directory LI DIR (use Ctl-P toggle print) B. Create file CR (1) Type 2 None; creates & allocates disk space automatic- ally when you NSAVE in BASIC. Name will appear in directory as AAAAAAAA.2 (2) Type <>2 In CPM, save a dummy file to create file lengths of NNN blocks by using SAVE NNN AAAAAAAA.T where T=type. It's better to use CREATE in BASIC. C. Delete DE Use CPM's ERA command D. Compact CO Not required. CPM takes care of this. Automatical- ly allocates & de- allocates type 2 file space. E. Type TY Not required. See B. above. F. Load & execute GO None. All .COM program programs load & execute at 100H in CPM. G. Jump to address JP Not available in CPM H. Copy file CF Use PIP program. Use SYSGEN program for CPM I. Copy disk CD Use PIP & SYSGEN programs J. Read & write RD, WR Not available disk sectors K. Load & save file LF, SF Not completely available. Can do using DDT and SAVE in CPM. All SAVEs assume RAM address is at 100H; e.g., use .2 & .3 extensions for type 2 & 3 files, respectively. L. Initialize disk IN Use a format program. Be careful; will destroy programs. M. Diagnostic DT Use disk test program. Be care- ful; will destroy all programs. 3.0 NORTH STAR BASIC COMMANDS (REL 4) The following is a list of capabilities of the interface with BASIC: A. CREATE - Will create files by reserving disk space by saving dummy files of the size and type specified. This function will be slower than with North Star since in order to reserve disk space in CPM, you must actually save a file of the size specified. See item L. in the next section for the situation where the disk becomes full during a CREATE. BASIC has been patched to remove the file size limit of 350 blocks. The current limit is 4095 blocks which should suffice for 8" quad density. This allows up to a 1 Megabyte file to be created. -4096 (F000H) has been patched into location DF7H. B. DESTROY - No change C. OPEN - No change D. CLOSE - No change E. READ - No change F. WRITE - No change G. FILE - No change H. SAVE - No change; file must already exist in the directory I. NSAVE - No change; use if file does not exist in directory J. LOAD - No change K. APPEND - No change L. RND(-1) - Will not generate a random number M. MEMSET and End of BASIC's Memory - MEMSET will give an ARGUMENT ERROR when you try to set the address at BDOS or above. The end address of memory is set to the beginning of BDOS-1 when BASIC is first loaded and executed. N. BSPC - BASIC has been patched at 817H to echo the Backspace character (Ctl-H = 8H). O. LINECT - BASIC has been patched at 80EH to a line length of 132. 4.0 SPECIAL FEATURES AND NOTES A. Drives 1 and 2 in North Star DOS/BASIC are synonomous with drives A and B in CPM. B. CPM does not allow you to SAVE a file larger that available memory. Thus if you have large data files to create, you must create several small files using the save technique above and concatentate them using the PIP concatena- tion feature. The size of the large file should equal the sum of the sizes of the small files. It is recommended that you create a file in BASIC using CREATE; it is easier to do. C. The interface has an added feature which allow you to freeze and unfreeze the screen using the Control-S toggle as in CPM while listing on the console device. D. Your CPM or CPM derivative must have a standard BIOS jump table up to the PUNCH device jump address and standard CPM BDOS calls. E. The CPM CONSOLE IN and OUT device is device number 0 in BASIC. F. The CPM LIST device is device number 1 in BASIC. G. The CPM PUNCH device is device number 2 in BASIC. One suggested use is as a list device with paging. H. Make sure you do not have files in the directory with the same name and one character type. Except for LOAD, APPEND, SAVE and NSAVE, BASIC disk commands will work with the first directory entry with a matching name and ambiguous one character type. Types with more than one character will be ignored. I. The base or start address of BASIC is 800H (2048D). The interface starts at 100H. A jump table equivalent to that in North Star DOS starting at 200DH is at 103H. J. Data file directories are kept in a buffer which holds 10 open files. These files are purged on a FIFO basis. If new files are opened and the buffer is full, the oldest one is purged. Be careful that your program does not keep a file open any longer than is necessary. K. A disk full, directory full, or file extension error gives an ARGUMENT ERROR. L. When using CREATE and disk becomes full, the normal BASIC error message or error number will not be generated. This is because of the way the interface had to be implemented. When this occurs, the message 'DISK/DIR FULL' will be printed on the console, and the program will abort and return to CPM. M. The program RETURNP.COM can be used (e.g., in L. above) to return to BASIC without scratching the program. Just type RETURNP(cr). N. The program RETURNV.COM can be used (e.g., in L. above) to return to BASIC without scratching the program or the variables. Just type RETURNV(cr). O. The programs in M. and N. above put the appropriate jump (i.e., 804H and 814H) into location 139H in the interface. P. To incorporate the turnkey start up of BASIC, 1. Load and execute BASIC by typing NSBASIC(cr) 2. Type 1000 CHAIN "program name"(cr) 3. Type BYE(cr) 4. Type SAVE 60 NSBAS4.COM(cr) [or any program name.COM] 5. Type DDT NSBAS4.COM(cr) 6. Type S80F(cr) 7. Type 0(cr) 8. Type .(cr) 9. Type Ctl-C(cr) 10.Type SAVE 60 NSBAS4.COM(cr) The program will now load and execute after loading and executing BASIC. Q. For those using CDOS V1.07, the following patches are required for compatibility; use DDT or DEBUG to patch; then SAVE 60 NSBAS4.COM: ADDRESS CURRENT CODE PATCH 23DH 21H,89H,0,CDH,D4H,4 11H,9,0,19H,0,0 3A4H CDH,D1H,4 0,0,0 3ADH CDH,D1H,4 0,0,0 4B5H 21H,8FH,0,CDH,D4H,4 11H,0FH,0,19H,0,0 These patches only apply to Revision 8 of the interface. RETURNP.COM and RETURNV.COM need to be changed also. The easiest way is to use DDT or DEBUG after the above patches are applied and BASIC resaved. Load in BASIC using DDT; patch location 139H with JMP 804H or JMP 814H for RETURNP.COM or RETURNV.COM, respectively; exit DDT with a Control-C; then SAVE 1 RETURNP.COM or RETURV.COM. R. Revision 8 is identified by a period (.) preceeding the file type when doing a CAT. All previous versions used a blank. 11/20/79