HEATH ASM #104.06.00 11-Nov-21 Page 1 00001 * 00002 * Code to load into the H89 with the bootstrp 00003 * program. This provides the functions needed to 00004 * save and restore disk images through the 00005 * serial port. 00006 * On booting the H89, first use the B to load the jump tables 00007 * into RAM, without any disk. Use Shift/Reset to get back 00008 * to the H: prompt. Use the S command to enter the boot strap 00009 * program. Use H89IMG.COM to load this program. 00010 * The command interpreter recognizes the 00011 * following commands: 00012 * W - Write image to disk. When each buffer is loaded 00013 * it replies with W. Each buffer must start with 'W' 00014 * or it will abort to command. Buffer size must match. 00015 * It expects the V value to match the disk in the drive. 00016 * Buffer data is transfered as 8 bit value. 00017 * R - Reads a disk image, using V value. Each buffer will 00018 * begin transfer when a 'R' is received. Buffer size 00019 * is the same as used for W command. A character, other 00020 * than r will abort command. Buffer data is transfered 00021 * as 8 bit values. Response handshake is 'r' if error. 00022 * S - Save this image loader to disk as a stand alone boot 00023 * ( not HDOS ). The disk must be originally formatted 00024 * with V = 0. It returns a S when complete. 00025 * V - Sets the volume number for the various operations. 00026 * Check HDOS docs for useage of the Volume number. 00027 * It must receive the volume number as a non-ascii 00028 * byte as the next byte after the the V command. It 00029 * returns a V when complete. 00030 * C - Read the disk and returns the volume number if it is 00031 * an HDOS disk. If it is another type it would be an 00032 * indeterminate value. 00033 * I - Fallowed by a number 0,1,2 corresponding to a sector 00034 * interleaving of 1:1, 1:2, or 1:3. Other numbers will 00035 * cause incorrect formatting during writes. This has 00036 * effect on the W and S commands only. 00037 * T - Reads the value of the volume from the header of the 00038 * disk in the drive. It does this by looking at track 00039 * 1's header and not by the HDOS image value. 00040 * Other characters - It will reply with ? this is handy 00041 * to determine if it is truly in the command mode. 00042 012.000 00043 ZBUF EQU 0A00H ; Buffer size 1 track 001.000 00044 ZSTK EQU 100H ; STACK SIZE 00045 043.023 00046 COMTYP EQU 2313H ; IF FAH THEN H8-5 ELSE H8-4/H89 00047 * ; IN BOOT STRAP 00048 00049 00050 * Ports for H8-4 000.340 00051 LP4 EQU 0E0H 000.340 00052 TX4 EQU LP4 000.340 00053 RX4 EQU LP4 000.340 00054 DVL4 EQU LP4 000.341 00055 DVH4 EQU LP4+1 000.341 00056 IER4 EQU LP4+1 000.343 00057 LCNTL4 EQU LP4+3 HEATH ASM #104.06.00 11-Nov-21 Page 2 000.344 00058 MCNTL4 EQU LP4+4 000.345 00059 LSTAT4 EQU LP4+5 00060 00061 * Ports for H8-5 000.372 00062 LP5 EQU 0FAH 000.372 00063 TX5 EQU LP5 000.372 00064 RX5 EQU LP5 000.373 00065 CNTL5 EQU LP5+1 000.373 00066 STAT5 EQU LP5+1 00067 00068 * Disk addresses 040.141 00069 DABORT EQU 2061H 040.205 00070 DSDP EQU 2085H 040.166 00071 DSDT EQU 2076H 040.210 00072 DSTS EQU 2088H 034.031 00073 CLOCK EQU 1C19H 036.355 00074 WSP1 EQU 1EEDH 040.227 00075 DWNB EQU 2097H 040.136 00076 DXOK EQU 205EH 040.155 00077 DWRITE EQU 206DH 040.147 00078 DREAD EQU 2067H 040.037 00079 UIVEC EQU 201FH 040.010 00080 MFLAG EQU 2008H 040.240 00081 DTT EQU 20A0H 040.244 00082 DDLYHS EQU 20A4H 040.242 00083 DDVCTL EQU 20A2H 040.243 00084 DDLYMO EQU 20A3H 040.251 00085 DDRVTB EQU 20A9H 040.247 00086 DVOLPT EQU 20A7H 040.123 00087 DWHDA EQU 2053H 040.163 00088 DDTS EQU 2073H 040.216 00089 DUDLY EQU 208EH 040.221 00090 DWSC EQU 2091H 040.202 00091 DRDB EQU 2082H 00092 00093 043.051 00094 ORG 2329H ; MATCHES WITH BOOTLDR 043.051 000 00095 START NOP 043.052 000 00096 NOP 043.053 000 00097 NOP 043.054 000 00098 NOP 043.055 363 00099 DI 043.056 061 133 061 00100 LXI SP,SPINT 043.061 041 132 043 00101 LXI H,MAINPAD-1 043.064 001 376 003 00102 LXI B,BUFFER-MAININT+104H 043.067 000 00103 NOP 043.070 000 00104 ALGNR1 NOP 043.071 000 00105 NOP 043.072 000 00106 NOP 043.073 043 00107 INX H 043.074 176 00108 MOV A,M 043.075 267 00109 ORA A 043.076 312 070 043 00110 JZ ALGNR1 ; FIND FIRST CODE 043.101 021 372 002 00111 LXI D,BUFFER-MAININT ; COUNT TO MOVE 043.104 031 00112 DAD D ; H POINTS TO END OF SHIFTED CODE 043.105 021 133 046 00113 LXI D,BUFFER ; END OF CODE 043.110 000 00114 NOP HEATH ASM #104.06.00 11-Nov-21 Page 3 043.111 000 00115 ALGNR2 NOP 043.112 000 00116 NOP 043.113 000 00117 NOP 043.114 176 00118 MOV A,M 043.115 022 00119 STAX D ; MOVE IT UP 043.116 033 00120 DCX D 043.117 053 00121 DCX H 043.120 015 00122 DCR C 043.121 302 111 043 00123 JNZ ALGNR2 ; 256 BYTES? 043.124 005 00124 DCR B ; CAUTION DOESN'T WORK RIGHT FOR 00125 * ; SIZES OF EVEN 100H 043.125 302 111 043 00126 JNZ ALGNR2 ; ALL DONE? 043.130 303 141 043 00127 JMP MAININT 043.133 000 00128 MAINPAD NOP 043.134 000 00129 NOP 043.135 000 00130 NOP 043.136 000 00131 NOP 043.137 000 00132 NOP 043.140 000 00133 NOP 043.141 363 00134 MAININT DI 043.142 076 303 00135 MVI A,0C3H ; JMP 043.144 062 037 040 00136 STA UIVEC 043.147 041 031 034 00137 LXI H,CLOCK 043.152 042 040 040 00138 SHLD UIVEC+1 043.155 061 133 061 00139 LXI SP,SPINT 043.160 315 203 043 00140 CALL SINT 043.163 076 001 00141 MVI A,01H 043.165 062 010 040 00142 STA MFLAG ; TURN OFF COUNTER 043.170 373 00143 EI 043.171 315 141 040 00144 CALL DABORT ; TRACK 0 00145 * DI 043.174 000 00146 NOP 043.175 315 272 043 00147 MAIN1 CALL CMND 043.200 303 175 043 00148 JMP MAIN1 00149 043.203 072 023 043 00150 SINT LDA COMTYP 043.206 376 372 00151 CPI 0FAH ; if H8-5 else H8-4 or H89 043.210 312 245 043 00152 JZ SINT5 00153 00154 043.213 00155 SINT4 EQU * ; For H8-4 and H89 with LP 043.213 257 00156 XRA A 043.214 323 343 00157 OUT LCNTL4 ; LINE CONTROL 043.216 323 341 00158 OUT IER4 ; NO INTERRUPTS 043.220 323 344 00159 OUT MCNTL4 ; INIT MODEM CONTROL 043.222 075 00160 DCR A ; SHOULD BE 'MVI A, 80H' BUT 0FFH OK 043.223 323 343 00161 OUT LCNTL4 043.225 076 014 00162 MVI A,0CH ; 9600 BAUD 043.227 323 340 00163 OUT DVL4 043.231 257 00164 XRA A 043.232 323 341 00165 OUT DVH4 043.234 076 007 00166 MVI A,07H ; 8 BIT 2 STOPS 043.236 323 343 00167 OUT LCNTL4 043.240 333 345 00168 IN LSTAT4 043.242 333 340 00169 IN RX4 ; CLEAR ANY JUNK 043.244 311 00170 RET 00171 HEATH ASM #104.06.00 11-Nov-21 Page 4 043.245 00172 SINT5 EQU * ; For H8-5 serial 043.245 076 252 00173 MVI A,0AAH 043.247 323 373 00174 OUT CNTL5 043.251 076 100 00175 MVI A,040H 043.253 323 373 00176 OUT CNTL5 ; RESET 8251 043.255 076 316 00177 MVI A,0CEH ; ASYNC 2 STOP 8 BIT NO PARITY 16X 043.257 323 373 00178 OUT CNTL5 043.261 076 025 00179 MVI A,015H ; DON'T WANT INTRPTS 043.263 323 373 00180 OUT CNTL5 ; ENABLE TX/RX 043.265 333 373 00181 IN STAT5 043.267 333 372 00182 IN RX5 ; CLEAR ANY JUNK 043.271 311 00183 RET 00184 043.272 315 352 043 00185 CMND CALL CHRIN 043.275 376 000 00186 CPI 0 043.277 312 272 043 00187 JZ CMND 043.302 376 122 00188 CPI 'R' 043.304 312 036 045 00189 JZ RDIMG 043.307 376 127 00190 CPI 'W' 043.311 312 257 044 00191 JZ WRIMG 043.314 376 123 00192 CPI 'S' 043.316 312 254 045 00193 JZ SVLDR 043.321 376 126 00194 CPI 'V' 043.323 312 017 046 00195 JZ SETV 043.326 376 103 00196 CPI 'C' 043.330 312 206 045 00197 JZ CHKV 043.333 376 111 00198 CPI 'I' 043.335 312 032 046 00199 JZ INTRLV 043.340 376 124 00200 CPI 'T' 043.342 312 334 045 00201 JZ RDDV 043.345 076 077 00202 MVI A,'?' 043.347 303 373 043 00203 JMP CHROUT 00204 043.352 072 023 043 00205 CHRIN LDA COMTYP 043.355 376 372 00206 CPI 0FAH ; if H8-5 else H8-4 or H89 043.357 312 021 044 00207 JZ CHRIN5 00208 043.362 333 345 00209 CHRIN4 IN LSTAT4 043.364 037 00210 RAR 043.365 322 362 043 00211 JNC CHRIN4 ; WAIT FOR CHAR 043.370 333 340 00212 IN RX4 043.372 311 00213 RET 00214 043.373 127 00215 CHROUT MOV D,A 043.374 072 023 043 00216 LDA COMTYP 043.377 376 372 00217 CPI 0FAH ; if H8-5 else H8-4 or H89 044.001 312 033 044 00218 JZ CHRO5 044.004 333 345 00219 CHRO4 IN LSTAT4 044.006 346 140 00220 ANI 60H 044.010 376 140 00221 CPI 60H 044.012 302 004 044 00222 JNZ CHRO4 044.015 172 00223 MOV A,D 044.016 323 340 00224 OUT TX4 044.020 311 00225 RET 00226 044.021 333 373 00227 CHRIN5 IN STAT5 044.023 037 00228 RAR HEATH ASM #104.06.00 11-Nov-21 Page 5 044.024 037 00229 RAR 044.025 322 021 044 00230 JNC CHRIN5 ; WAIT FOR CHAR 044.030 333 372 00231 IN RX5 044.032 311 00232 RET 00233 044.033 333 373 00234 CHRO5 IN STAT5 044.035 037 00235 RAR 044.036 322 033 044 00236 JNC CHRO5 044.041 172 00237 MOV A,D 044.042 323 372 00238 OUT TX5 044.044 311 00239 RET 00240 00241 * ; FORMAT A SINGLE TRACK 00242 * ; B = track C = vol# 044.045 363 00243 FTRK DI 044.046 076 001 00244 MVI A,01 044.050 062 010 040 00245 STA MFLAG ; TURN ON COUNTER 044.053 170 00246 MOV A,B 044.054 062 240 040 00247 STA DTT 044.057 076 002 00248 MVI A,02 044.061 062 244 040 00249 STA DDLYHS 044.064 257 00250 XRA A 044.065 323 177 00251 OUT 7FH 044.067 062 242 040 00252 STA DDVCTL 044.072 062 243 040 00253 STA DDLYMO 044.075 041 252 040 00254 LXI H,DDRVTB+1 044.100 042 247 040 00255 SHLD DVOLPT 044.103 161 00256 MOV M,C 044.104 373 00257 EI 044.105 315 205 040 00258 CALL DSDP ; SDP 044.110 315 166 040 00259 CALL DSDT ; DIS INTRS 044.113 257 00260 XRA A 044.114 323 176 00261 OUT 7EH 044.116 074 00262 INR A 044.117 062 123 040 00263 STA DWHDA 044.122 072 242 040 00264 LDA DDVCTL 044.125 074 00265 INR A 044.126 323 177 00266 OUT 7FH 044.130 315 210 040 00267 TRK1 CALL DSTS ; SKIP THIS SECTOR 044.133 072 244 040 00268 LDA DDLYHS 044.136 247 00269 ANA A 044.137 302 130 044 00270 JNZ TRK1 ; WAIT DELAY 044.142 052 247 040 00271 LHLD DVOLPT 044.145 106 00272 MOV B,M ; VOL# 044.146 052 121 046 00273 LHLD SECPNTR ; SEC INTERLEAVE TABLE 044.151 016 012 00274 TRK2 MVI C,0AH 044.153 315 355 036 00275 CALL WSP1 ; WRITES 0'S 044.156 170 00276 MOV A,B ; VOL# 044.157 315 227 040 00277 CALL DWNB 044.162 072 240 040 00278 LDA DTT ; TRACK 044.165 315 227 040 00279 CALL DWNB 044.170 176 00280 MOV A,M ; SEC# 044.171 315 227 040 00281 CALL DWNB 044.174 043 00282 INX H ; INCR SEC PNTR 044.175 172 00283 MOV A,D ; ?chksum? 044.176 315 227 040 00284 CALL DWNB 044.201 016 020 00285 MVI C,10H HEATH ASM #104.06.00 11-Nov-21 Page 6 044.203 315 355 036 00286 CALL WSP1 044.206 315 227 040 00287 TRK3 CALL DWNB 044.211 015 00288 DCR C ; 256 0'S 044.212 302 206 044 00289 JNZ TRK3 044.215 257 00290 TRK4 XRA A 044.216 315 227 040 00291 CALL DWNB ; END PAD 044.221 333 177 00292 IN 7FH 044.223 037 00293 RAR 044.224 322 215 044 00294 JNC TRK4 ; UNTIL SEC END 044.227 176 00295 MOV A,M 044.230 267 00296 ORA A ; 0 MARKS END OF SECTABLE 044.231 302 151 044 00297 JNZ TRK2 ; UNTIL END OF TRACK 044.234 072 242 040 00298 LDA DDVCTL 044.237 323 177 00299 OUT 7FH 044.241 373 00300 EI 044.242 315 136 040 00301 CALL DXOK 044.245 076 024 00302 MVI A,14H 044.247 062 123 040 00303 STA DWHDA 044.252 257 00304 XRA A 044.253 062 010 040 00305 STA MFLAG ; TURN OFF COUNTER ? 044.256 311 00306 RET 00307 044.257 257 00308 WRIMG XRA A 044.260 062 125 046 00309 STA SECNUM 044.263 062 124 046 00310 STA CURTRK 044.266 062 126 046 00311 STA SECNUM+1 044.271 041 252 040 00312 WRIMG1 LXI H,DDRVTB+1 044.274 167 00313 MOV M,A 044.275 042 247 040 00314 SHLD DVOLPT 044.300 315 352 043 00315 CALL CHRIN 044.303 376 127 00316 CPI 'W' ; HANDSHAKE 044.305 300 00317 RNZ 044.306 041 133 046 00318 LXI H,BUFFER 044.311 001 000 012 00319 LXI B,ZBUF 044.314 315 352 043 00320 WRIMG2 CALL CHRIN ; GET DATA 044.317 167 00321 MOV M,A 044.320 043 00322 INX H 044.321 013 00323 DCX B 044.322 170 00324 MOV A,B 044.323 261 00325 ORA C 044.324 302 314 044 00326 JNZ WRIMG2 00327 044.327 072 124 046 00328 LDA CURTRK 044.332 107 00329 MOV B,A 044.333 267 00330 ORA A 044.334 312 343 044 00331 JZ WRIMG3 ; C IS ZERO FROM ABOVE 044.337 072 123 046 00332 LDA VOLNUM ; ON FIRST TRACK 044.342 117 00333 MOV C,A ; USE VOL# ON THE REST 044.343 315 045 044 00334 WRIMG3 CALL FTRK 044.346 072 124 046 00335 LDA CURTRK 044.351 074 00336 INR A 044.352 062 124 046 00337 STA CURTRK 00338 044.355 001 000 012 00339 LXI B,ZBUF 044.360 021 133 046 00340 LXI D,BUFFER 044.363 052 125 046 00341 LHLD SECNUM 044.366 315 025 045 00342 CALL WRBUF HEATH ASM #104.06.00 11-Nov-21 Page 7 00343 044.371 076 127 00344 MVI A,'W' 044.373 315 373 043 00345 CALL CHROUT 044.376 052 125 046 00346 LHLD SECNUM 045.001 021 012 000 00347 LXI D,0AH ; SEC/TRK 045.004 031 00348 DAD D 045.005 042 125 046 00349 SHLD SECNUM 045.010 021 160 376 00350 LXI D,-190H ; 400D IS MAX 045.013 031 00351 DAD D 045.014 174 00352 MOV A,H 045.015 265 00353 ORA L 045.016 072 123 046 00354 LDA VOLNUM 045.021 302 271 044 00355 JNZ WRIMG1 ; LAST TRACK? 045.024 311 00356 RET 00357 045.025 00358 WRBUF EQU * 00359 * ; BC = BUFFER SIZE 00360 * ; DE = BUFFER ADDR 00361 * ; HL = FIRST SEC# 045.025 076 002 00362 MVI A,02 045.027 062 244 040 00363 STA DDLYHS 045.032 315 155 040 00364 CALL DWRITE 045.035 311 00365 RET 00366 045.036 257 00367 RDIMG XRA A 045.037 062 125 046 00368 STA SECNUM 045.042 062 126 046 00369 STA SECNUM+1 045.045 041 252 040 00370 RDIMG1 LXI H,DDRVTB+1 045.050 167 00371 MOV M,A 045.051 042 247 040 00372 SHLD DVOLPT 045.054 315 352 043 00373 CALL CHRIN 045.057 376 122 00374 CPI 'R' 045.061 300 00375 RNZ 00376 045.062 001 000 012 00377 LXI B,ZBUF 045.065 021 133 046 00378 LXI D,BUFFER 045.070 052 125 046 00379 LHLD SECNUM 045.073 315 164 045 00380 CALL RDBUF 00381 045.076 041 133 046 00382 LXI H,BUFFER 045.101 001 000 012 00383 LXI B,ZBUF 045.104 176 00384 RDIMG2 MOV A,M 045.105 315 373 043 00385 CALL CHROUT 045.110 043 00386 INX H 045.111 013 00387 DCX B 045.112 170 00388 MOV A,B 045.113 261 00389 ORA C 045.114 302 104 045 00390 JNZ RDIMG2 00391 045.117 072 120 046 00392 LDA GOODRD ; LOOK FOR READ ERROR 045.122 267 00393 ORA A 045.123 076 122 00394 MVI A,'R' 045.125 302 132 045 00395 JNZ RDIMG3 045.130 366 040 00396 ORI 020H ; BAD READ SEND r 045.132 315 373 043 00397 RDIMG3 CALL CHROUT 045.135 052 125 046 00398 LHLD SECNUM 045.140 021 012 000 00399 LXI D,0AH ; SEC/TRK HEATH ASM #104.06.00 11-Nov-21 Page 8 045.143 031 00400 DAD D 045.144 042 125 046 00401 SHLD SECNUM 045.147 021 160 376 00402 LXI D,-190H ; 400D IS MAX 045.152 031 00403 DAD D 045.153 174 00404 MOV A,H 045.154 265 00405 ORA L 045.155 072 123 046 00406 LDA VOLNUM 045.160 302 045 045 00407 JNZ RDIMG1 045.163 311 00408 RET 00409 045.164 00410 RDBUF EQU * 00411 * ; BC = BUFFER SIZE 00412 * ; DE = BUFFER ADDR 00413 * ; HL = FIRST SEC# 045.164 076 002 00414 MVI A,02 045.166 062 244 040 00415 STA DDLYHS 045.171 315 147 040 00416 CALL DREAD 045.174 076 000 00417 MVI A,0 045.176 332 202 045 00418 JC RDBF1 ; IF CARRY, READ ERROR 045.201 075 00419 DCR A 045.202 062 120 046 00420 RDBF1 STA GOODRD 045.205 311 00421 RET 00422 045.206 257 00423 CHKV XRA A 045.207 062 125 046 00424 STA SECNUM 045.212 062 126 046 00425 STA SECNUM+1 045.215 041 252 040 00426 CHKV1 LXI H,DDRVTB+1 045.220 167 00427 MOV M,A 045.221 042 247 040 00428 SHLD DVOLPT 00429 045.224 001 000 012 00430 LXI B,ZBUF 045.227 021 133 046 00431 LXI D,BUFFER 045.232 052 125 046 00432 LHLD SECNUM 045.235 315 164 045 00433 CALL RDBUF 00434 045.240 072 133 057 00435 LDA BUFFER+900H 045.243 315 373 043 00436 CALL CHROUT 045.246 076 103 00437 MVI A,'C' 045.250 315 373 043 00438 CALL CHROUT 045.253 311 00439 RET 00440 045.254 257 00441 SVLDR XRA A 045.255 062 123 046 00442 STA VOLNUM 045.260 041 200 042 00443 LXI H,2280H 045.263 021 014 046 00444 LXI D,DSKBOOT 045.266 016 117 00445 MVI C,DBEND-DSKBOOT 045.270 032 00446 SVLDR1 LDAX D 045.271 023 00447 INX D 045.272 167 00448 MOV M,A 045.273 043 00449 INX H 045.274 015 00450 DCR C 045.275 302 270 045 00451 JNZ SVLDR1 00452 045.300 257 00453 XRA A 045.301 107 00454 MOV B,A 045.302 117 00455 MOV C,A 045.303 315 045 044 00456 CALL FTRK HEATH ASM #104.06.00 11-Nov-21 Page 9 00457 045.306 257 00458 XRA A 045.307 052 247 040 00459 LHLD DVOLPT 045.312 167 00460 MOV M,A 045.313 001 325 003 00461 LXI B,SECNUM-2280H 045.316 021 200 042 00462 LXI D,2280H 045.321 041 000 000 00463 LXI H,0 045.324 315 025 045 00464 CALL WRBUF 045.327 076 123 00465 MVI A,'S' 045.331 303 373 043 00466 JMP CHROUT 00467 045.334 00468 RDDV EQU * 00469 * ; READ DISK VOLUME 045.334 041 040 000 00470 LXI H,20H ; SOMEPLACE OFF TRACK 0 045.337 345 00471 PUSH H 045.340 315 205 040 00472 CALL DSDP 045.343 341 00473 POP H 045.344 315 163 040 00474 CALL DDTS 045.347 076 001 00475 MVI A,1 045.351 315 216 040 00476 CALL DUDLY 045.354 315 210 040 00477 RDDV1 CALL DSTS ; SKIP SECTOR 045.357 072 244 040 00478 LDA DDLYHS 045.362 247 00479 ANA A 045.363 302 354 045 00480 JNZ RDDV1 045.366 363 00481 DI 045.367 315 221 040 00482 CALL DWSC 045.372 315 202 040 00483 CALL DRDB 045.375 373 00484 EI 045.376 365 00485 PUSH PSW 045.377 315 141 040 00486 CALL DABORT ; TRACK 0 046.002 361 00487 POP PSW 046.003 315 373 043 00488 CALL CHROUT 046.006 076 124 00489 MVI A,'T' 046.010 315 373 043 00490 CALL CHROUT 046.013 311 00491 RET 00492 00493 046.014 303 141 043 00494 DSKBOOT JMP MAININT 00495 046.017 315 352 043 00496 SETV CALL CHRIN 046.022 062 123 046 00497 STA VOLNUM 046.025 076 126 00498 MVI A,'V' 046.027 303 373 043 00499 JMP CHROUT 00500 046.032 315 352 043 00501 INTRLV CALL CHRIN 046.035 207 00502 ADD A 046.036 107 00503 MOV B,A 046.037 207 00504 ADD A 046.040 207 00505 ADD A 046.041 200 00506 ADD B ; TIMES 10 046.042 117 00507 MOV C,A 046.043 006 000 00508 MVI B,0 046.045 041 061 046 00509 LXI H,SEC1 046.050 011 00510 DAD B 046.051 042 121 046 00511 SHLD SECPNTR 046.054 076 111 00512 MVI A,'I' 046.056 303 373 043 00513 JMP CHROUT HEATH ASM #104.06.00 11-Nov-21 Page 10 00514 046.061 000 001 002 00515 SEC1 DB 0,1,2,3,4,5,6,7,8,9 046.073 000 002 004 00516 SEC2 DB 0,2,4,6,8,1,3,5,7,9 046.105 000 003 006 00517 SEC3 DB 0,3,6,9,2,5,8,1,4,7 046.117 000 00518 SECEND DB 0 00519 046.120 000 00520 GOODRD DB 0 046.121 061 046 00521 SECPNTR DW SEC1 046.123 000 00522 VOLNUM DB 0 046.124 000 00523 CURTRK DB 0 046.125 000 000 00524 SECNUM DW 0 ; 400D MAX 190H 046.127 377 000 377 00525 DUMMY DB 0FFH,0,0FFH,0 ; INSURE ASYNC ALIGNMENT 00526 046.133 00527 DBEND EQU * 046.133 00528 BUFFER DS ZBUF 00529 060.133 00530 DS ZSTK 061.133 00531 SPINT EQU * 00532 061.133 000 00533 END START 00533 Statements Assembled 38020 Bytes Free No Errors Detected