LOAD LOAD.ASM BLOAD LOAD.ASM,A$1800 !L 1 ORG $7200 2 OBJ $800 3 ; 4 ;---->>> MOD7 5 ; 6 NLS 7 P\BUF EQU $8200 8 VTOC EQU $9400 9 DIR EQU $9500 10 NMDISK EQU $1E4B 11 VB/SLT EQU $1E45 12 VB/TYP EQU $1E46 13 CARDS EQU $1E60 14 CON EQU $B7E8 15 DRV/LG EQU $1E56 16 DRIVE EQU $E15 17 RWTS EQU $3D9 18 ; 19 Z06 EPZ $06 20 Z1A EPZ $1A 21 Z1B EPZ $1B 22 Z1C EPZ $1C 23 ; 24 JMP START 25 ; 26 COUNT HEX 0000 27 FLAG HEX 00 28 PGCNT HEX 01 29 WHDISK HEX 00 30 SUPCP HEX 00 31 CONTR HEX 00 32 NBUF HEX 20202020202020202020 33 HEX 2020 34 PT HEX 00 35 CONTC HEX 38 36 CONTD HEX B8 37 SV/36 HEX 00 38 SV/37 HEX 00 39 MASK/R HEX 00 40 TIM\CT HEX 00 41 SER/CD HEX 00 42 Y\SLOT HEX 00 43 ; 44 ERR1 LDA #$FF 45 STA FLAG 46 RTS 47 START JSR SET/UP 48 LDA FLAG 49 BNE INP40 50 ; 51 JSR WHICH 52 BMI ERR1 53 JSR ST/CAR 54 JSR WARN/R 55 JSR BIGTIM 56 BCC ERR1 57 CMP #$5D 58 BNE ERR1 59 JSR ACK 60 JSR GET/CH 61 BCC ERR1 62 CMP #$5D 63 BNE ERR1 64 LDA #$40 65 STA FLAG 66 ; 67 INP40 CMP #$40 68 BEQ INP41 69 JMP INP20 70 INP41 JSR ACK 71 LDA #$00 72 STA PT 73 LDA #$01 74 STA PGCNT 75 CPNM JSR GET/CH 76 CMP #$4B 77 BEQ SP 78 JSR TRAN 79 JSR FIX 80 BEQ CPNM 81 LDX PT 82 STA NBUF,X 83 INC PT 84 JMP CPNM 85 SP LDY #$00 86 L1 LDA LIT1,Y 87 BEQ LL1 88 JSR PRMON 89 INY 90 BNE L1 91 LL1 LDY #$00 92 LL2 LDA NBUF,Y 93 JSR PRMON 94 INY 95 CPY #$0B 96 BNE LL2 97 LDY #$00 98 SP2 LDA LIT2,Y 99 BEQ SP1 100 JSR PRMON 101 INY 102 BNE SP2 103 SP1 JSR ROOM? 104 LDX $C010 105 LDX #$20 106 SP3 LDA #$FF 107 JSR $FCA8 108 LDA $C000 109 BMI SP4 110 DEX 111 BNE SP3 112 LDA $C000 113 BPL SP7 114 SP4 LDX $C010 115 PHA 116 JSR PRMON 117 PLA 118 CMP #$B1 119 BCC SP99 120 CMP #$B9 121 BCC SP5 122 SP99 CMP #$D1 123 BNE SP3 124 LDA #$FE 125 STA FLAG 126 JMP DATA 127 SP5 AND #$0F 128 STA WHDISK 129 SP7 LDA #$20 130 JSR PRMON 131 JMP DATA 132 ; 133 INP20 CMP #$20 134 BNE ERROR 135 INC PGCNT 136 DATA JSR IN/CAR 137 JSR ACK 138 DATALP LDA $C000 139 BPL DL0 140 LDX $C010 141 CMP #$D1 142 BNE DL0 143 STA FLAG 144 LDA #$15 145 JSR OU/CAR 146 RTS 147 DL00 TXA 148 CLC 149 BCC DL01 150 DL0 JSR GET/CH 151 DL01 CMP #$51 152 BEQ EJECT 153 CMP #$4F 154 BEQ PAGE0 155 CMP #$5D 156 BEQ NEWCH 157 CMP CONTC 158 BEQ CONT 159 CMP CONTD 160 BEQ CONT 161 DL77 JSR TRAN 162 JSR NORM 163 JMP DATALP 164 PAGE0 JMP PAGE 165 CONT LDX CONTR 166 BPL DL77 167 JSR GET/CH 168 TAX 169 AND #$40 170 BNE DL00 171 TXA 172 JSR TRAN 173 CMP '= 174 BNE NOTDEL 175 LDA #$7F 176 BNE BACK 177 NOTDEL CMP '" 178 BEQ DOT5 179 AND #$1F 180 BACK JSR NORM 181 JMP DATALP 182 ; 183 DOT5 LDX VB/TYP 184 LDA SPCHAR,X 185 BNE BACK 186 SPCHAR HEX 5F5F5F4040 187 ; 188 ERROR LDA #$FF 189 STA FLAG 190 RTS 191 NORM LDY #$00 192 STA (Z1C),Y 193 LDA FLAG 194 BMI NORM4 195 INC COUNT 196 BNE NORM3 197 INC COUNT+1 198 NORM3 INC Z1C 199 BNE NORM4 200 INC Z1C+1 201 NORM4 RTS 202 EJECT LDA #$80 203 STA FLAG 204 JSR SDIR 205 JMP ACK 206 NEWCH LDX FLAG 207 LDA #$40 208 STA FLAG 209 CPX #$FE 210 BEQ NEWCH1 211 JSR SDIR 212 RTS 213 NEWCH1 JMP INP41 214 PAGE LDA CONTR 215 CMP #$01 216 BEQ MPAGE 217 LDA SUPCP 218 BNE PAGEX 219 LDA #$10 220 JSR NORM 221 PAGEX JSR GET/CH 222 CMP #$4B 223 BNE ERROR 224 LDA COUNT+1 225 CMP #$08 226 BCS TOOBIG 227 JSR ACK 228 JMP DATALP 229 MPAGE JSR GET/CH 230 CMP #$4B 231 BNE ERROR 232 LDA COUNT+1 233 CMP #$06 234 BCS TOOBIG 235 JSR ACK 236 JMP DATALP 237 TOOBIG LDA #$20 238 STA FLAG 239 JSR SDIR 240 RTS 241 TRAN STA Z1A 242 AND #$3F 243 TAX 244 LDA TBL,X 245 TRAN0 ASL Z1A 246 BCC TRAN1 247 ASL Z1A 248 BCS MODELD 249 CMP #$61 250 BCC TRAN1 251 SEC 252 SBC #$20 253 TRAN1 RTS 254 MODELD AND #$1F 255 RTS 256 TBL HEX 20613162276B326C 257 HEX 406369662F6D7370 258 HEX 22653368396F3672 259 HEX 5E646A673E6E7471 260 HEX 2C2A353C2D753876 261 HEX 2E255B242B782126 262 HEX 3B3A345C307A3728 263 HEX 5F3F775D2379293D 264 LIT1 HEX 8D 265 ASC "Chapter: " 266 HEX 00 267 LIT2 HEX 8D 268 ASC 'is now being loaded' 269 HEX 8D00 270 LIT3 ASC 'Switching disks' 271 HEX 8D00 272 LITW1 HEX 8D 273 ASC 'Enter chord-R R on the VersaBraille now' 274 HEX 8D00 275 LITW2 HEX 8D 276 ASC 'Enter chord-X H at V B chapter name' 277 HEX 8D00 278 FIX LDX PT 279 BNE FIX1 280 CMP #$2C 281 BNE FIX2 282 LDA #$00 283 RTS 284 FIX2 JSR CAP 285 CMP #$40 286 BCS FIX3 287 PHA 288 LDA '] 289 STA NBUF 290 INC PT 291 PLA 292 RTS 293 FIX1 JSR CAP 294 CMP #$2C 295 BEQ FIX4 296 FIX3 RTS 297 FIX4 LDA #$43 298 RTS 299 CAP CMP #$61 300 BCC CAP1 301 SBC #$20 302 CAP1 RTS 303 SDIR LDA PGCNT 304 STA DIR 305 STA DIR+1 306 ASL 307 CLC 308 ADC DIR 309 TAY 310 LDA DIR 311 STA DIR,Y 312 LDA COUNT 313 STA DIR+1,Y 314 LDA COUNT+1 315 STA DIR+2,Y 316 RTS 317 ; 318 ; 319 LC HEX 00 320 HC HEX 00 321 ; 322 ROOM? LDA WHDISK 323 STA DRV/LG 324 JSR DRIVE 325 LDA #$01 326 STA CON+12 327 LDA #VTOC 328 STA CON+8 329 LDA /VTOC 330 STA CON+9 331 LDA #$00 332 STA CON+5 333 STA LC 334 STA HC 335 LDA #$11 336 STA CON+4 337 LDY #CON 338 LDA /CON 339 JSR RWTS 340 ; 341 LDX #$8B 342 SZ LDA VTOC+$38,X 343 LDY #$07 344 ZX LSR 345 BCC ZX1 346 INC LC 347 BNE ZX1 348 INC HC 349 ZX1 DEY 350 BPL ZX 351 DEX 352 CPX #$FF 353 BNE SZ 354 LDA HC 355 BNE ROOM0 356 LDA LC 357 CMP #$20 358 BCS ROOM0 359 LDA NMDISK 360 CMP #$01 361 BEQ ROOM0 362 CMP WHDISK 363 BNE BKDEF 364 TAX 365 DEX 366 STX WHDISK 367 BNE SWMESS 368 BKDEF STA WHDISK 369 SWMESS LDY #$00 370 SWML LDA LIT3,Y 371 BEQ ROOM0 372 JSR PRMON 373 INY 374 BNE SWML 375 ROOM0 RTS 376 ; 377 ; 378 PRMON ORA #$80 379 JMP $FDED 380 ; 381 SET/UP LDA #P\BUF 382 STA Z1C 383 LDA /P\BUF 384 STA Z1C+1 385 LDA #$00 386 STA COUNT 387 STA COUNT+1 388 LDA VB/TYP 389 CMP #$03 390 BCC SET/0 391 LDA #$08 392 STA CONTC 393 LDA #$88 394 STA CONTD 395 SET/0 RTS 396 ; 397 WHICH LDA VB/SLT 398 BEQ BAD 399 TAX 400 ASL 401 ASL 402 ASL 403 ASL 404 STA Y\SLOT 405 LDA CARDS,X 406 STA SER/CD 407 BEQ BAD 408 CMP #$08 409 BEQ GOOD 410 CMP #$05 411 BCS BAD 412 LDX #$00 413 GOOD RTS 414 BAD LDX #$80 415 RTS 416 ; 417 ST/CAR LDY Y\SLOT 418 LDA SER/CD 419 CMP #$08 420 BEQ ST/SBM 421 CMP #$01 422 BEQ ST/SSC 423 CMP #$04 424 BEQ ST/2C 425 ; 426 ST/CCS LDA #$23 427 STA $C080,Y 428 LDA #$11 429 STA $C080,Y 430 RTS 431 ; 432 ST/SBM LDA #$0B 433 STA $C08A,Y 434 LDA #$9E 435 STA $C08B,Y 436 LDA #$A0 437 JSR $FCA8 438 RTS 439 ; 440 ST/SSC NOP 441 ST/2C LDA $36 442 STA SV/36 443 LDA $37 444 STA SV/37 445 LDA #$00 446 STA $36 447 LDA VB/SLT 448 ORA #$C0 449 STA $37 450 LDX $1F70 451 DEX 452 ST/LP INX 453 LDA $1F00,X 454 CMP #$7F 455 BEQ ST1 456 JSR $FDED 457 BNE ST/LP 458 ST1 LDA #$47 459 JSR $FDED 460 LDA SV/36 461 STA $36 462 LDA SV/37 463 STA $37 464 JSR IN/CAR 465 LDA #$60 466 JSR $FCA8 467 JMP IN/CAR 468 ; 469 BIGTIM LDA #$04 470 STA TIM\CT 471 BIG/OL LDX #$00 472 BIG/IL JSR IN/CAR 473 BCS BIG/0 474 LDA #$FF 475 JSR $FCA8 476 DEX 477 BNE BIG/IL 478 DEC TIM\CT 479 BNE BIG/OL 480 CLC 481 BIG/0 RTS 482 ; 483 GET/CH LDA #$00 484 STA TIM\CT 485 GET/OL LDX #$00 486 GET/IL JSR IN/CAR 487 BCS GET/0 488 LDA #$10 489 JSR $FCA8 490 DEX 491 BNE GET/IL 492 DEC TIM\CT 493 BNE GET/OL 494 CLC 495 GET/0 RTS 496 ; 497 IN/CAR LDY Y\SLOT 498 LDA SER/CD 499 CMP #$08 500 BEQ IN/SSC 501 CMP #$01 502 BEQ IN/SSC 503 CMP #$04 504 BEQ IN/2C 505 ; 506 IN/CCS LDA $C080,Y 507 LSR 508 BCC NONE 509 LDA $C081,Y 510 SEC 511 RTS 512 NONE CLC 513 RTS 514 ; 515 IN/SSC NOP 516 IN/2C LDA $C089,Y 517 AND #$08 518 BEQ NONE 519 LDA $C088,Y 520 SEC 521 RTS 522 ; 523 ACK LDA #$06 524 OU/CAR LDY Y\SLOT 525 LDX SER/CD 526 CPX #$08 527 BEQ OU/SSC 528 CPX #$01 529 BEQ OU/SSC 530 CPX #$04 531 BEQ OU/2C 532 ; 533 OU/CCS STA $C081,Y 534 RTS 535 OU/SSC NOP 536 OU/2C STA $C088,Y 537 RTS 538 ; 539 WARN/R LDA Y\SLOT 540 LDX SER/CD 541 CPX #$08 542 BEQ WA/SSC 543 CPX #$01 544 BEQ WA/SSC 545 CPX #$04 546 BEQ WA/2C 547 ; 548 WA/CCS LDX #$08 549 BNE WARN2 550 WA/2C CLC 551 ADC #$09 552 LDX #$20 553 BNE WARN2 554 WA/SSC CLC 555 ADC #$09 556 LDX #$40 557 WARN2 TAY 558 STX MASK/R 559 LDA $C080,Y 560 AND MASK/R 561 BEQ WARN7 562 LDA #$50 563 JSR $FCA8 564 LDA $C080,Y 565 AND MASK/R 566 BEQ WARN7 567 LDX #$00 568 LIT1LP LDA LITW1,X 569 BEQ WARN3 570 JSR $FDED 571 INX 572 BNE LIT1LP 573 ; 574 WARN3 LDA $C080,Y 575 AND MASK/R 576 BNE WARN3 577 WARN7 LDX #$00 578 LIT2LP LDA LITW2,X 579 BEQ WARN/0 580 JSR $FDED 581 INX 582 BNE LIT2LP 583 WARN/0 LDA $1E05 584 CMP $1E45 585 BNE WARN/F 586 LDA #$00 587 STA $1E04 588 WARN/F RTS 589 ; 590 XX HEX 00 591 ; 592 ; 593 END !