home *** CD-ROM | disk | FTP | other *** search
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0001
- *** HOST ***
-
- 0001 ; HOST Program for AMD 96-4016 Z8000 Monitor
- 0002 ;
- 0003 ; Sourced March '80 by Trevor Marshall
- 0004 ; Elec Eng Dept
- 0005 ; Uni W.A.
- 0006 ;
- 0007 ; This program was written for a Z80 CPU
- 0008 ; running a CDOS 2.17 Disk Operating System.
- 0009 ;
- 0010 ; It has been modified for 8080 CPU
- 0011 ; but not fully tested with that CPU
- 0012 ;
- 0013 ; Most code is compatible with other CP/M
- 0014 ; systems, but will have to be tailored
- 0015 ; to the individual's hardware environment
- 0016 ;
- 0017 ; Although the AMD SYS 8/8 uses parallel
- 0018 ; ports for handshaking the 96-4016 will also
- 0019 ; support serial I/O and this method is
- 0020 ; usually preferable.
- 0021 ; The AMD Monitor uses an 8 bit data word with
- 0022 ; parity generated in software.
- 0023 ; If you cannot configure your HOST USART
- 0024 ; to that format then you must null the
- 0025 ; parity generation with NOPs and the parity
- 0026 ; checking may be defeated with a prior RET
- 0027 ; Note that the AMD SYS 8/8 appears to have a
- 0028 ; CP/M compatible operating system
- 0029 ;
- (0005) 0030 BDOS: EQU 5 ;CDOS system call addr
- (0014) 0031 RNEXT: EQU 14H ;Read next record
- (0015) 0032 WNEXT: EQU 15H ;Write next record
- (0016) 0033 FCREATE: EQU 16H ;Create a file
- (000D) 0034 RESET: EQU 0DH ;Reset CDOS
- (000F) 0035 FOPEN: EQU 0FH ;Open a file
- (0010) 0036 FCLOSE: EQU 10H ;Close a file
- (001A) 0037 DMA: EQU 1AH ;Set disk buffer address
- (0086) 0038 FORMAT: EQU 86H ;Format name to FCB
- (0015) 0039 NAK: EQU 15H ;CTL-U
- (0005) 0040 ENQ: EQU 5 ;CTL-E
- (0006) 0041 ACK: EQU 6 ;CTL-F
- (0001) 0042 SOH EQU 1 ;CTL-A
- (0002) 0043 STX: EQU 2 ;CTL-B
- (0004) 0044 EOT: EQU 4 ;CTL-D
- (001A) 0045 EOF: EQU 1AH ;End of file marker byte
- 0046 ;
- 0047 ;THE FOLLOWING EQUATES ARE HARDWARE DEPENDENT
- 0048 ;
- (00F7) 0049 CSTATP: EQU 0F7H ;Console driver status port
- (00F6) 0050 CDATA: EQU 0F6H ;Console data port
- (0002) 0051 CRDA: EQU 2 ;RDA bit
- (0001) 0052 CTBE: EQU 1 ;TBE bit
- 0053 ;
- (0100) 0054 ORG 100H
- 0055 ;
- 0100 318000 0056 START: LD SP,80H
- 0103 3E00 0057 LD A,0
- 0105 32DD04 0058 LD (FLAG),A ;Clear the file opened flag
- 0059 ; Now output system prompt to console
- 0108 11AD03 0060 LD DE,MSG
- 010B 0E09 0061 LD C,9 ;Print Buffered Line
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0002
- *** HOST ***
-
- 010D CD0500 0062 CALL BDOS
- 0063 ;
- 0110 318000 0064 MORE: LD SP,80H ;Reset Stack Pointer
- 0113 3E00 0065 LD A,0
- 0115 32DC04 0066 LD (CODE),A ;Clear the error code
- 0118 CD8402 0067 CALL DIALOG ;Wait for an instruction
- 011B 3ABA04 0068 LD A,(NEWCODE) ;2 locs to ease debugging
- 011E 32B904 0069 LD (CURCODE),A ;Save it
- 0070 ; Now decode the Function request type
- 0121 FE04 0071 CP A,4
- 0123 CA5901 R 0072 JP Z,OPEN
- 0126 FE05 0073 CP A,5
- 0128 CAA601 R 0074 JP Z,CLOSE
- 012B FE06 0075 CP A,6
- 012D CA2302 0076 JP Z,CREATE
- 0130 FE07 0077 CP A,7
- 0132 CADB01 0078 JP Z,READ
- 0135 FE08 0079 CP A,8
- 0137 CA7901 R 0080 JP Z,WRITE
- 0081 ;
- 013A C3C601 0082 JP N7 ;If not one of the above instrs
- 0083 ;
- 0084 ; S/R to set up FCB name in FCB block from BFFR data
- 0085 ;
- 013D 3A2C04 0086 SETUP LD A,(REQBFFR) ;Fetch the drive (A - C)
- 0140 D640 0087 SUB A,40H ;A = 01 IN FCB
- 0142 322D04 0088 LD (REQBFFR+1),A ;Put drive # in FCB
- 0145 212D04 0089 LD HL,REQBFFR+1 ;Point at start of legal co
- de
- 0148 11BB04 0090 LD DE,FCB ;Point at FCB area
- 014B 010C00 0091 LD BC,12 ;# of bytes in name & drive
- 0092 ; LDIR ;Shift name to FCB
- 0093 ; implement the LDIR in 8080 code:
- 014E 7E 0094 L1: LD A,(HL) ;***** THIS CODE HAS NOT
- 014F 12 0095 LD (DE),A ; BEEN CHECKED******
- 0150 23 0096 INC HL
- 0151 13 0097 INC DE
- 0152 0B 0098 DEC BC
- 0153 79 0099 LD A,C ;Is BC = 0
- 0154 B0 0100 OR A,B
- 0155 C24E01 R 0101 JP NZ,L1
- 0102 ;
- 0158 C9 0103 RET
- 0104 ;
- 0105 ;Now try to open file
- 0159 0E0D 0106 OPEN: LD C,RESET
- 015B CD0500 0107 CALL BDOS ;First log off all disks
- 015E CD3D01 0108 CALL SETUP ;Set up FCB
- 0161 11BB04 0109 LD DE,FCB
- 0164 0E0F 0110 LD C,FOPEN
- 0166 CD0500 0111 CALL BDOS ;Open file
- 0112 ; Any errors?
- 0169 C601 0113 ADD A,1 ;Is a = -1 ?
- 016B CAC601 R 0114 JP Z,N7
- 0115 ; Opened successfully, now can process read or write
- 016E 3EFF 0116 LD A,0FFH
- 0170 32DD04 0117 LD (FLAG),A ;Set opened flag
- 0173 CD7303 0118 CALL TRNS ;Acknowledge
- 0176 C31001 R 0119 JP MORE ;Get next instruction
- 0120 ;
- 0179 3ADD04 0121 WRITE: LD A,(FLAG) ;Check file is created or open
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0003
- *** HOST ***
-
- 017C FE00 0122 CP A,0
- 017E CAD001 R 0123 JP Z,N5 ;no, send error code 3
- 0124 ; Now set the DMA address to BFFR
- 0181 0E1A 0125 LD C,DMA
- 0183 113904 0126 LD DE,BFFR
- 0186 CD0500 0127 CALL BDOS
- 0128 ;
- 0189 11BB04 0129 LD DE,FCB
- 018C 0E15 0130 LD C,WNEXT
- 018E CD0500 0131 CALL BDOS ;Write the record
- 0191 FE01 0132 CP A,1 ;entry error
- 0193 CAD001 R 0133 JP Z,N5 ; send code 3
- 0196 FE02 0134 CP A,2
- 0198 CAC601 R 0135 JP Z,N7 ;Send code 1 if out of space
- 019B FE00 0136 CP 0 ;OK
- 019D C2CB01 R 0137 JP NZ,N8 ;Send code 2 for other errors
- 0138 ; Must be OK,wait for next instruction
- 01A0 CD7303 0139 CALL TRNS
- 01A3 C31001 0140 JP MORE
- 0141 ;
- 01A6 3ADD04 0142 CLOSE: LD A,(FLAG) ;Dont close an unopened file
- 01A9 FE00 0143 CP 0
- 01AB CAD001 R 0144 JP Z,N5 ;not open
- 01AE 0E10 0145 LD C,FCLOSE
- 01B0 11BB04 0146 LD DE,FCB
- 01B3 CD0500 0147 CALL BDOS
- 01B6 FEFF 0148 CP A,0FFH
- 01B8 CAC601 R 0149 JP Z,N7 ;A=FF means not found
- 01BB 3E00 0150 LD A,0
- 01BD 32DD04 0151 LD (FLAG),A ;Clear the open file flag
- 01C0 32DC04 0152 LD (CODE),A ;Clr error flag
- 01C3 C3D501 R 0153 JP N10
- 01C6 3E01 0154 N7: LD A,1 ;Send error code 1
- 01C8 C3D201 R 0155 JP N6
- 01CB 3E02 0156 N8: LD A,2 ;Send error code 2
- 01CD C3D201 R 0157 JP N6
- 01D0 3E03 0158 N5: LD A,3 ;Send error code 3
- 01D2 32DC04 0159 N6: LD (CODE),A ;File not open or created
- 01D5 CD7303 0160 N10: CALL TRNS
- 0161 ; Omit the following for 8080 CP/M
- 0162 ; LD C,96H ;Call to CDOS 2.17 to turn
- 0163 ; CALL BDOS ; drive motors off
- 01D8 C31001 0164 JP MORE
- 0165 ;
- 01DB 3ADD04 0166 READ: LD A,(FLAG) ;Is file open ?
- 01DE FE00 0167 CP 0
- 01E0 C2FD01 R 0168 JP NZ,N2 ;Yes
- 01E3 0E0D 0169 LD C,RESET ;No,open it
- 01E5 CD0500 0170 CALL BDOS
- 01E8 CD3D01 0171 CALL SETUP
- 01EB 11BB04 0172 LD DE,FCB
- 01EE 0E0F 0173 LD C,FOPEN
- 01F0 CD0500 0174 CALL BDOS
- 01F3 C601 0175 ADD A,1
- 01F5 CAD001 R 0176 JP Z,N5 ;type 3 error, not found
- 01F8 3EFF 0177 LD A,0FFH
- 01FA 32DD04 0178 LD (FLAG),A ;Set open flag
- 0179 ; File opened now read record
- 01FD 0E1A 0180 N2: LD C,DMA ;set CDOS DMA addr to bffr
- 01FF 113904 0181 LD DE,BFFR
- 0202 CD0500 0182 CALL BDOS
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0004
- *** HOST ***
-
- 0205 0E14 0183 LD C,RNEXT ;read next record
- 0207 11BB04 0184 LD DE,FCB
- 020A CD0500 0185 CALL BDOS
- 0186 ; Now process error codes
- 020D FE00 0187 CP 0 ;1 = <EOF>
- 020F CA1D02 R 0188 JP Z,M1
- 0189 ; Must be 1, End Of File
- 0190 ; Note that this error is only returned AFTER an
- 0191 ; abortive attempt to fetch the next sector, and
- 0192 ; <EOF> within data is transferred normally, so
- 0193 ; ASM will give errors unless a QUIT instruction
- 0194 ; is used to end the source file.
- 0212 3E01 0195 LD A,1
- 0214 32DC04 0196 LD (CODE),A
- 0217 CD7303 0197 CALL TRNS ;Dont send any data
- 021A C31001 0198 JP MORE
- 021D CD0C03 0199 M1: CALL SEND ;Transmit normal data
- 0220 C31001 0200 JP MORE
- 0201 ;
- 0223 3ADD04 0202 CREATE: LD A,(FLAG) ;Is file open?
- 0226 FE00 0203 CP 0
- 0228 C2D001 R 0204 JP NZ,N5 ;Yes send error code 3
- 022B 0E0D 0205 LD C,RESET ;Log off all disks
- 022D CD0500 0206 CALL BDOS ;Prior to directory operations
- 0230 CD3D01 0207 CALL SETUP
- 0208 ; First check if a file already exists with this name
- 0209 ; Dont delete it,as it may be a mistaken command
- 0233 11BB04 0210 LD DE,FCB
- 0236 0E11 0211 LD C,11H ;Search Directory cmd
- 0238 CD0500 0212 CALL BDOS
- 023B FEFF 0213 CP A,0FFH
- 023D CA4602 R 0214 JP Z,MI3 ;Entry was not found
- 0240 7E 0215 LD A,(HL) ;Fetch the first directory byte
- 0241 FEE5 0216 CP A,0E5H ;Is it erased
- 0243 C2D001 R 0217 JP NZ,N5 ;No, send error
- 0246 0E16 0218 MI3: LD C,FCREATE
- 0248 11BB04 0219 LD DE,FCB
- 024B CD0500 0220 CALL BDOS
- 024E FEFF 0221 CP A,0FFH
- 0250 CAC601 0222 JP Z,N7 ;Send error code 1
- 0253 CD7303 0223 CALL TRNS
- 0256 3EFF 0224 LD A,0FFH
- 0258 32DD04 0225 LD (FLAG),A ;Set the open flag
- 025B C31001 0226 JP MORE
- 0227 ;
- 0228 ;
- 0229 ; S/R to accomplish I/O
- 0230 ; N.B. THESE WILL BE HARDWARE DEPENDENT
- 025E DBF7 0231 CSTAT: IN A,CSTATP
- 0260 E602 0232 AND CRDA
- 0262 C8 0233 RET Z
- 0263 3EFF 0234 LD A,-1
- 0265 C9 0235 RET
- 0236 ;
- 0266 CD5E02 0237 CHIN: CALL CSTAT
- 0269 CA6602 R 0238 JP Z,CHIN
- 026C DBF6 0239 IN A,CDATA
- 026E E67F 0240 AND 7FH ;Strip off parity bit
- 0270 C9 0241 RET
- 0242 ;
- 0271 DBF7 0243 CRDY: IN A,CSTATP
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0005
- *** HOST ***
-
- 0273 E601 0244 AND CTBE
- 0275 C8 0245 RET Z
- 0276 3EFF 0246 LD A,-1
- 0278 C9 0247 RET
- 0248 ;
- 0279 F5 0249 COUT: PUSH AF
- 027A CD7102 0250 C1: CALL CRDY
- 027D CA7A02 R 0251 JP Z,C1
- 0280 F1 0252 POP AF
- 0281 D3F6 0253 OUT CDATA,A
- 0283 C9 0254 RET
- 0255 ;
- 0256 ;
- 0257 ; S/R DIALOG to talk to Z8000
- 0284 21FFFF 0258 DIALOG: LD HL,0FFFFH ;Load a delay value to HL
- 0259 ; We will decrement HL until 0, then switch the
- 0260 ; disk drive motors off
- 0287 CD5E02 0261 DI1: CALL CSTAT
- 028A C29E02 R 0262 JP NZ,DIA2 ;Have input,exit motor loop
- 028D 2B 0263 DEC HL
- 028E 7D 0264 LD A,L ;No flag setting after DEC HL
- 028F B4 0265 OR H
- 0290 C28702 R 0266 JP NZ,DI1 ;Try the loop again
- 0267 ; Have now waited long enough, assume Z8000 done
- 0268 ; LD C,96H ;Call to CDOS 2.17 to turn
- 0269 ; CALL BDOS ; drive motors off
- 0293 C39E02 R 0270 JP DIA2
- 0296 3E15 0271 KNACK: LD A,NAK
- 0298 CD7902 0272 CALL COUT
- 029B C38402 R 0273 JP DIALOG ;Service motors
- 029E CD6602 0274 DIA2: CALL CHIN
- 02A1 FE05 0275 CP ENQ
- 02A3 C29602 R 0276 JP NZ,KNACK ;Only <ENQ> is valid
- 02A6 3E06 0277 ACKNL: LD A,ACK
- 02A8 CD7902 0278 CALL COUT
- 02AB 212C04 0279 RECVE: LD HL,REQBFFR
- 02AE CD6602 0280 CALL CHIN
- 02B1 FE01 0281 CP SOH ;Answer should be <SOH>
- 02B3 C20103 R 0282 JP NZ,FLUSH
- 02B6 CD6602 0283 CALL CHIN ;FUNCTION REQUEST CODE
- 02B9 D630 0284 SUB A,30H
- 02BB 32BA04 0285 LD (NEWCODE),A
- 0286 ; We will just receive chars and store them in req bffr
- 02BE CD6602 0287 RECVA: CALL CHIN
- 02C1 FE04 0288 CP A,EOT
- 02C3 CAF602 R 0289 JP Z,RECVB ;Message ends with <EOT>
- 02C6 FE02 0290 CP A,STX
- 02C8 CABE02 R 0291 JP Z,RECVA ;Discard it
- 0292 ; Now process two hex bytes
- 02CB D630 0293 SUB 30H ;Pseudo-Hex format is used
- 0294 ; Cabt SLA C in 8080, so rewrite
- 02CD 37 0295 SCF
- 02CE 3F 0296 CCF
- 02CF 17 0297 RLA
- 02D0 37 0298 SCF
- 02D1 3F 0299 CCF
- 02D2 17 0300 RLA
- 02D3 37 0301 SCF
- 02D4 3F 0302 CCF
- 02D5 17 0303 RLA
- 02D6 37 0304 SCF
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0006
- *** HOST ***
-
- 02D7 3F 0305 CCF
- 02D8 17 0306 RLA
- 02D9 4F 0307 LD C,A ;Save first hex digit
- 02DA CD6602 0308 CALL CHIN
- 0309 ; SLA C
- 0310 ; SLA C
- 0311 ; SLA C
- 0312 ; SLA C
- 02DD D630 0313 SUB A,30H
- 02DF E60F 0314 AND A,0FH ;Mask off upper nibble
- 02E1 81 0315 ADD A,C ;Now have Hex digit
- 02E2 77 0316 LD (HL),A
- 02E3 23 0317 INC HL
- 02E4 7D 0318 LD A,L
- 02E5 FE39 0319 CP REQBUFFEND AND 0FFH
- 02E7 C2BE02 R 0320 JP NZ,RECVA
- 02EA 7C 0321 LD A,H
- 02EB FE04 0322 CP REQBUFFEND SHR 8
- 02ED C2BE02 R 0323 JP NZ,RECVA
- 02F0 213904 0324 LD HL,BFFR ;Now point at data buffer
- 02F3 C3BE02 R 0325 JP RECVA
- 0326 ;
- 02F6 3E06 0327 RECVB: LD A,ACK
- 02F8 CD7902 0328 CALL COUT
- 02FB C9 0329 RET
- 0330 ;
- 0331 ;FLUSH routine to discard all input characters
- 0332 ; up to the next <EOT> after an input error
- 0333 ;
- 02FC 3E15 0334 FLUSHB: LD A,NAK
- 02FE CD7902 0335 CALL COUT ;Send a <NAK>
- 0301 CD6602 0336 FLUSH: CALL CHIN
- 0304 FE04 0337 CP EOT ;EOT means end of input
- 0306 C2FC02 R 0338 JP NZ,FLUSHB ;Continue to flush
- 0309 C38402 0339 JP DIALOG ;Try to fetch the data again
- 0340 ;
- 0341 ; S/R to transmit code,response & data in 96-4016 format
- 0342 ;
- 030C 3E05 0343 SEND: LD A,ENQ
- 030E CD7902 0344 CALL COUT ;Ask permission to send
- 0311 CD6602 0345 SENDA: CALL CHIN
- 0314 FE06 0346 CP A,ACK ;Must reply with <ACK>
- 0316 C20C03 R 0347 JP NZ,SEND
- 0319 3E01 0348 SENDB: LD A,SOH
- 031B CD7902 0349 CALL COUT
- 031E 3AB904 0350 LD A,(CURCODE)
- 0321 C630 0351 ADD A,30H
- 0323 CD7902 0352 CALL COUT ;Transmit the Function Code
- 0326 3E02 0353 LD A,STX
- 0328 CD7902 0354 CALL COUT
- 032B 3E30 0355 LD A,'0' ;Error codes, first is zero
- 032D CD7902 0356 CALL COUT
- 0330 3ADC04 0357 LD A,(CODE) ;Second code byte
- 0333 C630 0358 ADD '0'
- 0335 CD7902 0359 CALL COUT
- 0360 ; Now transmit text
- 0338 213904 0361 LD HL,BFFR
- 033B 7E 0362 LP4: LD A,(HL)
- 033C 4F 0363 LD C,A ;Save it
- 033D E6F0 0364 AND A,0F0H
- 0365 ; Cant SRA A in 8080,
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0007
- *** HOST ***
-
- 0366 ; SRA A
- 0367 ; SRA A
- 0368 ; SRA A
- 0369 ; SRA A
- 033F 37 0370 SCF
- 0340 3F 0371 CCF
- 0341 1F 0372 RRA
- 0342 37 0373 SCF
- 0343 3F 0374 CCF
- 0344 1F 0375 RRA
- 0345 37 0376 SCF
- 0346 3F 0377 CCF
- 0347 1F 0378 RRA
- 0348 37 0379 SCF
- 0349 3F 0380 CCF
- 034A 1F 0381 RRA
- 034B C630 0382 ADD A,'0' ;Get in Pseudo-Hex
- 034D CD7902 0383 CALL COUT
- 0350 79 0384 LD A,C
- 0351 E60F 0385 AND A,0FH
- 0353 C630 0386 ADD '0'
- 0355 CD7902 0387 CALL COUT
- 0358 23 0388 INC HL
- 0359 7D 0389 LD A,L
- 035A FEB9 0390 CP [BUFFEND AND 0FFH]
- 035C C23B03 R 0391 JP NZ,LP4
- 035F 7C 0392 LD A,H ;L was equal,test H
- 0360 FE04 0393 CP A,[BUFFEND SHR 8]
- 0362 C23B03 R 0394 JP NZ,LP4
- 0395 ;Now have finished buffer
- 0365 3E04 0396 J4: LD A,EOT
- 0367 CD7902 0397 CALL COUT
- 0398 ; Now wait for <ACK>
- 036A CD6602 0399 CALL CHIN
- 036D FE06 0400 CP ACK
- 036F C8 0401 RET Z
- 0370 C30C03 R 0402 JP SEND
- 0403 ;
- 0404 ;
- 0405 ; S/R to transmit code and response only to 96-4016
- 0406 ;
- 0373 3E05 0407 TRNS: LD A,ENQ
- 0375 CD7902 0408 CALL COUT ;Ask permission to send
- 0378 CD6602 0409 TRNSA: CALL CHIN
- 037B FE06 0410 CP A,ACK ;Must reply with <ACK>
- 037D C27303 R 0411 JP NZ,TRNS
- 0380 3E01 0412 TRNSB: LD A,SOH
- 0382 CD7902 0413 CALL COUT
- 0385 3AB904 0414 LD A,(CURCODE)
- 0388 C630 0415 ADD A,30H
- 038A CD7902 0416 CALL COUT ;Transmit the Function Code
- 038D 3E02 0417 LD A,STX
- 038F CD7902 0418 CALL COUT
- 0392 3E30 0419 LD A,'0' ;Error codes, first is zero
- 0394 CD7902 0420 CALL COUT
- 0397 3ADC04 0421 LD A,(CODE) ;Second code byte
- 039A C630 0422 ADD '0'
- 039C CD7902 0423 CALL COUT
- 039F 3E04 0424 LD A,EOT
- 03A1 CD7902 0425 CALL COUT
- 0426 ; Now wait for <ACK>
- CROMEMCO Z80 Macro Assembler version 03.07 Nov 30, 1980 09:21:39 Page 0008
- *** HOST ***
-
- 03A4 CD6602 0427 CALL CHIN
- 03A7 FE06 0428 CP ACK
- 03A9 C8 0429 RET Z
- 03AA C37303 R 0430 JP TRNS
- 0431 ;
- 03AD 0D0A5A38 0432 MSG: DB 0DH,0AH,'Z8000 HOST Communication Progra
- m'
- 03CF 20626574 0433 DB ' between CDOS and AMD 96-4016',0DH,0AH
- 03EE 0D0A2020 0434 DB 0DH,0AH,' '
- 03F7 436F6E74 0435 DB 'Contact Trevor Marshall for operating'
- 041C 2070726F 0436 DB ' proceedures.',0DH,0AH,'$'
- 042C (000D) 0437 REQBFFR DS 13
- (0439) 0438 REQBUFFEND EQU $
- 0439 (0080) 0439 BFFR: DS 128
- (04B9) 0440 BUFFEND EQU $
- 04B9 (0001) 0441 CURCODE DS 1 ;Current operation code
- 04BA (0001) 0442 NEWCODE DS 1 ;New operation code
- 04BB (0021) 0443 FCB: DS 33 ;FCB area
- 04DC (0001) 0444 CODE DS 1 ;Operation status code
- 04DD (0001) 0445 FLAG DS 1 ;0 means file is NOT OPEN
- 04DE 00 0446 NOP
- 04DF (0100) 0447 END START
-
- Errors 0
- Range Count 41
- Parity Count 0
-
-