|
|
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 - metrics - 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