L 1 ORG $E00 2 OBJ $800 3 NLS 4 ; 5 JMP SFINIT 6 JMP BTINIT 7 JMP SCINIT 8 JMP KYINIT 9 JMP PRINIT 10 JMP SCR/CD 11 JMP AUXDO 12 JMP DRIVE 13 ; 14 JMP MESS 15 JMP FREE?? 16 JMP KEYSET 17 JMP SCAN 18 JMP LIST 19 JMP CLEAR 20 JMP MEMOVE 21 JMP MESS 22 JMP FINREM 23 JMP AUTO 24 ; 25 HBASL EPZ $08 26 HBASH EPZ $09 27 CHTL EPZ $06 28 CHTH EPZ $07 29 Z0A EPZ $0A 30 Z0B EPZ $0B 31 BC1 EPZ $0C 32 BC2 EPZ $0D 33 BCB EPZ $0E 34 BC3 EPZ $0F 35 UCFL EPZ BC1 36 ; 37 ; 38 PRT/SP EQU $1B00 39 CONFIG EQU $1E00 40 KEYPAR EQU $1E40 41 COMPUT EQU $1E60 42 VECTOR EQU $1E80 43 PRT/1 EQU $1E90 44 ST EQU $8200 45 KEYBUF EQU $9600 46 MEMBUF EQU $9700 47 REPDOS EQU $A851 48 AUXMOV EQU $C311 49 BEEP EQU $FBDD 50 CON EQU $B7E8 51 ; 52 SCR/FG EQU CONFIG 53 SCR/SL EQU CONFIG+1 54 VOC/FG EQU CONFIG+2 55 VOC/SL EQU CONFIG+3 56 BRL/FG EQU CONFIG+4 57 BRL/SL EQU CONFIG+5 58 PRT/FG EQU CONFIG+6 59 PRT/SL EQU CONFIG+7 60 SCR/TY EQU CONFIG+8 61 VOC/TY EQU CONFIG+9 62 BRL/TY EQU CONFIG+10 63 PRT/TY EQU CONFIG+11 64 SCR/AX EQU CONFIG+12 65 VOC/AX EQU CONFIG+13 66 BRL/AX EQU CONFIG+14 67 PRT/AX EQU CONFIG+15 68 CENTER EQU CONFIG+16 69 MODE^ EQU CONFIG+17 70 SPECOM EQU CONFIG+18 71 ALLCON EQU CONFIG+$13 72 SCR/ED EQU CONFIG+$14 73 SCR/CZ EQU CONFIG+$15 74 ; 75 ; 76 KEY/SL EQU CONFIG+$18 77 KEY/TY EQU CONFIG+$19 78 KEY/AX EQU CONFIG+$1A 79 XBD00 EQU $1E1B 80 OUT/GB EQU CONFIG+$1F 81 ; 82 ; 83 DIRCOD EQU CONFIG+$4A 84 TYP/LD EQU CONFIG+$50 85 REM/FG EQU $1E51 86 REM/WC EQU CONFIG+$52 87 REM/WB EQU CONFIG+$53 88 CAT/TY EQU CONFIG+$54 89 CAT/RS EQU CONFIG+$55 90 DRV/LG EQU CONFIG+$56 91 SCR/FM EQU CONFIG+$57 92 REM/DL EQU CONFIG+$58 93 SCR/DL EQU CONFIG+$59 94 DNTJAM EQU CONFIG+$5A 95 LASTS EQU $1E5B 96 KEYPTR EQU $1E5C 97 KEYPTS EQU $1E5D 98 MEM/HM EQU $1E68 99 SLB/SL EQU $1E6B 100 COD/LT EQU CONFIG+$6D 101 ; 102 PRT/PA EQU CONFIG+$D0 103 AUTOLF EQU $1ED6 104 ; 105 MODULE EQU CONFIG+$EC 106 MEM/WH EQU CONFIG+$ED 107 MEM/NM EQU CONFIG+$EE 108 MEM/DR EQU CONFIG+$EF 109 ; 110 SCR/VT EQU VECTOR 111 VOC/VT EQU VECTOR+2 112 BRL/VT EQU VECTOR+4 113 PRT/VT EQU VECTOR+6 114 OUT/VT EQU VECTOR+8 115 IN/VT EQU VECTOR+10 116 KEY/VT EQU VECTOR+12 117 RSC/VT EQU VECTOR+14 118 ; 119 PLACE EQU $300 120 ; 121 PSX EQU $140 122 PSY EQU PSX+1 123 PSL EQU PSX+2 124 XLIM EQU PSX+3 125 LASTCH EQU PSX+4 126 S/WID EQU PSX+8 127 S/LEN EQU PSX+9 128 S/FORM EQU PSX+10 129 S/INC EQU PSX+11 130 S/SZL EQU PSX+12 131 S/BPSL EQU PSX+14 132 S/BPSY EQU PSX+15 133 ; 134 SEQ/PT EQU $1F70 135 SLDRTB EQU $1FD0 136 ; 137 ; 138 WCHAR HEX 8080A0A0808080 139 CHANEL EQU $380 140 STSHA EQU CHANEL+1 141 STSHX EQU CHANEL+2 142 STSHY EQU CHANEL+3 143 TSPC EQU CHANEL+4 144 TEMP EQU CHANEL+9 145 LPCH EQU CHANEL+10 146 TPSX EQU CHANEL+11 147 TLPCH EQU CHANEL+12 148 TLPLM EQU CHANEL+13 149 LEFT EQU CHANEL+14 150 RIGHT EQU CHANEL+15 151 CF EQU CHANEL+16 152 CURFLG HEX 00 153 ; 154 COMT ASC 'SVBP' 155 COMT2 ASC 'DA' 156 COMT4 ASC 'NNZZWWHBLJXYFG' 157 ; 158 ; 159 SFINIT LDY #$1F 160 SFLP LDA CONFIG+32,Y 161 STA CONFIG,Y 162 DEY 163 BPL SFLP 164 LDA $AA54 165 CMP #$96 166 BCC BTINIT 167 LDA #$00 168 STA REM/FG 169 ; 170 BTINIT LDA OUT/VT 171 STA VOC/VT 172 LDA OUT/VT+1 173 STA VOC/VT+1 174 STA $C00A 175 JSR PORTS 176 JSR EC/SET 177 JSR SCINIT 178 JSR KYINIT 179 LDX #$00 180 BTLP STX CHANEL 181 LDA SCR/FG,X 182 BEQ SFON 183 LDA SCR/SL,X 184 BEQ SFON 185 ; 186 CLC 187 ADC #$C0 188 STA $37 189 LDA #$00 190 STA $36 191 LDA WCHAR,X 192 JSR $FDED 193 LDA $36 194 STA SCR/VT,X 195 LDA $37 196 STA SCR/VT+1,X 197 SFON INX 198 INX 199 CPX #$08 200 BNE BTLP 201 ; 202 LDA #OUT 203 STA $36 204 LDA /OUT 205 STA $37 206 LDA #IN 207 STA $38 208 LDA /IN 209 STA $39 210 JSR REPDOS 211 JSR PORTS 212 JMP SEQ/DO 213 ; 214 SCINIT LDX DIRCOD 215 STX DIRTY 216 STX $10F 217 LDA $1E37 218 STA $B8E7 219 LDA #$F0 220 STA SCR/VT 221 LDA #$FD 222 STA SCR/VT+1 223 STA $67B 224 LDX SCR/FG 225 BEQ SX5 226 LDX #$00 227 STX SCR/SL 228 LDA SCR/TY 229 STA $10D 230 AND #$7E 231 PHA 232 CMP #$04 233 BNE SX1 234 LDX #$03 235 STX SCR/SL 236 SX1 ASL 237 ASL 238 TAX 239 LDY #$00 240 SX2 LDA SCR/TB,X 241 STA S/WID,Y 242 INX 243 INY 244 CPY #$08 245 BNE SX2 246 LDA S/WID 247 STA $21 248 PLA 249 TAX 250 LDA SCR/T2,X 251 STA RSC/VT 252 LDA SCR/T2+1,X 253 STA RSC/VT+1 254 CPX #$06 255 BCC SX3 256 TXA 257 LSR 258 TAX 259 LDA INCTAB,X 260 STA XLIM 261 JMP CLEAR& 262 SX3 STA $C051 263 STA $C00C 264 SX5 RTS 265 ; 266 SCR/CD LDA COD/LT 267 SCR/CX LDY #$00 268 STY PRT/PA 269 WQ1 CMP COMT4,Y 270 BEQ WQ2 271 INY 272 CPY #$0E 273 BNE WQ1 274 LDY SCR/TY+$20 275 BNE WQ2 276 LDY #$06 277 WQ2 STY SCR/TY 278 JSR BTINIT 279 LDA #$00 280 STA PRT/PA+$07 281 LDA S/WID 282 STA PRT/PA+$04 283 LDA S/LEN 284 STA PRT/PA+$05 285 LDA SCR/TY 286 LSR 287 LDA #$00 288 ROR 289 STA PRT/PA+1 290 RTS01 RTS 291 ; 292 VOCBRL STA PRT/PA+4 293 LDA #$00 294 STA PRT/PA+3 295 STA PRT/PA+5 296 STA PRT/FG 297 JMP BTINIT 298 ; 299 PRINIT LDA #$01 300 STA PRT/FG 301 LDA COD/LT 302 BMI VOCBRL 303 BEQ PR\NM 304 ASL 305 ASL 306 ASL 307 ASL 308 TAY 309 LDX #$00 310 PR\MV LDA PRT/1-$10,Y 311 STA PRT/PA,X 312 INY 313 INX 314 CPX #$10 315 BNE PR\MV 316 PR\NM LDA PRT/PA+$00 317 STA PRT/SL 318 LDA #$00 319 STA PRT/TY 320 JSR BTINIT 321 JSR SEQ/PR 322 LDA PRT/PA+$03 323 STA PRT/TY 324 BEQ RTS01 325 CMP TYP/LD 326 BEQ PROKQ 327 PHA 328 PHA 329 LDY #$01 330 STY DRV/LG 331 JSR DRIVE 332 LDY #$00 333 STY $AA52 334 DOSLP LDA DOSTR,Y 335 BEQ PROK2 336 JSR PRMON 337 INY 338 BNE DOSLP 339 PROK2 CLC 340 PLA 341 ADC #$30 342 JSR PRMON 343 LDY #$00 344 DOSLP2 LDA DOSTR2,Y 345 BEQ PROKST 346 JSR PRMON 347 INY 348 BNE DOSLP2 349 ; 350 PROKST PLA 351 STA TYP/LD 352 PROKQ JMP $1B03 353 ; 354 SCR/TB HEX 2817140120031717 355 HEX 2817140120031717 356 HEX 5017140140061717 357 HEX 2813100A800213B8 358 HEX 140A0813A00009B0 359 HEX 0A050425280005A0 360 HEX 050302400A000380 361 SCR/T3 HEX 08090A0B080C0D0D 362 INCTAB HEX 01010101020408 363 TERMCH HEX 8D8D8B8D 364 ; 365 DOSTR HEX 84 366 ASC 'BLOADOUT-0' 367 HEX 00 368 DOSTR2 ASC ',A$1B00' 369 HEX 8D00 370 ; 371 EC/SET LDX VOC/FG 372 BEQ SEQ/FN 373 LDX VOC/TY 374 CPX #$03 375 BNE SLB0 376 LDA SLB/SL 377 ASL 378 ASL 379 ASL 380 ASL 381 TAY 382 SLB/V LDA $C080,Y 383 ASL 384 NOP 385 NOP 386 ; BMI SLB/V !!!!!!!!!!!!!!!!!! 387 SLB0 TXA 388 LSR 389 LDA #$00 390 STA $44 391 JMP $A229 392 BCC SEQ/FN 393 ; 394 ; 395 SEQ/DO LDX VOC/FG 396 BEQ SEQ/BRL 397 LDX SEQ/PT+1 398 SEQ\1 LDA $1F00,X 399 CMP #$7F 400 BEQ SEQ/BR 401 JSR VOC/DO 402 INX 403 BNE SEQ\1 404 SEQ/BR LDX BRL/FG 405 BEQ SEQ/FN 406 LDX SEQ/PT+2 407 SEQ\2 LDA $1F00,X 408 CMP #$7F 409 BEQ SEQ/FN 410 JSR BRL/DO 411 INX 412 BNE SEQ\2 413 SEQ/FN RTS 414 ; 415 SEQ/PR LDX COD/LT 416 BEQ SEQ/FN 417 LDA SEQ/PT+3,X 418 TAY 419 SEQ\3 LDA $1F00,Y 420 CMP #$7F 421 BEQ SEQ/FN 422 JSR PRT/CK 423 INY 424 BNE SEQ\3 425 ; 426 ; 427 KYINIT JSR KEY\SE 428 LDA KEY/TB,X 429 STA KEY/VT 430 LDA KEY/TB+1,X 431 STA KEY/VT+1 432 RTS 433 ; 434 KEY\SE LDX #$0C 435 LDA $1E0F,X 436 STA $AAFA,X 437 LDA KEY/SL 438 BEQ KEYQ1 439 RTS 440 KEYQ1 JSR KEYQ4 441 LDA KEY/AX 442 BNE KEYQ2 443 CPX #$04 444 BCC KEYQ2 445 RTS 446 KEYQ2 LDX #$0C 447 LDA VOC/FG 448 BEQ KEYQ3 449 LDA VOC/TY 450 LSR 451 BCC KEYQ3 452 RTS 453 KEYQ3 LDX #$0A 454 LDA SCR/TY 455 CMP #$04 456 BNE KEYQ4 457 RTS 458 KEYQ4 LDA KEY/TY 459 ASL 460 TAX 461 RTS 462 ; 463 ; 464 KEY/TB ADR KEY/2E 465 ADR KEY/2C 466 ADR KEY/PL 467 ADR KEY/SK 468 ADR KEY/BR 469 ADR $C305 470 ADR IN/SL 471 ; 472 SCR/T2 ADR SC\REG 473 ADR SC\NON 474 ADR SC\WID 475 ADR SC\HIR 476 ADR SC\LAR 477 ADR SC\SUP 478 ADR SC\MON 479 ; 480 ; 481 ; 482 ; 483 OUT PHA 484 STX STSHX 485 STY STSHY 486 AND #$7F 487 STA STSHA 488 JSR COM/CK 489 BMI SKPOUT 490 ; 491 LDX OUT/GB 492 BEQ OUT/NG 493 JSR REM\SV 494 OUT/NG JSR SCR/CK 495 LDA $57B 496 PHA 497 LDA $24 498 PHA 499 LDA #$00 500 STA $24 501 LDA STSHA 502 JSR VOC/CK 503 LDA #$00 504 STA $24 505 LDA STSHA 506 JSR BRL/CK 507 LDA #$00 508 STA $24 509 LDA STSHA 510 JSR PRT/CK 511 PLA 512 STA $24 513 PLA 514 STA $57B 515 SKPOUT LDY STSHY 516 LDX STSHX 517 PLA 518 RTS 519 ; 520 COM/CK AND #$7F 521 LDX SPECOM 522 BMI COM\FZ 523 BNE COMLK 524 CMP #$02 525 BNE NO\B 526 LDX #$01 527 FLUSH STX SPECOM 528 LDA #$FF 529 COM\FZ TAY 530 RTS 531 ; 532 COMLK CPX #$01 533 BNE COM2 534 COM1 AND #$5F 535 LDX #$03 536 COML CMP COMT,X 537 BEQ COM1F 538 DEX 539 BPL COML 540 COMXX JSR BEEP 541 COMEND LDX #$00 542 BEQ FLUSH 543 COM1F TXA 544 ASL 545 STA TSPC 546 LDX #$02 547 BNE FLUSH 548 ; 549 COM2 LDX #$01 550 AND #$5F 551 COML2 CMP COMT2,X 552 BEQ COM2F 553 DEX 554 BPL COML2 555 ; 556 LDX TSPC 557 BNE COM\NW 558 JSR SCR/CX 559 LDA SCR/TY 560 STA SCR/TY+$20 561 JMP COMEND 562 COM\NW CPX #$06 563 BNE COMXX 564 AND #$07 565 STA COD/LT 566 JSR PRINIT 567 JSR COM\BK 568 JMP COMEND 569 ; 570 COM2F TXA 571 LDX TSPC 572 STA $1E00,X 573 JSR COM\BK 574 COM2FF JSR BTINIT 575 JMP COMEND 576 ; 577 NO\B LDX #$00 578 STX SPECOM 579 COMFIN TAY 580 RTS 581 ; 582 COM\BK LDX #$07 583 COM\BQ LDA $1E00,X 584 STA $1E20,X 585 DEX 586 BPL COM\BQ 587 RTS 588 ; 589 SCR/CK LDX SCR/FG 590 BEQ NOSCR 591 LDX CENTER 592 CPX #$40 593 BEQ NOSCR 594 ; 595 LDX SCR/CZ 596 BMI NOT\CZ 597 BNE NOSCR 598 LDX $C000 599 CPX #$9A 600 BNE NOT\CZ 601 LDX #$40 602 STX SCR/CZ 603 LDX $C010 604 BNE NOSCR 605 ; 606 NOT\CZ LDX MODE^ 607 BEQ SCR2 608 CMP '^ 609 BEQ NOSCR 610 SCR2 LDX PSX 611 BNE SCR9 612 CMP #$0D 613 BNE SCR9 614 LDX LASTS 615 CPX #$8D 616 BNE NOSCR2 617 SCR9 JSR SCRX 618 LDX SCR/TY 619 CPX #$06 620 BCS NOSCR 621 LDY $25 622 STY PSY 623 STY PSL 624 LDY $24 625 CPX #$04 626 BNE SCR3 627 LDY $57B 628 SCR3 STY PSX 629 NOSCR RTS 630 NOSCR2 LDA #$8D 631 STA LASTS 632 RTS 633 ; 634 SCRX ORA #$80 635 STA LASTS 636 JMP (RSC/VT) 637 ; 638 VOC/CK LDX VOC/FG 639 BEQ NOBRL 640 LDX CENTER 641 BMI NOBRL 642 LDX MODE^ 643 BEQ VOC2 644 CMP '^ 645 BNE VOC2 646 LDX VOC/TY 647 LDA TERMCH,X 648 VOC2 LDX VOC/AX 649 BNE LET/JP 650 CMP #$08 651 BEQ NOBRL 652 CMP #$00 653 BEQ NOBRL 654 VOC/DO ORA #$80 655 JMP (VOC/VT) 656 LET/JP JMP LETMOD 657 ; 658 BRL/CK LDX BRL/FG 659 BEQ NOBRL 660 LDX CENTER 661 BMI NOBRL 662 LDX MODE^ 663 BEQ BRL/DO 664 CMP '^ 665 BEQ NOBRL 666 BRL/DO ORA #$80 667 JMP (BRL/VT) 668 NOBRL RTS 669 NOPRT EQU NOBRL 670 ; 671 PRT/CK LDX PRT/FG 672 BEQ NOPRT 673 ORA #$80 674 PHA 675 JSR PRT/DO 676 PLA 677 LDX AUTOLF 678 BEQ NOPRT 679 CMP #$8D 680 BNE NOPRT 681 LDA #$8A 682 PRT/DO LDX PRT/TY 683 BNE SP\PRT 684 JMP (PRT/VT) 685 SP\PRT JMP PRT/SP 686 ; 687 ; 688 ; 689 KEYSET LDA $C000 690 BPL KEYQQ 691 LDX MODULE 692 CPX #$01 693 BNE KEYQQ 694 LDX $1E8D 695 CPX #$C3 696 BEQ KEY80 697 JSR IN/DO 698 KEY80 ORA #$80 699 LDX $C010 700 LDX KEYPTS 701 STA KEYBUF,X 702 INC KEYPTS 703 KEYQQ RTS 704 ; 705 IN STX STSHX 706 STY STSHY 707 STA STSHA 708 LDA #$00 709 STA SCR/CZ 710 JSR CURSOR 711 ; 712 IN/CAN JSR REM\LD 713 BMI INQ 714 LDX KEYPTR 715 CPX KEYPTS 716 BEQ IN/OK 717 INC KEYPTR 718 LDA $C030 719 LDA KEYBUF,X 720 BMI INQ 721 IN/OK JSR IN/DO 722 INQ AND #$7F 723 JSR IN/FIX 724 JSR REM\SV 725 JSR COM/CK 726 BMI IN/CAN 727 STA LASTCH 728 ORA #$80 729 JSR CURSOR 730 LDX STSHX 731 LDY STSHY 732 RTS 733 ; 734 ; 735 IN/DO LDA STSHA 736 JMP (KEY/VT) 737 ; 738 ; 739 REM\LD LDX REM/FG 740 BPL REM\RS 741 LDY #$00 742 JSR REM\CM 743 LDY REM/WC 744 LDA MEMBUF,Y 745 CMP #$FF 746 BEQ REM\D2 747 INC REM/WC 748 LDX #$80 749 RTS 750 ; 751 REM\SV LDX REM/FG 752 BEQ REM\RS 753 BMI REM\RS 754 LDY REM/WC 755 STA MEMBUF,Y 756 INC REM/WC 757 LDY #$01 758 JSR REM\CM 759 REM\RS LDX #$00 760 RTS 761 ; 762 REM\CM PHA 763 LDA $B5C5 764 BNE REM\DK 765 LDX $C030 766 LDX REM/WC 767 BNE REM\NL 768 INC REM/WB 769 LDX REM/WB 770 CPX #$08 771 BEQ REM\DN 772 STX MEM/NM 773 LDX #$01 774 STX MEM/WH 775 STY MEM/DR 776 JSR MEMOVE 777 REM\NL PLA 778 RTS 779 ; 780 REM\DK LDA #$1D 781 STA ERROR 782 JSR MESS 783 REM\DN PLA 784 PLA 785 PLA 786 REM\D2 LDX #$00 787 STX REM/FG 788 RTS 789 ; 790 IN/SL JMP (IN/VT) 791 ; 792 KEY/2E JMP $FD1B 793 KEY/2C EQU KEY/2E 794 ; 795 IN/FIX LDX KEY/AX 796 BEQ FIX80 797 CMP #$61 798 BCC IFX 799 CMP #$7B 800 BCS IFX 801 SEC 802 SBC #$20 803 IFX RTS 804 FIX80 LDX $C000 805 CPX #$15 806 BNE IFX 807 TXA 808 RTS 809 ; 810 KEY/BR LDX $1EF0 811 BEQ KEY/B0 812 LDX #$06 813 JMP AUXDO 814 KEY/B0 LDY #$00 815 STY BCB 816 STY BC3 817 DEY 818 BRL/KL STY CF 819 BRL/CL LDY #$F7 820 STY BC1 821 STY BC2 822 BRL/IL LDA $C000 823 BMI BRL/CF 824 INC BC1 825 BNE BRL/IL 826 INC BC2 827 BNE BRL/IL 828 LDY BC3 829 BEQ KEY/B0 830 LDX $C083 831 LDY BCB 832 BEQ REAL/S 833 LDA $DF40,Y 834 AND CF 835 FLICK LDX $C082 836 BRL/FN RTS 837 REAL/S LDA #$20 838 BNE FLICK 839 BRL/CF INC BC3 840 LDX $C010 841 AND #$7F 842 CMP #$20 843 BEQ BRL/SP 844 BCC BRL/FN 845 LDY #$06 846 CZ4 CMP BRTB2,Y 847 BEQ CZ3 848 DEY 849 BPL CZ4 850 JSR BEEP 851 JMP KEY/B0 852 CZ3 LDA BRTB3,Y 853 ORA BCB 854 STA BCB 855 JMP BRL/CL 856 BRL/SP LDY #$1F 857 BNE BRL/KL 858 ; 859 BRTB3 HEX 00 860 HEX 010204081020 861 BRTB2 ASC ' ' 862 ASC 'FDSJKL' 863 ; 864 SPCTB HEX 605B5C7F5E5F7B7C7D7E 865 ; 866 CURSOR PHA 867 LDA SCR/TY 868 CMP #$06 869 BCC CURS0 870 LDA #$80 871 STA CURFLG 872 JSR CHPLOT 873 LDA #$00 874 STA CURFLG 875 CURS0 PLA 876 RTS 877 ; 878 CLEAR& LDA COMPUT 879 CMP #$04 880 BNE CL/NGS 881 STA $C00C 882 LDA $C029 883 ORA #$20 884 STA $C029 885 LDA $C05E 886 CL/NGS STA $C054 887 STA $C057 888 STA $C050 889 STA $C052 890 CLEAR LDY #$00 891 STY PSX 892 STY PSY 893 STY PSL 894 STY HBASL 895 LDA #$20 896 STA HBASH 897 P11 LDA #$00 898 P1 STA (HBASL),Y 899 INY 900 BNE P1 901 INC HBASH 902 LDA HBASH 903 AND #$1F 904 BNE P11 905 RTS 906 ; 907 ; 908 YADD PHA 909 AND #$C0 910 STA HBASL 911 LSR 912 LSR 913 ORA HBASL 914 STA HBASL 915 PLA 916 STA HBASH 917 ASL 918 ASL 919 ASL 920 ROL HBASH 921 ASL 922 ROL HBASH 923 ASL 924 ROR HBASL 925 LDA HBASH 926 AND #$1F 927 ORA #$20 ;HR PAGE 1 928 STA HBASH 929 RTS 930 ; 931 ; 932 FDCHAR ASL 933 STA CHTL 934 LDA SCR/TY 935 AND #$01 936 ASL CHTL 937 ROL 938 ASL CHTL 939 ROL 940 TAX 941 LDA SCR/T3,X 942 STA CHTH 943 RTS 944 ; 945 ; 946 ; 947 ; 948 SC\REG AND #$7F 949 JSR PLUS 950 SC\WID AND #$7F 951 STA $C001 952 LDX ALLCON 953 BEQ WID/RG 954 CPX #$02 955 BNE WD1 956 CMP #$0D 957 BEQ WID/RG 958 WD1 CMP #$20 959 BCS WID/RG 960 LDA $1EE8 961 WID/RG ORA #$80 962 JMP (SCR/VT) 963 SC\NON EQU SC\REG 964 ; 965 SC\HIR LDX MEM/HM 966 BPL SCMON0 967 LDX DNTJAM 968 BNE SCMON0 969 LDX SCR/AX 970 STX $10E 971 LDX ALLCON 972 STX $10C 973 LDX #$09 974 JMP AUXDO 975 SCMON0 AND #$7F 976 SC\LAR EQU SC\HIR 977 SC\SUP EQU SC\HIR 978 SC\MON EQU SC\HIR 979 LDX ALLCON 980 BNE VISCON 981 CMP #$0C 982 BEQ CONL 983 CMP #$0D 984 BEQ CONM 985 CMP #$08 986 BEQ CONH 987 CMP #$07 988 BEQ DOBEEP 989 CMP #$15 990 BEQ CONU 991 CMP #$20 992 BCC ZILCH 993 VISCON JSR FDCHAR 994 JSR CHPLOT 995 INC PSX 996 LDA PSX 997 CMP S/WID 998 BEQ CONM 999 ZILCH RTS 1000 DOBEEP JMP BEEP 1001 CONL JMP CLEAR 1002 CONU LDX PSX 1003 INX 1004 CPX S/WID 1005 BEQ CONM 1006 STX PSX 1007 RTS 1008 ; 1009 CONH LDA PSX 1010 BEQ CONH0 1011 DEC PSX 1012 RTS 1013 ; 1014 CONM LDA #$00 1015 STA PSX 1016 INC PSL 1017 CLC 1018 LDA PSY 1019 ADC S/INC 1020 STA PSY 1021 LDA PSL 1022 CMP S/LEN 1023 BCC CONM0 1024 LDA DNTJAM 1025 BNE CONM0 1026 JSR SOUND 1027 LDX $C062 1028 BPL MNEXT 1029 LDA SCR/FM 1030 XOR #$80 1031 STA SCR/FM 1032 MNEXT LDA SCR/FM 1033 BEQ MLOOP 1034 LDX #$06 1035 MSS LDA #$FF 1036 JSR $FCA8 1037 DEX 1038 BPL MSS 1039 MREV LDA $C061 1040 BMI MREV 1041 BPL MGO 1042 MLOOP LDA $C061 1043 BPL MLOOP 1044 MGO JSR CLEAR 1045 LDA #$00 1046 STA PSY 1047 STA PSL 1048 CONM0 RTS 1049 CONH0 LDA PSY 1050 BEQ CONM0 1051 LDX S/WID 1052 DEX 1053 STX PSX 1054 SEC 1055 SBC S/INC 1056 STA PSY 1057 DEC PSL 1058 RTS 1059 SOUND LDY #$0C 1060 SLP LDA #$30 1061 JSR $FCA8 1062 LDA $C030 1063 DEY 1064 BPL SLP 1065 RTS 1066 ; 1067 ; 1068 ; 1069 CHPLOT LDY #$00 1070 ; 1071 LEVEL1 STY LPCH 1072 STY TLPCH 1073 STY TLPLM 1074 INC TLPLM 1075 LDX PSX 1076 STX TPSX 1077 LDA (CHTL),Y 1078 JSR SPLIT 1079 ; 1080 LEVEL2 LDA TLPCH 1081 CMP TLPLM 1082 BEQ CHLEV1 1083 CLC 1084 ADC PSY 1085 JSR YADD 1086 LDY TPSX 1087 LDX CURFLG 1088 BNE CURD 1089 ; 1090 LEVEL3 LDA PLACE,X 1091 DIRTY ORA (HBASL),Y 1092 XOR SCR/AX 1093 STA (HBASL),Y 1094 INY 1095 INX 1096 CPX XLIM 1097 BNE LEVEL3 1098 ; 1099 RLLP INC TLPCH 1100 JMP LEVEL2 1101 ; 1102 CURD LDX #$00 1103 LV3 LDA (HBASL),Y 1104 XOR #$7F 1105 STA (HBASL),Y 1106 INY 1107 INX 1108 CPX XLIM 1109 BNE LV3 1110 BEQ RLLP 1111 ; 1112 CHLEV1 INC LPCH 1113 LDY LPCH 1114 CPY #$08 1115 BNE LEVEL1 1116 RTS 1117 ; 1118 SPLIT STA PLACE 1119 LDX XLIM 1120 DEX 1121 BNE SPLIT2 1122 RTS 1123 SPLIT2 LDY #$00 1124 JSR SPLITX 1125 DEX 1126 DEX 1127 BNE SPLIT3 1128 RTS 1129 SPLIT3 LDY #$01 1130 JSR SPLITX 1131 CPX #$04 1132 BNE SPLIT4 1133 RTS 1134 SPLIT4 LDY #$03 1135 JSR SPLITX 1136 RTS 1137 ; 1138 ; 1139 SPLITX LDA PLACE,Y 1140 JSR SHDO 1141 TYA 1142 ASL 1143 TAX 1144 LDA RIGHT 1145 STA PLACE+1,X 1146 LDA LEFT 1147 STA PLACE,X 1148 DEY 1149 BPL SPLITX 1150 ASL TPSX 1151 ASL TLPCH 1152 ASL TLPLM 1153 JSR KEYSET 1154 LDX XLIM 1155 RTS 1156 ; 1157 SHDO STA TEMP 1158 LDX #$00 1159 STX LEFT 1160 STX RIGHT 1161 AND #$7F 1162 SH0 ASL 1163 BCS SH2 1164 JSR NBIT 1165 JSR NBIT 1166 JMP SH3 1167 SH2 JSR PBIT 1168 JSR PBIT 1169 SH3 INX 1170 CPX #$08 1171 BNE SH0 1172 LDA TEMP 1173 BPL SH4 1174 JSR NBIT 1175 SH4 JSR NBIT 1176 LSR LEFT 1177 RTS 1178 PBIT SEC 1179 BCS NB1 1180 NBIT CLC 1181 NB1 ROL LEFT 1182 ROL RIGHT 1183 RTS 1184 ; 1185 PORTS LDA COMPUT 1186 CMP #$02 1187 BNE NOT2C 1188 LDX #$03 1189 JMP AUXDO 1190 ; 1191 NOT2C CMP #$04 1192 BNE NOT2GS 1193 LDA #$1C 1194 STA $C035 1195 NOT2GS LDX #$07 1196 N2CL LDA COMPUT,X 1197 CMP #$01 1198 BNE N2CZ 1199 LDA $7F8,X 1200 AND #$7F 1201 STA $7F8,X 1202 N2CZ DEX 1203 BNE N2CL 1204 RTS 1205 ; 1206 ; 1207 LETMOD AND #$7F 1208 PHA 1209 TAX 1210 LDA $C083 1211 LDA $DF80,X 1212 LDX $C082 1213 TAX 1214 BEQ LET2 1215 PHA 1216 CLC 1217 ADC #$38 1218 STA ERROR 1219 JSR MESS1 1220 MESSL2 LDA (Z0A),Y 1221 CMP #$7F 1222 BEQ MSL4 1223 LDX $C082 1224 JSR VOC/DO 1225 LDX $C083 1226 INY 1227 BNE MESSL2 1228 INC Z0B 1229 BNE MESSL2 1230 MSL4 LDA $C082 1231 LET4 PLA 1232 CMP #$03 1233 PLA 1234 BCS LET6 1235 ORA #$40 1236 PHA 1237 LET2 PLA 1238 JSR VOC/DO 1239 LET6 LDX VOC/TY 1240 LDA TERMCH,X 1241 JMP VOC/DO 1242 ; 1243 ; 1244 ERROR EQU COMPUT+$0D 1245 NUMBER EQU COMPUT+$0E 1246 ; 1247 NAMEST HEX 00 1248 NAMEND HEX 00 1249 SYV HEX 00 1250 NBUF EQU $8200 1251 ZSC EPZ $0A 1252 RWTS EQU $03D9 1253 BUF EQU $9000 1254 BUF2 EQU $9100 1255 ; 1256 POINT HEX 00 1257 HEX 00 1258 C/TY HEX 00 1259 C/SZ HEX 0000 1260 C/LA HEX 0000 1261 SCAN JSR DRIVE 1262 LDA #$01 1263 STA CON+12 1264 LDA #BUF 1265 STA CON+8 1266 LDA /BUF 1267 STA CON+9 1268 LDA #NBUF 1269 STA ZSC 1270 LDA /NBUF 1271 STA ZSC+1 1272 LDA #$FF 1273 STA NBUF 1274 LDA #$00 1275 STA ERROR 1276 STA NUMBER 1277 STA CON+5 1278 LDA #$11 1279 STA CON+4 1280 JSR RWTSQ 1281 JSR FREE?? 1282 SEC LDA BUF+1 1283 STA CON+4 1284 BEQ SCOUT 1285 LDA BUF+2 1286 STA CON+5 1287 JSR RWTSQ 1288 LDY #$0B 1289 STY POINT 1290 ENT LDY POINT 1291 LDA BUF,Y 1292 BEQ SCOUT 1293 CMP #$FF 1294 BEQ NEXT 1295 JSR CKCAT 1296 BCC NEXT 1297 ; 1298 JSR SAVE 1299 ; 1300 NEXT CLC 1301 LDA POINT 1302 ADC #$23 1303 STA POINT 1304 BEQ SEC 1305 BNE ENT 1306 ; 1307 CKCAT JSR BTCAT 1308 LDA CAT/RS 1309 BEQ CK2 1310 ORA #$80 1311 CMP C/LA 1312 BNE CLCRTS 1313 CK2 LDA C/TY 1314 LDX CAT/TY 1315 BPL CK3 1316 AND #$7F 1317 BEQ SECRTS 1318 BNE CLCRTS 1319 CK3 CMP #$04 1320 BNE CLCRTS 1321 LDA C/SZ+1 1322 BNE CLCRTS 1323 LDA C/LA+1 1324 CMP #$AE 1325 BEQ CLCRTS 1326 CLC 1327 LDA CAT/TY 1328 ADC #$03 1329 CMP C/SZ 1330 BNE CLCRTS 1331 SECRTS SEC 1332 SCOUT RTS 1333 CLCRTS CLC 1334 RTS 1335 ; 1336 BTCAT INY 1337 INY 1338 LDA BUF,Y 1339 STA C/TY 1340 INY 1341 STY NAMEST 1342 TYA 1343 CLC 1344 ADC #$1F 1345 TAX 1346 LDA BUF,X 1347 STA C/SZ+1 1348 DEX 1349 LDA BUF,X 1350 STA C/SZ 1351 AZ DEX 1352 LDA BUF,X 1353 CMP #$A0 1354 STA C/LA 1355 BEQ AZ 1356 STX NAMEND 1357 DEX 1358 LDA BUF,X 1359 STA C/LA+1 1360 RTS 1361 ; 1362 JSR SAVE 1363 JMP NEXT 1364 SAVE LDX NAMEST 1365 DEX 1366 LDY #$FF 1367 AQ INX 1368 INY 1369 LDA BUF,X 1370 AND #$7F 1371 STA (ZSC),Y 1372 CPX NAMEND 1373 BNE AQ 1374 INY 1375 LDA #$FF 1376 STA (ZSC),Y 1377 INY 1378 STA (ZSC),Y 1379 TYA 1380 CLC 1381 ADC ZSC 1382 STA ZSC 1383 BCC AQ1 1384 INC ZSC+1 1385 AQ1 INC NUMBER 1386 RTS 1387 RWTSQ LDY #CON 1388 LDA /CON 1389 JSR RWTS 1390 LDA CON+13 1391 BEQ OK 1392 LDA #$1F 1393 STA ERROR 1394 JSR MESS 1395 LDA REM/FG 1396 BEQ RWOUT 1397 LDA #$1D 1398 STA ERROR 1399 JSR MESS 1400 LDA #$00 1401 STA REM/FG 1402 RWOUT PLA 1403 PLA 1404 LDA #$80 1405 STA ERROR 1406 OK RTS 1407 ; 1408 ; 1409 LIST LDA #$00 1410 STA CAT/RS 1411 JSR SCAN 1412 LDA ERROR 1413 BNE OK 1414 LDY #$21 1415 LDX NUMBER 1416 BEQ LST1 1417 DEY 1418 LST1 LDA CAT/TY 1419 BPL LST3 1420 INY 1421 INY 1422 LST3 STY ERROR 1423 JSR MESS 1424 LST2 LDX NUMBER 1425 BEQ OK 1426 ; 1427 LDA #NBUF 1428 STA ZSC 1429 LDA /NBUF 1430 STA ZSC+1 1431 MLP LDY #$00 1432 LDA (ZSC),Y 1433 CMP #$FF 1434 BEQ OK 1435 LDY #$00 1436 ZD1 LDA (ZSC),Y 1437 CMP #$FF 1438 BEQ FT 1439 JSR PRMON 1440 INY 1441 BNE ZD1 1442 FT LDA #$8D 1443 JSR PRMON 1444 TYA 1445 SEC 1446 ADC ZSC 1447 STA ZSC 1448 BCC MLP 1449 INC ZSC+1 1450 JMP MLP 1451 PRMON ORA #$80 1452 JMP $FDED 1453 ; 1454 ; 1455 MEMOVE LDX MEM/HM 1456 BPL ABORT 1457 LDA MEM/WH 1458 STA $0A 1459 LDA MEM/NM 1460 STA $0B 1461 LDA MEM/DR 1462 STA $0C 1463 LDX #$00 1464 AUXDO STX $3ED 1465 LDX #$B0 1466 STX $3EE 1467 SEC 1468 CLV 1469 JMP $C314 1470 ABORT RTS 1471 ; 1472 FINREM LDX REM/WB 1473 INX 1474 STX MEM/NM 1475 LDX #$01 1476 STX MEM/WH 1477 STX MEM/DR 1478 JSR MEMOVE 1479 LDX #$07 1480 STX MEM/WH 1481 LDX #$01 1482 STX MEM/NM 1483 DEX 1484 STX MEM/DR 1485 JSR MEMOVE 1486 CLC 1487 LDA REM/WC 1488 STA $9504 1489 ADC #$FF 1490 STA Z0A 1491 LDA REM/WB 1492 STA $9505 1493 ADC #$81 1494 STA Z0B 1495 LDY #$00 1496 STY REM/FG 1497 LDA #$FF 1498 STA (Z0A),Y 1499 LDA #$01 1500 STA $9500 1501 STA $9503 1502 RTS 1503 AUTO LDY #$00 1504 AUTO1 LDA ST,Y 1505 STA MEMBUF,Y 1506 DEY 1507 BNE AUTO1 1508 LDX #$07 1509 STX MEM/WH 1510 LDX #$01 1511 STA MEM/NM 1512 STX MEM/NM 1513 STX MEM/DR 1514 JSR MEMOVE 1515 LDA #$00 1516 STA REM/WC 1517 STA REM/WB 1518 LDA #$80 1519 STA REM/FG 1520 RTS 1521 DRIVE LDX #$00 1522 STX CON+3 1523 STX CON+13 1524 LDA DRV/LG 1525 CMP #$01 1526 BNE NT/DR1 1527 LDX SLDRTB+$15 1528 LDA SLDRTB+$16,X 1529 NT/DR1 LDY SLDRTB+1 1530 BNE SIDER 1531 ODRIVE ASL 1532 TAX 1533 LDA SLDRTB,X 1534 STA $AA6A 1535 LDA SLDRTB+1,X 1536 ODRZ STA $AA68 1537 STA CON+2 1538 STA $B5F8 1539 LDA $AA6A 1540 ASL 1541 ASL 1542 ASL 1543 ASL 1544 STA CON+1 1545 STA $B5F7 1546 RTS 1547 SIDER CMP SLDRTB 1548 BCC VSIDER 1549 SBC SLDRTB+$14 1550 BNE ODRIVE 1551 VSIDER STA $4F8,Y 1552 STA CON+3 1553 STY $AA6A 1554 LDA #$01 1555 BNE ODRZ 1556 MESS JSR MESS1 1557 JMP MESS2 1558 ; 1559 MESS1 LDA $C083 1560 LDA #$00 1561 STA Z0A 1562 LDA #$D0 1563 STA Z0B 1564 LDY #$00 1565 MS1 LDA (Z0A),Y 1566 INC Z0A 1567 BNE MS2 1568 INC Z0B 1569 MS2 CMP #$7F 1570 BNE MS1 1571 DEC ERROR 1572 BNE MS1 1573 RTS 1574 ; 1575 MESS2 LDA (Z0A),Y 1576 CMP #$7F 1577 BEQ MS4 1578 CMP '~ 1579 BNE MSNT 1580 LDX SCR/TY 1581 CPX #$08 1582 BCS MSTL 1583 LDA #$0D 1584 MSNT LDX $C082 1585 JSR PLUS 1586 JSR PRMON 1587 LDX $C083 1588 MSTL INY 1589 BNE MESS2 1590 INC Z0B 1591 BNE MESS2 1592 MS4 LDA $C082 1593 RTS 1594 ; 1595 PLUS LDX COMPUT 1596 BPL PLUSX 1597 CMP #$60 1598 BCC PLUSX 1599 AND #$5F 1600 PLUSX RTS 1601 ; 1602 ; 1603 ; 1604 FREE?? RTS 1605 RTS 1606 RTS 1607 KEY/SK JMP KEYSK0 1608 KEY/PL JMP KEYPL0 1609 ; 1610 KEYSK0 JSR KEY/2E 1611 LDX $C063 1612 BPL SH1 1613 CMP #$C1 1614 BCC SH1 1615 CMP #$DB 1616 BCS SH1 1617 ADC #$20 1618 SH1 CMP #$DE 1619 BEQ MODFIX 1620 CMP #$DD 1621 BEQ MODFIX 1622 CMP #$C0 1623 BNE MODRTS 1624 LDA #$D0 1625 MODRTS RTS 1626 MODFIX AND #$EF 1627 RTS 1628 KEY/ES JSR KEY/2E 1629 CMP #$C1 1630 BCC CI3 1631 CMP #$DB 1632 BCS CI3 1633 LDX UCFL 1634 BNE CI3 1635 CLC 1636 ADC #$20 1637 CI3 CMP #$9B 1638 BNE CI4 1639 LDA UCFL 1640 BNE CI6 1641 LDA #$20 1642 CI6 ASL 1643 STA UCFL 1644 JMP KEY/ES 1645 CI4 LDX UCFL 1646 BMI RTS02 1647 LDX #$00 1648 STX UCFL 1649 RTS02 RTS 1650 ; 1651 KEYPL0 JSR KEY/ES 1652 CMP #$98 1653 BNE RTS02 1654 KEY\X JSR KEY/ES 1655 CMP #$B0 1656 BCC CNX1 1657 CMP #$BA 1658 BCS CNX1 1659 AND #$0F 1660 TAY 1661 LDA SPCTB,Y 1662 CNX2 RTS 1663 CNX1 AND #$1F 1664 RTS 1665 HEX 0000000000000000 1666 ; 1667 ORG $1AB4 1668 OBJ $14B4 1669 ; 1670 ; 1671 HEX 8E3272AD2072F031 1672 HEX 300D20ED1A38AD14 1673 HEX 72ED4372AA3860AD 1674 HEX D11E302138ADD41E 1675 HEX ED0E72ED3372186D 1676 HEX 0F7218ED32729004 1677 HEX 4AAA3860386AAA38 1678 HEX 60A200386038ADD4 1679 HEX 1EED33724CDE1A 1680 ; 1681 XX HEX 00 1682 ; 1683 END 1684 ; !