A>PIP b:draft.txt = a: B3>PIP myfile.dat=A:[G9] A9>PIP B:[G3]=myfile.dat COPY A FILE AND RENAME IT A5>PIP newdraft.txt=oldraft.txt C8>PIP b:newdraft.txt=a:oldraft.txt COPY MULTIPLE FILES A>PIP b:=draft.* A>PIP b:=*.* B>PIP b:=c:.*.* C>PIP b:=*.txt[g5] C>PIP a:=*.com[wr] B>PIP a:[g3]=c:*.* COMBINE MULTIPLE FILES A>PIP b:new.dat=file1.dat,file2.dat COPY, RENAME AND PLACE IN USER 1 T PRINTER {OUTPUT TO} FILE filespec {option} | PRINTER PUT CONSOLE {OUTPUT TO} CONSOLE PUT PRINTER {OUTPUT TO} PRINTER Explanation: PUT puts console or printer output to a file for the next command entered at the console, until the program terminates. Then console output reverts to the console. Printer output is directed to a file until the program terminates. Then printer output is put back to the printer. PUT with the SYSTEM E5[s] The [s] option tells LINK-80 to search FILE5 as a library. LINK-80 combines MYFILE.REL with the referenced subroutines contained in FILE5.REL on the default drive A and produces MYFILE.COM on drive A. ///1mac Syntax: MAC filename {$options} Explanation: MAC, the CP/M 3 macro assembler, reads assembly language statements from a file of type .ASM, assembles the statements, and produces three output filefault) +S appends symbol file to print file -S suppresses creation of symbol file +1 produces a pass 1 listing for macro debugging in .PRN file -1 suppress listing on pass 1 (default) ///1PATCH Syntax: PATCH filename{.typ} {n} Explanation: The PATCH command displays or installs patch number n to the CP/M 3 system or command files. The patch number n must be between 1 and 32 inclusive. Example: A>PATCH SHOW 2 Patches th A>pip newdraft.txt[g1]=oldraft.txt COPY, RENAME AND GET FROM USER 1 A>PIP newdraft.txt=oldraft.txt[g1] COPY TO/FROM LOGICAL DEVICES A>PIP b:funfile.sue=con: A>PIP lst:=con: A>PIP lst:=b:draft.txt[t8] A>PIP prn:=b:draft.txt ///2options PIP OPTIONS A Archive. Copy only files that have been changed since the last copy. C Confirm. PIP prompts for confirmation before each file copy. Dn Delete any characters past co option directs all subsequent console/printer output to the specified file. This option terminates when you enter the PUT CONSOLE or PUT PRINTER command. ///2Options [ {ECHO | NO ECHO} {FILTER | NO FILTER} | {SYSTEM} ] ECHO specifies that output is echoed to the console. This is the default option when you direct console output to a file. NO ECHO specifies that file output is not echoed to the es with the input filename and filetypes of .HEX, .PRN, and .SYM. Filename.HEX contains INTEL hexadecimal format object code. Filename.PRN contains an annotated source listing that you can print or examine at the console. Filename.SYM contains a sorted list of symbols defined in the program. ///2Examples A>MAC SAMPLE A>MAC SAMPLE $PB AA HB SX ///2options Use options to direct the input and output of MAC. Use a letter with the optione SHOW.COM system file with patch number 2. ///1PIP (copy) Syntax: DESTINATION SOURCE PIP d:{Gn} | filespec{[Gn]} = filespec{[o]},... | d:{[o]} Explanation: The file copy program PIP copies files, combines files, and transfers files between disks, printers, consoles, or other devices attached to your computer. The first filespec is the destination. The second filespec is the source. Use two or more source filespecs slumn n. E Echo transfer to console. F Filter form-feeds from source data. Gn Get from or go to user n. H Test for valid Hex format. I Ignore :00 Hex data records and test for valid Hex format. K Kill display of filespecs on console. L Translate upper case to lower case. N Number output lines O Object file transfer, ^Z ignored. Pn Set page length to n. (default n=60) Qs^Z Quit copying from source at string s. R Read files that have been set console. NO ECHO is the default for the PUT PRINTER command. FILTER specifies filtering of control characters, which means that control characters are translated to printable characters. For example, an ESCape character is translated to ^[. NO FILTER means that PUT does not translate control characters. This is the default option. SYSTEM specifies that syst to indicate the source and destination drives, and console, printer, or zero output. Valid drive names are A thru O. X, P and Z specify console, printer, and zero output, respectively. Assembly Options That Direct Input/Output A source drive for .ASM file (A-O) H destination drive for .HEX file (A-O, Z) L source drive for macrolibrary .LIB files called by the MACLIB statement. P destination drive for .PRN file (A-O, X, P, Z) eparated by commas to combine two or more files into one file. [o] is any combination of the available options. The [Gn] option in the destination filespec tells PIP to copy your file to that user number. PIP with no command tail displays an * prompt and awaits your series of commands, entered and processed one line at a time. The source or destination can be any CP/M 3 logical device. ///2Examples COPY A FILE FROM ONE DISK TO ANOTHER A>PIP b:=a:draft.txt to SYStem. Ss^Z Start copying from the source at the string s. Tn Expand tabs to n spaces. U Translate lower case to upper case. V Verify that data has been written correctly. W Write over Read Only files without console query. Z Zero the parity bit. All options except C,G,K,O,R,V and W force an ASCII file transfer, character by character, terminated by a ^Z. ///1PUT Syntax: PUT CONSOLE {OUTPUT TO} FILE filespec {option} | CONSOLE PU You must turn on password protection before you can assign passwords to files. SET [PROTECT=OFF] Disables password protection for the files on your disk. A>SET MYFILE.TEX [PASSWORD=MYFIL] MYFIL is the password assigned to file MYFILE.TEX. B>SET *.TEX [PASSWORD=SECRET, PROTECT=WRITE] Assigns the password SECRET to all the TEX files on drive B. Each TEX file is given a WRITE protect mode to prevent unauthorized editing. A>SE A>SET [CREATE=ON,UPDATE=ON] ///2Drives Syntax: SET {d:} [RO] SET {d:} [RW] Example: A>SET B: [RO] Sets drive B to Read-Only. ///1SETDEF Syntax: SETDEF { d: {,d: {,d: {,d:}}}} {[ TEMPORARY = d: ] | [ ORDER = (typ {,typ}) ]} SETDEF [DISPLAY | NO DISPLAY] SETDEF [PAGE | NOPAGE] Explanation: SETDEF allows the user to display or define up to four er on the disk Number of free directory entries for the disk Drive characteristics ///2Examples A>SHOW A>SHOW [SPACE] Instructs the system to display access mode and amount of space left on logged-in drives. A>SHOW B: Show access mode for drive B and amount of space left on drive B. A>SHOW B:[LABEL] Displays label information for drive B. A>SHOW [USERS] Displays the current user number and all the u (Load) Load program and symbol table {,sym-filespec} for execution E*sym-filespec (Load) Load a symbol table file Fs,f,d (Fill) Fill memory with constant value s is the start address f is the finish address d is an eight-bit data item G{p}{,a{,b}} (Go) Begin Execution p is a stT MYFILE.TEX [RO SYS] Sets MYFILE.TEX to Read-Only and SYStem. ///2Default A>SET [DEFAULT=dd] Instructs the system to use dd as a password if you do not enter a password for a password-protected file. ///2Time-Stamps Syntax: SET [CREATE=ON] SET [ACCESS=ON] SET [UPDATE=ON] Explanation: The above SET commands allow you to keep a record of the time and date of file creation and update, or of the last access drives for the program search order, the drive for temporary files, and the file type search order. The SETDEF definitions affect only the loading of programs and/or execution of SUBMIT (SUB) files. SETDEF turns on/off the system Display and Console Page modes. When on, the system displays the location and name of programs loaded or SUBmit files executed, and stops after displaying one full console screen of information. ///2Examples A>SETDEF sers on drive A and the corresponding number of files assigned to them. A>SHOW C:[DIR] Displays the number of free directory entries on drive C. A>SHOW [DRIVE] Displays the drive characteristics of drive A. ///1SID Syntax: SID {pgm-filespec} {,sym-filespec} Explanation: The SID symbolic debugger allows you to monitor and test programs developed for the 8080 microprocessor. SID supports real-time breakpoints, fully moart address a is a temporary breakpoint H (Hex) Displays all symbols with addresses in Hex H.a Displays hex, decimal, and ASCII values of a where a is a symbolic expression Ha,b Computes hex sum and difference of a and b where and update of your files. ///3Options [CREATE=ON] turns on CREATE time stamps on the disk in the default or specified drive. To record the creation time of a file, the CREATE option must be turned on before the file is created. [ACCESS=ON] turns on ACCESS time stamps on the disk in the default or specified drive. ACCESS and CREATE options are mutually exclusive; only one ca Displays current SETDEF parameters. A>SETDEF [TEMPORARY=C:] Sets disk drive C as the drive to be used for temporary files. A>SETDEF C:,* Tells the system to search for a program on drive C, then, if not found, search for it on the default drive. A>SETDEF [ORDER=(SUB,COM)] Instructs the system to search for a SUB file to execute. If no SUB file is found, search for a COM file. A>SETDEF [DISPLAY] Turns on the snitored execution, symbolic disassembly, assembly, and memory display and fill functions. SID can dynamically load SID utility programs to provide traceback and histogram facilities. ///2Commands Command Meaning As (Assemble) Enter assembly language statements s is the start address Cs{b{,d}} (Call) Call to memory location from SID a and b are symbolic expressions Icommand tail (Input) Input CCP command line L{s}{,f} (List) List 8080 mnemonic instructions s is the start address f is the finish address Ms,h,d (Move) Move Memory Block s is the start address h is the high address of the block n be in effect at a time. If you turn on the ACCESS time stamp on a disk that previously had CREATE time stamp, the CREATE time stamp is automatically turned off. [UPDATE=ON] turns on UPDATE time stamps on the disk in the default or specified drive. UPDATE time stamps record the time the file was last modified. ///3Examples A>SET [ACCESS=ON] ystem display mode. Henceforth, the system displays the name and location of programs loaded or submit files executed. A>SETDEF [NO DISPLAY] Turns off the system Display mode. ///1SHOW Syntax: SHOW {d:}{[SPACE |LABEL |USERS |DIR |DRIVE]} Explanation: The SHOW command displays the following disk drive information: Access mode and the amount of free disk space Disk label Current user number and Number of files for each user numb s is the called address b is the value of the BC register pair d is the value of the DE register pair D{W}{s}{,f} (Display) Display memory in hex and ASCII W is a 16-bit word format s is the start address f is the finish address Epgm-filespec-Copyright (C) 1982, Digital ResearchI BIOS3 SPR D200 0E00 BDOS3 SPR B300 1F00 44K TPA $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$I$I$I$A k@;W@|kީ?+)*+,-./0?4 < 3@+ t4  h@x16>Ë̀~!:Ͼ҈z}D#cdfg!"()͆͂bͧʷb!B6NN!B˹!z<*"!"z:ѷ{*:w:϶w*˵*:zG~G!~*!!~~#~O~#G~.|! w:cʇ̈́w!x?w! ~ʽw-llϹqOý.|W|*"ʻj*:ϥŒ"R:W>Rʻ:!Ϧjx!Ͼw4 ͚̚͡@O ͊DM͠}>˹""ϯ2:2* :Ϸ:EsMO s#rͰ:(±y==±*!^W*=2wXկw# 12!"34#$!"#$1234%&'(5678 )*+,9:;<  -./0 12345678 !"#$%&'(9:;<=>?@>>0> y>>     %&'()*+, -. /0 >7>YI !ͬ!Pw#¬ʵy>>y>#͕: =o&)))))))!>7ͪկͪ>2J>=>2A>!2J" :OZ:اO :O0O:Ϸ ͯ~w#w#6##-a * ͯ~?G++Np# |m˹ͥZo!҅o#~*˵ͥ&&²&>͋͹d-j6͚>͙Fb-w ~<q*>=)ү_|:0ʠêͺ:<­‡Hq:Ϸ>~c!хo#~^#VG#~#~!##N#F#^#V#~#fo~_*"}o|g">2{&&2{2|*͆D<8+}7*#}o|g:Oº*s#r#w!~wȵ~@wȵ6HϷʌͺRg[|OEү w @~@w>2:Ϸ>*͊:3:z͞!>2Ob2@:G:O:=27)yy/W!:#Ɔ?>F6:_/G:Ϸ^:Ϣ_|OfKyp!VuWy/2&:2˹ :w++~=wϹ4-Oҫ5:<Ϲ4{͊>2:!ϾϹ3:zϹ͞ϹͰ@Rʻ_@!">r#~?w#>r# =J̧ʷ 4 w͚ ~O ʙ:z<>w##~2_4~?ʈ͆x:<ʈʈ{ͥͬ͢ ~2~2!: !ʴ=ë ~#fo>Y֎ 0BTfx׊y2A>2-: O=Է<2! ͢~ n& ~/oy2 Ҟ{…>22͕ڞ',_ {]!_ͬ͢ O R ON A: NO CCP.COM FILECCP COM1>22!"*":Ow# xy2 `i"*y2"!""!`Ϳɯ2!"H<<WMR!wͿ \,\\\* CP/M VERSION 3.0 BIOS ER2{&Óͥ:*:˹"R̀**ͥq̀*"z::˹2ͬ͌ͬ͌ͬ(}/_|/*ϤW}o"6"!_ʍ:OsÙ*"ͥcͬ͌ôͬ͌í͔ͥ͡`-}͔Pͬ yá>O ~<Œw:ҧ* ~§2&@tƽ͖ͬ:z<ô~?̀~?ͥ *>͆yʯ2zp##q:˹!̯2!"R|:2ͥ:ѷN>2<2͡|!Ͼw:>2*6s͙ͤ|͔ȿw ʠʡڠķ¡w ~w 2>y&!"*>o+"!͗*!"s͙" wɯ2zؽ ̈́ʹOFqy3Np͆ͯ:ϷZ~MwS~¹o¹#¹ # ? -:@ʕ ~#w>͙{͆ _++V* -Os++r!x>w~6:Ϸ6~#+w#w+~~$ +*!>  #>? #÷*~ w0" *y͐}0͋ ͚͙^ּ2͋ , BIOS REV 1.0 FOR MORROW DESIGNS DJ2D CONTROLLER @ 0E000H. ~#O ÿ1!nͿү2 2û>22!"*"!""!ûõmm26mmcmimgmmmmmm!ɯ! CP/M 3.0 (V3.0)1O$р{->2$-:$<~Я2$*>N ιÄ:G*`~!x_<_*yؽ<:/G~##~? @F6##N66*Lͪ͝!~+6:0Ѿ'"!~6*>=)X!f_CÀ*}<~*~{ͧʷ:!Ͼf͐*~wĦýɯ2*#~2~w!"ϯ2=2*~2=22̀:*wͳ6ʾȇG~o>_yW#x#W{s+p+qr#r#r͋S"͙>2z4 !!q#p#w2wW*۽_҆-!s ;HL <- BC MOV L,C SHLD CPMDMA ;CP/M DMA ADDRESS RET ************************************************************* * * * HOME IS TRANSLATED INTO A SEEK TO TRACK ZERO. * * * ************************************************************* HOME MVI C,0 ;TRACK TO SEEK TO ************************************** ;BC = OFFSET INTO TABLE MOV L,M ;HL <- PHYSICAL SECTOR MVI H,0 RET SIDETWO LXI B,17 ;OFFSET TO SIDE BIT DAD B MOV A,M ANI 8 ;TEST FOR DOUBLE SIDED JZ SIDEA ;MEDIA IS ONLY SINGLE SIDED POP PSW ;RETRIEVE ADJUSTED SECTOR POP B CMA ;MAKE SECTOR REQUEST POSITIVE INR A MOV MVI A,1 ;SELECT SECTOR 1 OF TRACK 1 STA TRUESEC STA CPMTRK CALL FILL ;FLUSH BUFFER AND REFILL JC ZRET ;TEST FOR ERROR RETURN CALL DJSTAT ;GET STATUS ON CURRENT DRIVE ANI 2CH ;LOK AT SIDE AND DENSITY BITS MOV E,A ANI 20H MOV A,E JNZ SETDR1 ORI 10H SETDR1: RAR PUSH PSW ;SAVE DJSTAT 1/2 SIDED INFO ANI 6 LXI H,XLTS CURRENTLY * * SELECTED DRIVE, DE POINTING TO DPH. * * * ************************************************************* GETDPB LDA CPMDRV ;GET DRIVE # LXI H,DPZERO LXI D,19H GETDP1: ORA A JZ GETDP2 DAD D DCR A JMP GETDP1 ; GETDP2: PUSH H ;SAVE ADDRESS OF DPH LXI D,12 ;OFFSET TO DPB DAD D MOV A,M ;GET LOW BYTE OF DP*********************** * * * SETTRK SAVES THE TRACK # TO SEEK TO. NOTHING IS DONE AT * * THIS POINT, EVERYTHING IS DEFFERED UNTIL A READ OR WRITE. * * * ************************************************************* SETTRK MOV A,C ;A <- TRACK # STA CPMTRK ;CP/M TRACK # RET PAGE *********************************************** C,A ;MAKE NEW SECTOR THE REQUESTED ; SECTOR POP D CALL SIDEONE MVI A,80H ;SIDE TWO BIT ORA L ; AND SECTOR MOV L,A RET PAGE ************************************************************* * * * SETDRV SELECTS THE NEXT DRIVE TO BE USED IN READ/WRITE * * OPERATIONS. IF THE DRIVE HAS ;TABLE OF XLT ADDRESSES PUSH H MOV E,A MVI D,0 DAD D PUSH H ;SAVE POINTER TO PROPER XLT CALL GETDPB ;GET DPH POINTER INTO DE XCHG ; POP D MVI B,2 ;NUMBER OF BYTES TO MOVE CALL MOVLOP ;MOVE THE ADDRESS OF XLT LXI D,10 ;OFFSET TO DPB POINTER DAD D ;HL <- &DPH.DPB XCHG POP B ADDRESS INX H MOV H,M ;GET LOW BYTE OF DPB MOV L,A POP D RET ************************************************************* * * * XLTS IS A TABLE OF ADDRESS THAT POINT TO EACH OF THE XLT * * TABLES FOR EACH SECTOR SIZE. * * * ************************************************************************ * * * SECTRAN TRANSLATES A LOGICAL SECTOR # INTO A PHYSICAL * * SECTOR #. * * * ************************************************************* SECTRAN INX B PUSH D ;SAVE TABLE ADDRESS PUSH B ;SAVE SECTOR # CALL GETDPB ;GET DPB ADDRESS INTO HL NEVER BEEN SELECTED BEFORE, * * A PARAMETER TABLE IS CREATED WHICH CORRECTLY DESCRIBES * * THE DISKETTE CURRENTLY IN THE DRIVE. DISKETTES CAN BE OF * * FOUR DIFFERENT SECTOR SIZES: * * 1) 128 BYTES SINGLE DENSITY. * * 2) 256 BYTES DOUBLE DENSITY. * * 3) 512 BYTES DOUBLE DENSITY. * * 4) 1024 BYTES DOUBLE DENSITY. * * H POP PSW ;OFFSET TO CORRECT DPB MOV C,A MVI B,0 DAD B ;ADD TO TRANSLATE TABLE ; TO POINT TO DENSITY ; (THE DPB TABLE IS CLEVERLY ; LOCATED RIGHT AFTER THE ; XLT TABLE) XCHG ;PUT DPB ADDRESS IN DPH MVI B,2 ;MOVE DPB ADDRESS INTO DPH CALL MOVLOP SETDRV1 CALL GETDPB ;GET ADDRESS OF DPB IN HL LXI B,17 ;OFFSET TO SECTOR SIZE DAD B MOV *** XLTS DW XLT128 ;XLT FOR 128 BYTE SECTORS DW XLT256 ;XLT FOR 256 BYTE SECTORS DW XLT512 ;XLT FOR 512 BYTE SECTORS DW XLT124 ;XLT FOR 1024 BYTE SECTORS ************************************************************* * * * THE TABLE FOLLOWING THE XLT'S IS A TABLE OF THE DPB'S, * * USED BY THE SETDRV SUBROUTINE TO CALCULATE DENSITY * * MOV A,M ;GET # OF CP/M SECTORS/TRACK ORA A ;CLEAR CARY RAR ;DIVIDE BY TWO SUB C PUSH PSW ;SAVE ADJUSTED SECTOR JM SIDETWO SIDEA POP PSW ;DISCARD ADJUSTED SECTOR POP B ;RESTORE SECTOR REQUESTED POP D ;RESTOR ADDRESS OF XLT TABLE SIDEONE XCHG ;HL <- &(TRANSLATION TABLE) DAD B * ************************************************************* SETDRV MOV A,C ;SAVE THE DRIVE # STA CPMDRV CPI MAXDISK ;CHECK FOR A VALID DRIVE # JNC ZRET ;ILLEGAL DRIVE # MOV A,E ;TEST IF DRIVE EVER LOGGED ; IN BEFORE ANI 1 JNZ SETDRV1 ;BIT 0 OF E = 0 -> NEVER ; SELECTED BEFORE A,M ;GET SECTOR SIZE ANI 7H STA SECSIZ MOV A,M RAR RAR RAR RAR ANI 0FH STA SECPSEC XCHG ;HL <- DPH RET ZRET LXI H,0 ;SELDRV ERROR EXIT RET PAGE ************************************************************* * * * GETDPB RETURNS HL POINTING TO THE DPB OF THETYP ;SET NO DIRECTORY WRITE RNZ ;NO ERROR EXIT ************************************************************* * * * FLUSHA WRITES THE CONTENTS OF THE BUFFER OUT TO THE DISK * * IF IT HAS EVER BEEN WRITTEN INTO. * *