LOAD BTRAN.ASM BLOAD BTRAN.ASM,A$1800 FILE NOT FOUND !L 1 ORG $7200 2 OBJ $800 3 ; 4 ;---->> MOD5 5 ; 10-27-87+ 6 NLS 7 Z06 EPZ $06 8 Z07 EPZ $07 9 Z08 EPZ $08 10 Z09 EPZ $09 11 Z1A EPZ $1A 12 Z1B EPZ $1B 13 Z1C EPZ $1C 14 Z1D EPZ $1D 15 Z1E EPZ $1E 16 Z1F EPZ $1F 17 PRMON EQU $FDED 18 BUF EQU $8200 19 GRD2 EQU $2000 20 ABLOC EQU $1E4E 21 ; 22 JMP START 23 ; 24 SIZE HEX 0000 25 MOVE HEX 00 26 HOLD HEX 20 27 SHOLD HEX 00 28 BEFORE HEX 00 29 TARG HEX 00 30 CAPXXX HEX 80 31 CAPMD HEX 00 32 CBFLG HEX 00 33 SV/A HEX 00 34 SV/Y HEX 00 35 FORFLG HEX 00 36 LETSGN HEX 00 37 COMFLG HEX 00 38 BRCFLG HEX 00 39 MASK HEX 00 40 NUM HEX 00 41 TO DFS $18 42 ; 43 START JSR SETUP 44 JSR NOCAP 45 LDA #$00 46 STA CAPMD 47 JSR SETUP 48 JSR ATBIN 49 LDA #$20 50 STA HOLD 51 LOOP JSR ABORT 52 LDA HOLD 53 STA BEFORE 54 LDY #$00 55 LDA (Z1C),Y 56 STA SHOLD 57 JSR TYPE 58 LDA SPT,X 59 STA HOLD 60 LDA (Z1C),Y 61 CMP #$FF 62 BEQ FIN0 63 JSR CKSIZE 64 LDX CBFLG 65 BEQ NTCB 66 LDA #$41 67 BNE REG0 68 NTCB CMP #$20 69 BCS REGON 70 LDA #$7F 71 REGON SBC #$20 72 CMP #$3B 73 BCC REG0 74 SBC #$1A 75 REG0 ASL 76 CLC 77 ADC #$0A 78 TAX 79 JSR WORD 80 LDX #$00 81 STX FORFLG 82 BCC L5 83 LDX NUM 84 L5 INX 85 TXA 86 JSR INC 87 JSR ZCAPS 88 JMP LOOP 89 ; 90 FIN0 PHA 91 JSR FINCK0 92 PLA 93 RTS 94 FINCK0 JMP FINCK 95 ; 96 ; 97 ZCAPS LDA HOLD 98 JSR TYPE 99 CPX #$02 100 BNE ZCAP99 101 SEC 102 SBC #$41 103 ASL 104 TAY 105 LDA DROPTB+1,Y 106 PHA 107 LDA DROPTB,Y 108 PHA 109 ZCAP99 RTS 110 ; 111 ; 112 Z/B LDX #$80 113 STX CBFLG 114 LDX #$20 115 STX HOLD 116 RTS 117 Z/D LDX #$00 118 STX CBFLG 119 LDX #$20 120 STX HOLD 121 RTS 122 Z/T LDX #$00 123 STX CAPMD 124 LDX #$61 125 LDA SHOLD 126 CMP #$2D 127 BNE ZTX 128 LDX #$27 129 ZTX STX HOLD 130 RTS 131 Z/O LDX #$40 132 STX LETSGN 133 LDX #$61 134 STX HOLD 135 RTS 136 Z/R LDX #$40 137 STX BRCFLG 138 LDX '' 139 STX HOLD 140 RTS 141 Z/C LDA CAPMD 142 AND #$7F 143 BNE DT1 144 LDA #$20 145 DT1 ASL 146 STA CAPMD 147 LDA BEFORE 148 CMP #$23 149 BNE DT2 150 LDA #$61 151 DT2 STA HOLD 152 RTS 153 Z/A LDA #$40 154 STA CAPMD 155 STA LETSGN 156 LDA #$61 157 STA HOLD 158 RTS 159 Z/F LDA #$80 160 STA FORFLG 161 LDA #$61 162 STA HOLD 163 RTS 164 Z/E BRK 165 Z/G BRK 166 Z/H BRK 167 Z/I BRK 168 Z/J BRK 169 Z/K BRK 170 Z/L BRK 171 Z/M BRK 172 Z/N BRK 173 Z/P BRK 174 Z/Q BRK 175 Z/S BRK 176 Z/U BRK 177 Z/V BRK 178 Z/X BRK 179 Z/Y BRK 180 Z/Z BRK 181 ; 182 WORD LDA ATBL,X 183 STA Z06 184 LDA ATBL+1,X 185 STA Z07 186 JSR SEARCH 187 BCS REPL 188 LDY #$00 189 LDA (Z1C),Y 190 JSR CAPFIX 191 STA (Z1C),Y 192 CLC 193 RTS 194 REPL LDX #$00 195 REPL0 INY 196 LDA (Z06),Y 197 CMP #$0D 198 BEQ REPL1 199 CMP 'Z 200 BEQ ESC 201 STA TO,X 202 INX 203 BNE REPL0 204 ESC INY 205 LDA (Z06),Y 206 STA HOLD 207 REPL1 LDA #$FF 208 STA TO,X 209 STX TARG 210 CLC 211 TXA 212 SBC NUM 213 TAX 214 JSR SHIFT 215 LDY #$00 216 REPL3 LDA TO,Y 217 BMI REPL2 218 JSR CAPFIX 219 STA (Z1C),Y 220 INY 221 BNE REPL3 222 REPL2 DEY 223 BMI NUMF 224 TYA 225 CMP NUM 226 BCC NUMF 227 STA NUM 228 NUMF SEC 229 RTS 230 ; 231 Z/W LDY #$FF 232 WP INY 233 LDA (Z1C),Y 234 CMP #$FF 235 BNE WP7 236 JMP FIN0 237 WP7 CMP #$20 238 BEQ WP9 239 CMP #$0D 240 BNE WP 241 WP9 TYA 242 INC CLC 243 ADC Z1C 244 STA Z1C 245 BCC INCX 246 INC Z1D 247 INCX RTS 248 ; 249 SEARCH LDY #$00 250 LDA (Z06),Y 251 CMP #$0D 252 BEQ NIX 253 JSR MATCH 254 BCC NTRY 255 RTS 256 NTRY INY 257 LDA (Z06),Y 258 CMP #$0D 259 BNE NTRY 260 TYA 261 SEC 262 ADC Z06 263 STA Z06 264 BCC SEARCH 265 INC Z07 266 BNE SEARCH 267 NIX CLC 268 RTS 269 MATCH LDY #$00 270 LDA (Z06),Y 271 JSR TYPE 272 CPX #$02 273 BNE MT1 274 LDX BEFORE 275 STX TARG 276 JSR MATCHC 277 BCC NMATCH 278 JSR INC06 279 MT1 LDY #$00 280 MT2 LDA (Z1C),Y 281 STA TARG 282 LDA (Z06),Y 283 JSR MATCHC 284 BCC NMATCH 285 INY 286 BNE MT2 287 NMATCH CLC 288 RTS 289 FMATCH SEC 290 RTS 291 MATCHC STA MASK 292 JSR TYPE 293 CPX #$02 294 BEQ CAP 295 STY NUM 296 LDA TARG 297 CMP MASK 298 BNE NMATCH 299 BEQ FMATCH 300 CAP LDA MASK 301 SEC 302 SBC #$41 303 ASL 304 TAX 305 LDA CODETB+1,X 306 PHA 307 LDA CODETB,X 308 PHA 309 LDA TARG 310 JMP TYPE 311 ; 312 ; 313 NN CPX #$03 314 BEQ FMATCH 315 BNE NMATCH 316 BB CPX #$00 317 BEQ FMATCH 318 BNE NMATCH 319 QQ CPX #$00 320 BEQ FMATCH 321 CPX #$04 322 BEQ FMATCH 323 LDA TARG 324 CMP '- 325 BEQ FMATCH 326 BNE NMATCH 327 PP CPX #$04 328 BEQ FMATCH 329 BNE NMATCH 330 LL CPX #$01 331 BEQ FMATCH 332 CPX #$02 333 BEQ FMAT 334 BNE NMAT 335 II CPX #$09 336 BEQ FMAT 337 BNE NMAT 338 MM LDA CAPMD 339 BEQ NMAT 340 BPL FMAT 341 BMI QQ 342 GG LDA (Z1C),Y 343 CMP '7 344 BEQ FMAT 345 BNE NMAT 346 FF LDA FORFLG 347 ROL 348 RTS 349 OO LDA LETSGN 350 BNE FMAT 351 BEQ NMAT 352 DD LDA TARG 353 CMP #$61 354 BCC NMAT 355 CMP #$6B 356 BCC FMAT 357 BCS NMAT 358 EE PLA 359 PLA 360 FMAT SEC 361 RTS 362 NMAT CLC 363 RTS 364 SS LDA (Z1C),Y 365 CMP #$73 366 BEQ FMAT 367 BNE NMAT 368 RR LDA BRCFLG 369 BEQ NMAT 370 LDA #$00 371 STA BRCFLG 372 BEQ FMAT 373 HH CMP #$7B 374 BCS NMAT 375 CMP #$61 376 RTS 377 INC06 INC Z06 378 BNE INC06X 379 INC Z07 380 INC06X RTS 381 ; 382 AA BRK 383 CC BRK 384 JJ BRK 385 KK BRK 386 TT BRK 387 UU BRK 388 VV BRK 389 WW BRK 390 XX BRK 391 YY BRK 392 ZZ BRK 393 ; 394 ; 395 SETUP LDA #BUF 396 STA Z1C 397 LDA /BUF 398 STA Z1D 399 RTS 400 NOCAP LDY #$00 401 LDA (Z1C),Y 402 CMP #$FF 403 BEQ NOCAP9 404 CMP '@ 405 BEQ TCCHK 406 CMP '_ 407 BNE NOTTC 408 TCCHK INY 409 LDA (Z1C),Y 410 CMP 'l 411 BNE ZV2 412 LDA #$00 413 STA COMFLG 414 ZV2 CMP '- 415 BNE NOTTC 416 LDA #$80 417 STA COMFLG 418 NOTTC LDA COMFLG 419 BNE NOCAP2 420 LDY #$00 421 LDA (Z1C),Y 422 CMP #$7B 423 BCS NOCAP1 424 CMP #$5B 425 BCS NOCAP2 426 CMP #$41 427 BCC NOCAP2 428 CLC 429 ADC #$40 430 NOCAP1 SEC 431 SBC #$20 432 STA (Z1C),Y 433 NOCAP2 INC Z1C 434 BNE NOCAP 435 INC Z1D 436 BNE NOCAP 437 NOCAP9 RTS 438 CAPFIX CMP #$00 439 BEQ CAPF0 440 LDX CBFLG 441 BNE CAPF0 442 JSR TYPE 443 CPX #$00 444 BNE CAPF2 445 STX CAPMD 446 STX LETSGN 447 BEQ CAPF0 448 CAPF2 LDX CAPMD 449 BEQ CAPF0 450 CMP #$61 451 BCC CAPF1 452 SBC #$20 453 CAPF1 LDX CAPMD 454 CPX #$40 455 BNE CAPF0 456 LDX #$00 457 STX CAPMD 458 CAPF0 RTS 459 INSERT PHA 460 LDX #$01 461 JSR SHIFT 462 LDY #$00 463 PLA 464 STA (Z1C),Y 465 LDA #$01 466 JSR INC 467 RTS 468 SHIFT CLC 469 LDA SIZE 470 ADC #BUF 471 STA Z1A 472 LDA SIZE+1 473 ADC /BUF 474 STA Z1B 475 TXA 476 STA MOVE 477 BMI SHIFTB 478 BNE SHIFTF 479 RTS 480 SHIFTF LDY #$00 481 LDA (Z1A),Y 482 LDY MOVE 483 STA (Z1A),Y 484 LDA Z1A 485 BNE SHF2 486 DEC Z1B 487 SHF2 DEC Z1A 488 LDA Z1A 489 CMP Z1C 490 BNE SHIFTF 491 LDA Z1B 492 CMP Z1D 493 BNE SHIFTF 494 LDY #$00 495 LDA (Z1C),Y 496 LDY MOVE 497 STA (Z1C),Y 498 CLC 499 LDA SIZE 500 ADC MOVE 501 STA SIZE 502 BCC SHF3 503 INC SIZE+1 504 SHF3 RTS 505 SHIFTB LDY NUM 506 LDA #$00 507 SHB1 STA (Z1C),Y 508 DEY 509 BPL SHB1 510 RTS 511 ABORT LDA $C000 512 BMI AB2 513 AB3 RTS 514 AB2 CMP #$9B 515 BNE AB3 516 ABC STA ABLOC 517 LDX $C010 518 PLA 519 PLA 520 RTS 521 ; 522 CKSIZE LDX SIZE+1 523 CPX #$12 524 BNE SIZEOK 525 LDX SIZE 526 CPX #$E0 527 BCC SIZEOK 528 PHA 529 LDA #$FE 530 STA (Z1C),Y 531 JSR FINCK 532 JSR SETUP 533 LDY #$00 534 CKLP LDA (Z1C),Y 535 CMP #$FE 536 BEQ CKOK 537 INC Z1C 538 BNE CKLP 539 INC Z1D 540 BNE CKLP 541 CKOK PLA 542 STA (Z1C),Y 543 SIZEOK RTS 544 FINCK JSR PACK 545 LDA SIZE+1 546 CMP #$10 547 BCC SIZEOK 548 ; 549 PLA 550 LDX $C010 551 SOUND TXA 552 LDY #$06 553 INNER ROL 554 PHA 555 BCC SKSH 556 TYA 557 JSR $FCA8 558 LDA $C030 559 SKSH PLA 560 INY 561 CPY #$0E 562 BNE INNER 563 INX 564 BNE SOUND 565 LDA $C000 566 BPL SOUND 567 PLA 568 PLA 569 JMP ABC 570 ; 571 PACK JSR SETUP 572 LDA #BUF 573 STA Z06 574 LDA /BUF 575 STA Z07 576 P1 LDY #$00 577 LDA (Z1C),Y 578 BEQ P2 579 STA (Z06),Y 580 CMP #$FF 581 BEQ P3 582 JSR INC06 583 P2 LDA #$01 584 JSR INC 585 JMP P1 586 P3 SEC 587 LDA Z06 588 SBC #BUF 589 STA SIZE 590 LDA Z07 591 SBC /BUF 592 STA SIZE+1 593 INC SIZE 594 BNE FINX 595 INC SIZE+1 596 FINX RTS 597 ATBIN LDX #$00 598 LDA #GRD2 599 STA Z06 600 STA ATBL,X 601 LDA /GRD2 602 STA Z07 603 STA ATBL+1,X 604 ATBLP LDY #$00 605 LDA (Z06),Y 606 CMP #$0D 607 BEQ AT1 608 AT2 JSR INC06 609 JMP ATBLP 610 AT1 INY 611 LDA (Z06),Y 612 CMP #$0D 613 BNE AT2 614 JSR INC06 615 JSR INC06 616 INX 617 INX 618 LDA Z06 619 STA ATBL,X 620 LDA Z07 621 STA ATBL+1,X 622 CPX #$96 623 BNE ATBLP 624 RTS 625 TYPE AND #$7F 626 STA SV/A 627 STY SV/Y 628 TAX 629 LDA TTYPE,X 630 BMI TYPEC 631 TAX 632 LDA SV/A 633 RTS 634 TYPEC CPX #$34 635 BEQ INITST 636 TYPEX INY 637 TYPEXX LDA (Z1C),Y 638 AND #$7F 639 TAX 640 LDA TTYPE,X 641 BMI TYPEX 642 BEQ TYPEY 643 CMP #$04 644 BEQ TYPEY 645 TYPELT LDX #$01 646 BNE TYPEZ 647 TYPEY LDX #$04 648 TYPEZ LDY SV/Y 649 LDA SV/A 650 RTS 651 INITST INY 652 LDA (Z1C),Y 653 CMP ', 654 BEQ INITST 655 AND #$7F 656 TAX 657 LDA TTYPE,X 658 CMP #$01 659 BNE TYPEXX 660 INY 661 LDA (Z1C),Y 662 CMP #$34 663 BNE TYPELT 664 LDX #$09 665 BNE TYPEZ 666 ; 667 TTYPE HEX 0000000000000000 668 HEX 0000000000000000 669 HEX 0000000000000000 670 HEX 0000000000000400 671 HEX 0001010301010104 672 HEX 0101010101010101 673 HEX 8080808080018080 674 HEX 8001010101010101 675 HEX 0102020202020202 676 HEX 0202020202020202 677 HEX 0202020202020202 678 HEX 0202020101010101 679 HEX 0101010101010101 680 HEX 0101010101010101 681 HEX 0101010101010101 682 HEX 0101010101010100 683 SPT HEX 2061412327 684 ; 685 DROPTB ADR Z/A-1 686 ADR Z/B-1 687 ADR Z/C-1 688 ADR Z/D-1 689 ADR Z/E-1 690 ADR Z/F-1 691 ADR Z/G-1 692 ADR Z/H-1 693 ADR Z/I-1 694 ADR Z/J-1 695 ADR Z/K-1 696 ADR Z/L-1 697 ADR Z/M-1 698 ADR Z/N-1 699 ADR Z/O-1 700 ADR Z/P-1 701 ADR Z/Q-1 702 ADR Z/R-1 703 ADR Z/S-1 704 ADR Z/T-1 705 ADR Z/U-1 706 ADR Z/V-1 707 ADR Z/W-1 708 ADR Z/X-1 709 ADR Z/Y-1 710 ADR Z/Z-1 711 ; 712 CODETB ADR AA-1 713 ADR BB-1 714 ADR CC-1 715 ADR DD-1 716 ADR EE-1 717 ADR FF-1 718 ADR GG-1 719 ADR HH-1 720 ADR II-1 721 ADR JJ-1 722 ADR KK-1 723 ADR LL-1 724 ADR MM-1 725 ADR NN-1 726 ADR OO-1 727 ADR PP-1 728 ADR QQ-1 729 ADR RR-1 730 ADR SS-1 731 ADR TT-1 732 ADR UU-1 733 ADR VV-1 734 ADR WW-1 735 ADR XX-1 736 ADR YY-1 737 ADR ZZ-1 738 ; 739 ; 740 XXX BRK 741 ATBL HEX 00 742 END !