|
DataMuseum.dkPresents historical artifacts from the history of: Zilog MCZ Floppy Disks |
This is an automatic "excavation" of a thematic subset of
Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 15987 (0x3e73) Types: TextFile Names: »WILD.L«
└─⟦3b14772ef⟧ Bits:30006814 8" ZilogMCZ floppy NThun_0016 (OPERATIVSYSTEM 1/05 850619 KOPI) └─ ⟦this⟧ »WILD.L« └─⟦5cd73ff62⟧ Bits:30006813 8" ZilogMCZ floppy NThun_0015 (OPERATOR'S SYSTEM TEXT IN ENGLISH gp) └─ ⟦this⟧ »WILD.L« └─⟦84a75cdbc⟧ Bits:30006816 8" ZilogMCZ floppy NThun_0018 (Styrediskette Basic 3.0 Rio 2.2 Hjælpeprogrammer) └─ ⟦this⟧ »WILD.L« └─⟦ec2a36bc1⟧ Bits:30006815 8" ZilogMCZ floppy NThun_0017 (OPERATIVSYSTEM 1/05 851203) └─ ⟦this⟧ »WILD.L«
\f PLOTTER DRIVER WILD 17-11-1982-JK PAGE 1 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 1 *H PLOTTER DRIVER 2 *P 60 3 ;************************************************ 4 ;* RIO DRIVER FOR PLOTTER TABLE * 5 ;* J\RGEN KRISTENSEN * 6 ;* S/C METRIC A/S * 7 ;* * 8 ;* 00 INITIALIZE 03 * 9 ;* 02 ASSIGN 03 * 10 ;* 04 OPEN 03 * 11 ;* 06 CLOSE 03 * 12 ;* 0E WRITE BINARY 04 * 13 ;* 10 WRITE LINE 04 * 14 ;* 44 DEACTIVATE 04 * 15 ;************************************************ 16 ; 17 ; R E Q U E S T C O D E S 18 ; ------------------------- 19 INITRQ EQU 00 ; INITIALISATION REQUEST 20 ASSNRQ EQU 02 ; ASSIGN REQUEST 21 OPENRQ EQU 04 ; OPEN REQUEST 22 CLOSRQ EQU 06 ; CLOSE REQUEST 23 RDBIRQ EQU 0AH ; READ BINARY 24 RDASRQ EQU 0CH ; READ ASCII 25 WRTBRQ EQU 0EH ; WRITE BINARY REQUEST 26 WRTLRQ EQU 10H ; WRITE ASCII REQUEST 27 DEACRQ EQU 44H ; DEACTIVATE REQUEST 28 ; 29 ; P O R T A D R E S S E S 30 ; ------------------------- 31 S_11AD EQU 04H ; SIO 32 S_11BD EQU 05H 33 S_11AC EQU 06H 34 S_11BC EQU 07H 35 ; 36 C_11_0 EQU 0CH ; BAUD RATE SIO 37 C_11_1 EQU 0DH 38 C_11_2 EQU 0EH 39 C_11_3 EQU 0FH 40 ; 41 ; A S C I I C O D E S 42 ; --------------------- 43 TAB EQU 09H 44 ASCICR EQU 0DH 45 ASCILF EQU 0AH 46 E_O_F EQU 0FFH ; END OF FILE MARK 47 ; 48 ; B I T D E F I N I T I O N S 49 ; ----------------------------- 50 RX_RDY EQU 0 ; RECIEVER READY BIT 51 TX_RDY EQU 2 ; TRANSMITTER READY BIT 52 ALLSENT EQU 0 ; TRANSMITTER EMPTY BIT 53 ; 54 ; S Y S T E M A D R E S S E S 55 ; ----------------------------- 56 ERCODE EQU 13BDH ; ERROR CODE ADDRESS 57 DATE EQU 13ABH ; GLOBAL DATE \f DRIVER START WILD 17-11-1982-JK PAGE 2 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 58 *H DRIVER START 59 ; R E Q U E S T C O D E D E C O D E 60 ; ------------------------------------- 61 GLOBAL DRAW 62 ; FD80 63 ORG 0FD80H ; START PLOT DRIVER SIO 64 ; FD80 CD16FE 65 DRAW CALL DEC_REQ ; DECODE REQUEST CODE FD83 07 66 DEFB 7 ; NUMBER OF VALID REQUEST CODES 67 ; FD84 00 68 DEFB INITRQ FD85 99FD 69 DEFW S_INITRQ ; INITIALIZE 70 ; FD87 02 71 DEFB ASSNRQ ; ASSIGN REQUEST ? FD88 99FD 72 DEFW S_INITRQ ; INITIALIZE 73 ; FD8A 04 74 DEFB OPENRQ ; OPEN REQUEST ? FD8B A2FD 75 DEFW S_OPENRQ 76 ; FD8D 06 77 DEFB CLOSRQ ; CLOSE - JUST RETURN FD8E B8FD 78 DEFW OKEXIT 79 ; FD90 0E 80 DEFB WRTBRQ ; WRITE BINARY REQUEST ? FD91 A4FD 81 DEFW S_WRTBRQ 82 ; FD93 10 83 DEFB WRTLRQ ; WRITE LINE REQUEST ? FD94 B9FD 84 DEFW S_WRTLRQ 85 ; FD96 44 86 DEFB DEACRQ ; DEACTIVATE - JUST RETURN FD97 E4FD 87 DEFW S_DEACRQ \f INITIALIZE WILD 17-11-1982-JK PAGE 3 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 88 *H INITIALIZE 89 ; 0 0 I N I T I A L I Z E 90 ; ------------------------- 91 ; 92 S_INITRQ FD99 21FBFD 93 LD HL,I_SIO ; INITIALIZE SIO FD9C CD0BFE 94 CALL INIT FD9F DB04 95 IN A,(S_11AD) 96 ; FDA1 C9 97 RET 98 ; 99 ; 100 ; 0 4 O P E N R E Q U E S T 101 ; ----------------------------- 102 ; 103 S_OPENRQ FDA2 C9 104 RET 105 ; 106 ; 107 ; 0 6 C L O S E R E Q U E S T 108 ; ------------------------------- 109 ; 110 S_CLOSRQ FDA3 C9 111 RET \f WRITE BINARY WILD 17-11-1982-JK PAGE 4 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 112 *H WRITE BINARY 113 ; 0 E W R I T E B I N A R Y 114 ; ----------------------------- 115 ; 116 S_WRTBRQ FDA4 C8 117 RET Z ; IF BC = 0 RETURN 118 ; FDA5 7E 119 LOOP_B LD A,(HL) ; GET BYTE FOR OUTPUT 120 ; FDA6 FEFF 121 CP E_O_F ; END OF FILE MARK ? FDA8 CAD4FD 122 JP Z,ENDFIL 123 ; FDAB CDE7FD 124 CALL SEND ; SEND 1 CHARACTER TO PLOTTER FDAE FE0D 125 CP ASCICR ; IF ASCICR SEND LF FDB0 CCE5FD 126 CALL Z,SEND_LF ; SEND LF AFTER CR FDB3 EDA1 127 CPI ; INC HL DEC BC FDB5 EAA5FD 128 JP PE,LOOP_B FDB8 C9 129 OKEXIT RET 130 ; 131 ; 132 ; 1 0 W R I T E L I N E 133 ; ------------------------- 134 S_WRTLRQ FDB9 C8 135 RET Z ; IF BC = 0 RETURN 136 ; FDBA 7E 137 LOOP_L LD A,(HL) ; GET BYTE FOR OUTPUT 138 ; FDBB FEFF 139 CP E_O_F ; END OF FILE MARK ? FDBD CAD4FD 140 JP Z,ENDFIL 141 ; FDC0 CDE7FD 142 CALL SEND ; SEND 1 CHARACTER TO PLOTTER FDC3 FE0D 143 CP ASCICR ; IF ASCICR SEND LF FDC5 CCE5FD 144 CALL Z,SEND_LF ; SEND LF AFTER CR FDC8 3E0D 145 LD A,ASCICR ; IS IT A C.RETURN FDCA EDA1 146 CPI ; INC HL DEC BC FDCC 2806 147 JR Z,ENDLIN 148 ; FDCE EABAFD 149 JP PE,LOOP_L FDD1 C9 150 RET 151 ; 152 ; ------------------------- 153 ; FDD2 EDA1 154 FILEND CPI 155 ENDFIL FDD4 FD6E04 156 ENDLIN LD L,(IY+4) ; CALCULATE HOW MANY FDD7 FD6605 157 LD H,(IY+5) ; BYTES HAVE BEEN OUTPUT FDDA A7 158 AND A ; FROM BUFFER FDDB ED42 159 SBC HL,BC FDDD FD7504 160 LD (IY+4),L ; LOAD INTO VECTOR FDE0 FD7405 161 LD (IY+5),H FDE3 C9 162 RET 163 ; 164 ; 4 4 D E A C T I V A T E R E Q U E S T 165 ; ----------------------------------------- 166 ; 167 S_DEACRQ FDE4 C9 168 RET \f WILD 17-11-1982-JK PAGE 5 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 169 *H 170 ; S E N D 1 C H A R A C T E R T O P L O T T E R 171 ; ----------------------------------------------------- 172 ; FDE5 3E0A 173 SEND_LF LD A,ASCILF 174 ; FDE7 F5 175 SEND PUSH AF ; SAVE CHARACTER 176 ; FDE8 3E01 177 WAITB LD A,1 ; REG 1 FDEA D306 178 OUT (S_11AC),A FDEC DB06 179 IN A,(S_11AC) ; READ STATUS SIO FDEE CB47 180 BIT ALLSENT,A ; TEST SIO EMPTY FDF0 28F6 181 JR Z,WAITB ; TEST AGAIN 182 ; FDF2 AF 183 XOR A ; A = 0 FDF3 00 184 DELAY NOP FDF4 3D 185 DEC A FDF5 20FC 186 JR NZ,DELAY 187 ; FDF7 F1 188 POP AF ; RESTORE FDF8 D304 189 OUT (S_11AD),A FDFA C9 190 RET 191 ; \f INITIALIZE DATA WILD 17-11-1982-JK PAGE 6 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 192 *H INITIALIZE DATA 193 ; I N I T I A L I Z E D A T A 194 ; ----------------------------- 195 ; 196 I_SIO FDFB 09 197 SI_11A DEFB 9 ; LENGTH INIT SIO 1.1 A FDFC 06 198 DEFB S_11AC ; PORT NUMBER SIO 1.1 A 199 ; FDFD 18 200 DEFB 00011000B ; NEXT REG. = 0 RESET FDFE 03 201 DEFB 3 ; NEXT REG. = 3 FDFF E0 202 DEFB 11100000B ; 8 BIT AUTO ENABLE FE00 04 203 DEFB 4 ; NEXT REG. = 4 FE01 4C 204 DEFB 01001100B ; X16 CLOCK 1 STOPBIT NO PARITY FE02 05 205 DEFB 5 ; NEXT REG. = 5 FE03 EA 206 DEFB 11101010B ; DTR, 8 BIT, RTS FE04 01 207 DEFB 1 ; NEXT REG. = 1 FE05 00 208 DEFB 00000000B ; NO INTERRUPT 209 ; FE06 02 210 CTC110 DEFB 2 ; LENGTH CTC INITIALIZE FE07 0C 211 DEFB C_11_0 ; CTC 1.1 CHANNEL 0 FE08 07 212 DEFB 00000111B ; TIMER MODE PRESCALER = 16 FE09 01 213 DEFB 1 ; 9600 BAUD 214 ; FE0A 00 215 DEFB 00 ; END OF INITIALIZE 216 ; \f INIT WILD 17-11-1982-JK PAGE 7 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 217 *H INIT 218 ; INITIALIZE SIO'S + CTC'S + PIO'S 219 ; -------------------------------- 220 ; 221 ; (HL) = LENGTH 222 ; (HL+1) = CONTROL PORT 223 ; (HL+2) = INITIALIZE DATA 224 ; 225 ; HL > DEFB N 226 ; DEFB PORT 227 ; DEFB DATA_1 228 ; DEFB DATA_2 229 ; : 230 ; : 231 ; DEFB DATA_N 232 ; N+1 DEFB 00 ; STOP CONDITION 233 ; FE0B 7E 234 INIT LD A,(HL) ; A = LENGTH FE0C A7 235 AND A ; A = 0 FINISH FE0D C8 236 RET Z ; END OF INITIALIZE FE0E 47 237 LD B,A ; B = LENGTH OF INITIALIZE FE0F 23 238 INC HL FE10 4E 239 LD C,(HL) ; C = PORT ADDRESS FE11 23 240 INC HL FE12 EDB3 241 OTIR ; SEND TO DEVICE FE14 18F5 242 JR INIT ; REPEAT 243 ; 244 ; \f REQUEST CODE DECODE WILD 17-11-1982-JK PAGE 8 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 245 *H REQUEST CODE DECODE 246 ; 247 GLOBAL DEC_REQ OKEXIT 248 ;START CALL DEC_REQ ; DRIVER EXAMPLE. 249 ; DEFB N ; NUMBER OF VALID REQ. CODES 250 ; DEFB OP_CODE_1 251 ; DEFW START_OP_CODE_1 252 ; DEFB OP_CODE_2 253 ; DEFW START_OP_CODE_2 254 ; : 255 ; : 256 ; DEFB OP_CODE_#N 257 ; DEFW START_OP_CODE_#N 258 ; FE16 2145FE 259 DEC_REQ LD HL,IORTN1 ; HL = COMMON RETURN POINT FE19 E3 260 EX HL,(SP) ; HL = OPCODE TABLE START FE1A FD360A80 261 LD (IY+10),80H ; GOOD COMPLETION CODE FE1E FD7E01 262 LD A,(IY+1) ; A = OPCODE FE21 46 263 LD B,(HL) ; B = NUMBER OF OPCODES FE22 23 264 INC HL FE23 BE 265 SEARCH CP (HL) ; OPCODE FOUND ? FE24 280A 266 JR,Z FOUND ; YES FE26 23 267 INC HL FE27 23 268 INC HL FE28 23 269 INC HL FE29 10F8 270 DJNZ SEARCH ; MORE VALID OPCODES ? 271 ; FE2B FD360AC1 272 LD (IY+10),0C1H ; INVALID REQUEST CODE FE2F C9 273 RET 274 ; FE30 23 275 FOUND INC HL FE31 7E 276 LD A,(HL) FE32 23 277 INC HL FE33 66 278 LD H,(HL) FE34 6F 279 LD L,A FE35 E5 280 PUSH HL ; SAVE REQ. CODE START ON STACK 281 ; FE36 FD6E02 282 LD L,(IY+2) FE39 FD6603 283 LD H,(IY+3) ; HL = DATA START ADDRESS 284 ; FE3C FD4E04 285 LD C,(IY+4) FE3F FD4605 286 LD B,(IY+5) ; BC = DATA LENGTH 287 ; FE42 78 288 LD A,B FE43 B1 289 OR C ; Z = 1 IF BC = 0 FE44 C9 290 RET 291 ; FE45 FDCB0A76 292 IORTN1: BIT 6,(IY+10) FE49 280B 293 JR Z,IORET 294 ERRTN: FE4B FD6609 295 LD H,(IY+9) FE4E FD6E08 296 LD L,(IY+8) FE51 7C 297 LD A,H FE52 B5 298 OR L FE53 2801 299 JR Z,IORET FE55 E9 300 JP (HL) 301 IORET: FE56 FDCB0146 302 BIT 0,(IY+1) ; CHECK WHICH RETURN FE5A C8 303 RET Z FE5B FD6607 304 LD H,(IY+7) ; RETURN TO COMPLETION ADDRESS \f REQUEST CODE DECODE WILD 17-11-1982-JK PAGE 9 LOC OBJ CODE M STMT SOURCE STATEMENT ASM 5.9 FE5E FD6E06 305 LD L,(IY+6) FE61 E9 306 JP (HL) 307 END \f CROSS REFERENCE WILD 17-11-1982-JK PAGE 10 SYMBOL VAL M DEFN REFS ALLSEN 0000 52 180 ASCICR 000D 44 125 143 145 ASCILF 000A 45 173 ASSNRQ 0002 20 71 CLOSRQ 0006 22 77 CTC110 FE06 210 C_11_0 000C 36 211 C_11_1 000D 37 C_11_2 000E 38 C_11_3 000F 39 DATE 13AB 57 DEACRQ 0044 27 86 DEC_RE FE16 G 259 65 247 DELAY FDF3 184 186 DRAW FD80 G 65 61 ENDFIL FDD4 155 122 140 ENDLIN FDD4 156 147 ERCODE 13BD 56 ERRTN FE4B 294 E_O_F 00FF 46 121 139 FILEND FDD2 154 FOUND FE30 275 266 INIT FE0B 234 94 242 INITRQ 0000 19 68 IORET FE56 301 293 299 IORTN1 FE45 292 259 I_SIO FDFB 196 93 LOOP_B FDA5 119 128 LOOP_L FDBA 137 149 OKEXIT FDB8 G 129 78 247 OPENRQ 0004 21 74 RDASRQ 000C 24 RDBIRQ 000A 23 RX_RDY 0000 50 SEARCH FE23 265 270 SEND FDE7 175 124 142 SEND_L FDE5 173 126 144 SI_11A FDFB 197 S_11AC 0006 33 178 179 198 S_11AD 0004 31 95 189 S_11BC 0007 34 S_11BD 0005 32 S_CLOS FDA3 110 S_DEAC FDE4 167 87 S_INIT FD99 92 69 72 S_OPEN FDA2 103 75 S_WRTB FDA4 116 81 S_WRTL FDB9 134 84 TAB 0009 43 TX_RDY 0002 51 WAITB FDE8 177 181 WRTBRQ 000E 25 80 WRTLRQ 0010 26 83