.BA $FC00 ;JUNIOR .EQ DRA = $FA80 .EQ DDRA = $FA81 .EQ DRB = $FA82 .EQ DDRB = $FA83 .EQ POINTL = $FA .EQ POINTH = $FB SAVE STA $F3 PLA STA $F1 SAVEA PLA STA $EF STA POINTL PLA STA $F0 STA POINTH SAVEB STY $F4 STX $F5 TSX STX $F2 LDX #1 STX $FF JMP START RESET LDA #$1E STA $1A83 LDA #4 STA $F1 LDA #3 STA $FF STA $F6 LDX #$FF TXS STX $F2 CLD SEI START JSR SCAND BNE START STARA JSR SCAND BEQ STARA JSR SCAND BEQ STARA JSR GETKEY GOEXEC CMP #$13 BNE ADMODE LDX $F2 TXS LDA POINTH PHA LDA POINTL PHA LDA $F1 PHA LDX $F5 LDY $F4 LDA $F3 RTI ADMODE CMP #$10 BNE DAMODE LDA #3 STA $FF BNE STEPA DAMODE CMP #$11 BNE STEP LDA #0 STA $FF BEQ STEPA STEP CMP #$12 BNE PCKEY INC POINTL BNE STEPA INC POINTH STEPA JMP START PCKEY CMP #$14 BNE ILLKEY LDA $EF STA POINTL LDA $F0 STA POINTH JMP STEPA ILLKEY CMP #$15 BPL STEPA DATA STA $E1 LDY $FF BNE ADRES LDA (POINTL),Y ASL ASL ASL ASL ORA $E1 STA (POINTL),Y JMP STEPA ADRES LDX #4 ADLOOP ASL POINTL ROL POINTH DEX BNE ADLOOP LDA POINTL ORA $E1 STA POINTL JMP STEPA EDITOR JSR BEGIN LDY $E3 LDX $E2 INX BNE EDIT INY EDIT STX $E8 STY $E9 LDA #$77 LDY #0 STA ($E6),Y CMND JSR SCAN SEARCH CMP #$14 BNE INSERT JSR GETBYT BPL SEARCH STA POINTH JSR GETBYT BPL SEARCH STA POINTL JSR BEGIN SELOOP LDY #0 LDA ($E6),Y CMP POINTH BNE SEARA INY LDA ($E6),Y CMP POINTL BEQ CMND SEARA JSR OPLEN JSR NEXT BMI SELOOP BPL ERRA INSERT CMP #$10 BNE INPUT JSR RDINST BPL SEARCH JSR FILLWS BEQ CMND INPUT CMP #$13 BNE SKIP JSR RDINST BPL SEARCH JSR OPLEN JSR NEXT LDA $FD STA $F6 JSR FILLWS BEQ CMND SKIP CMP #$12 BNE DELETE JSR NEXT BMI CMND BPL ERRA DELETE CMP #$11 BNE ERRA JSR UP JSR RECEND JMP CMND ERRA LDA #$EE STA POINTH STA POINTL STA $F9 LDA #3 STA $F6 ERRB JSR SCANDS BNE ERRB JMP CMND SCAN LDX #2 LDY #0 FILBUF LDA ($E6),Y STA $95,X INY DEX BPL FILBUF JSR OPLEN SCANA JSR SCANDS BNE SCANA SCANB JSR SCANDS BEQ SCANB JSR SCANDS BEQ SCANB JSR GETKEY RTS GETBYT JSR SCANA CMP #$10 BPL BYTEND ASL ASL ASL ASL STA $FE JSR SCANA CMP #$10 BPL BYTEND ORA $FE LDX #$FF BYTEND RTS SCAND LDY #0 LDA (POINTL),Y STA $F9 SCANDS LDA #$7F STA DDRA LDX #8 LDY $F6 SCDSA LDA POINTH JSR SHOW DEY BEQ SCDSB LDA POINTL JSR SHOW DEY BEQ SCDSB LDA $F9 JSR SHOW SCDSB LDA #0 STA DDRA AK LDY #3 LDX #0 ONEKEY LDA #$FF AKA STX DRB INX INX AND DRA DEY BNE AKA LDY #6 STY DRB ORA #$80 EOR #$FF RTS SHOW PHA STY $FC LSR LSR LSR LSR JSR CONVD PLA AND #$0F JSR CONVD LDY $FC RTS CONVD TAY LDA LOOK,Y STA DRA STX DRB LDY #$7F DELAY DEY BPL DELAY STY DRA LDY #6 STY DRB INX INX RTS GETKEY LDX #$21 GETKEA LDY #1 JSR ONEKEY BNE KEYIN CPX #$27 BNE GETKEA LDA #$15 RTS KEYIN LDY #$FF KEYINA ASL BCS KEYINB INY BPL KEYINA KEYINB TXA AND #$0F LSR TAX TYA BPL KEYIND KEYINC CLC ADC #7 KEYIND DEX BNE KEYINC RTS RDINST JSR GETBYT BPL RDB STA POINTH JSR LENACC STY $F7 STX $FD DEC $F7 BEQ RDA JSR GETBYT BPL RDB STA POINTL DEC $F7 BEQ RDA JSR GETBYT BPL RDB STA $F9 RDA LDX #$FF RDB RTS FILLWS JSR DOWN JSR ADCEND LDX #2 LDY #0 WS LDA $F9,X STA ($E6),Y DEX INY CPY $F6 BNE WS RTS OPLEN LDY #0 LDA ($E6),Y LENACC LDY #1 CMP #0 BEQ LENEND CMP #$40 BEQ LENEND CMP #$60 BEQ LENEND LDY #3 CMP #$20 BEQ LENEND AND #$1F CMP #$19 BEQ LENEND AND #$0F TAX LDY LEN,X LENEND STY $F6 RTS UP LDA $E6 STA $EA LDA $E7 STA $EB UPLOOP LDY $F6 LDA ($E6),Y LDY #0 STA ($EA),Y INC $EA BNE UPA INC $EB UPA LDA $EA CMP $E8 BNE UPLOOP LDA $EB CMP $E9 BNE UPLOOP RTS DOWN LDA $E8 STA $EA LDA $E9 STA $EB DNLOOP LDY #0 LDA ($EA),Y LDY $F6 STA ($EA),Y LDA $EA CMP $E6 BNE DNA LDA $EB CMP $E7 BEQ DNEND DNA SEC LDA $EA SBC #1 STA $EA LDA $EB SBC #0 STA $EB JMP DNLOOP DNEND RTS BEGIN LDA $E2 STA $E6 LDA $E3 STA $E7 RTS ADCEND CLC LDA $E8 ADC $F6 STA $E8 LDA $E9 ADC #0 STA $E9 RTS RECEND SEC LDA $E8 SBC $F6 STA $E8 LDA $E9 SBC #0 STA $E9 RTS NEXT CLC LDA $E6 ADC $F6 STA $E6 LDA $E7 ADC #0 STA $E7 SEC LDA $E6 SBC $E8 LDA $E7 SBC $E9 RTS LOOK .BY $40,$79,$24 .BY $30,$19,$12,2,$78,0,16,8 .BY 3,$46,$21,6,14 LEN .BY 2,2,2,1,2,2,2,1,1 .BY 2,1,1,3,3,3,3 NMI JMP ($1A7C) IRQ JMP ($1A7E) GETLBL LDA ($E6),Y LDY #$FF SYMA CPY $EE BEQ SYMB CMP ($EC),Y BNE SYMNXT DEY LDA ($EC),Y TAX DEY LDA ($EC),Y LDY #1 SYMB RTS SYMNXT DEY DEY DEY BNE SYMA RTS ASSEMB SEC LDA $E4 SBC #$FF STA $EC LDA $E5 SBC #0 STA $ED LDA #$FF STA $EE JSR BEGIN PASSA JSR OPLEN LDY #0 LDA ($E6),Y CMP #$FF BNE NXTINS INY LDA ($E6),Y LDY $EE STA ($EC),Y DEY LDA $E7 STA ($EC),Y DEY LDA $E6 STA ($EC),Y DEY STY $EE JSR UP JSR RECEND JSR PASSA NXTINS JSR NEXT BMI PASSA JSR BEGIN PASSB JSR OPLEN LDY #0 LDA ($E6),Y CMP #$4C BEQ JUMPS CMP #$20 BEQ JUMPS AND #$1F CMP #$10 BEQ BRINST PB JSR NEXT BMI PASSB LDA #3 STA $F6 JMP START JUMPS INY JSR GETLBL BEQ PB STA ($E6),Y TXA INY STA ($E6),Y BNE PB BRINST INY JSR GETLBL BEQ PB SEC SBC $E6 SEC SBC #2 STA ($E6),Y JMP PB BRANCH CLD LDA #0 STA POINTH STA POINTL STA $F9 BR JSR GETBYT BPL BRANCH STA POINTH JSR GETBYT BPL BRANCH STA POINTL CLC LDA POINTL SBC POINTH STA $F9 DEC $F9 JMP BR .BY $FF,$FF .WO NMI,RESET,IRQ .en