From 8c405d173cd9f78d7f707135f5804e594da03e52 Mon Sep 17 00:00:00 2001 From: Christopher RYU Date: Tue, 3 Oct 2023 11:13:36 +0900 Subject: [PATCH] Add BITSY.BYE (and ignore .original subdirectory) --- .gitignore | 1 + Makefile | 4 +- bitsy.bye.s | 461 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 465 insertions(+), 1 deletion(-) create mode 100644 bitsy.bye.s diff --git a/.gitignore b/.gitignore index 5b68fa2..76fd3b6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.po *.bin .work +.original diff --git a/Makefile b/Makefile index 243fe8e..a8894b2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: prodos_snippits.po -prodos_snippits.po: bitsy.boot.bin setup.system.bin quit.system.bin +prodos_snippits.po: bitsy.boot.bin setup.system.bin quit.system.bin bitsy.bye.bin @ProDOS-Utilities -d prodos_snippits.po -c create \ -s 280 -v PRODOS.SNIPPITS @ProDOS-Utilities -d prodos_snippits.po -c put \ @@ -9,6 +9,8 @@ prodos_snippits.po: bitsy.boot.bin setup.system.bin quit.system.bin -p SETUP.SYSTEM -i setup.system.bin -t 0xFF -a 0x2000 @ProDOS-Utilities -d prodos_snippits.po -c put \ -p QUIT.SYSTEM -i quit.system.bin -t 0xFF -a 0x2000 + @ProDOS-Utilities -d prodos_snippits.po -c put \ + -p BITSY.BYE -i bitsy.bye.bin -t 0xFF -a 0x1000 @ProDOS-Utilities -c ls -d prodos_snippits.po %.bin: %.s diff --git a/bitsy.bye.s b/bitsy.bye.s new file mode 100644 index 0000000..ff1537b --- /dev/null +++ b/bitsy.bye.s @@ -0,0 +1,461 @@ +; da65 V2.18 - Git ece63f0 +; Created: 2023-10-03 10:18:14 +; Input file: bitsy.bye +; Page: 1 + +L2000 := $2000 + +PRODOS_MLI := $BF00 +INIT := $FB2F +BASCALC := $FBC1 +BELL1 := $FBDD +VTAB := $FC22 +HOME := $FC58 +RDKEY := $FD0C +SETKBD := $FE89 +SETVID := $FE93 + +CLR80VID := $C00C +CLR80COL := $C000 +NEWVIDEO := $C029 + +.macpack apple2 +.setcpu "6502" +.org $1000 + + cld + lda $C082 + cli + sta CLR80VID + sta CLR80COL + jsr SETVID + jsr SETKBD + sta $04FB + jsr INIT + jsr HOME + ldx #$DF + lda #$CF +L101E: sta $BE79,x + lda L1270,x + sta $7A,x + lda #$00 + txs + inx + bne L101E + .byte $C2 + .byte $02 + beq L1034 ; f0 04 + inx ; e8 + stx NEWVIDEO +L1034: inc $BF6F + ldx #$57 +L1039: lda L12FF,x + bmi L1045 + jsr BASCALC + ldy L1300,x + .byte $2C ; mask next ... +L1045: sta ($28),y + dey + dex + bne L1039 +L104B: sta $0480,y + sta ($28),y + dey + bpl L104B + lda $BF30 + lsr a + lsr a + lsr a + tax + inx + cmp #$10 + bcc L1060 +L105F: dex +L1060: jsr L1254 + beq L105F +L1065: lda #$14 + sta $7B + sta $59 + ldy #$00 + sty $7A + sty $58 + jsr L1294 + cpy #$4C + beq L107B + jsr BELL1 +L107B: lda #$00 + tay + sta ($7A),y + tax +L1081: stx $5E +L1083: ldx #$22 + ldy $57 + cpy #$22 + bcs L108D + ldy #$22 +L108D: dey + lda #$A0 + cpy $57 + bcs L1098 + lda ($70),y + ora #$80 +L1098: sta $0405,x + sta $0381,y + dex +L109F: bne L108D + ldx #$02 + stx $25 +L10A5: lda $57,x + sta $59,x + dex + bne L10A5 +L10AC: jsr VTAB + inc $25 + ldy #$14 + lda #$A1 + sta ($28),y + lda $61,x +L10B9: sta $0380,x + lda #$FF + cpx $5E + bne L10CC + lda $5A + sta $5C + lda $5B + sta $5D + lda #$3F +L10CC: sta $5F + ldy #$00 + lda ($5A),y + bmi L10EF + bne L10DD + ldy #$10 + sta ($5A),y + tay + beq L10E4 +L10DD: lsr a + lsr a + lsr a + lsr a + and #$07 + tay +L10E4: lda L1375,y + ldy #$00 + sta ($28),y + inc $28 + bne L10FD +L10EF: lda #$A0 + sta ($28),y + inc $28 + inc $28 + lda #$AF + and $5F + sta ($28),y +L10FD: lda ($5A),y + and #$0F + sta $60 +L1103: lda #$A0 + cpy $60 + iny + bcs L1110 + lda ($5A),y + ora #$80 + and $5F +L1110: sta ($28),y + cpy #$11 + bne L1103 + lda #$0F + adc $5A + sta $5A + bcc L1120 + inc $5B +L1120: inx + cpx #$14 + bcc L10AC + stx $29 + jsr RDKEY + cmp #$8D + bne L11A8 + jsr PRODOS_MLI ; SET_PREFIX + .byte $c6 + .word L12FD + bcs L1191 + tay + lda ($5C),y + beq L11A2 + sty $7A + ldx #$20 +L113F: stx $7B + cmp #$60 + and #$0F + bcs L1174 + sta ($5C),y + inc $74 + dey + jsr L1294 + dey + bmi L1164 + ldx L10B9+1 + lda #$C3 + sta $0305,x + ldy #$FF +L115C: jsr L1294 + dec $74 + dey + bpl L11A2 +L1164: ldy #$0F +L1166: lda ($5C),y + sta $2006,y + dey + bpl L1166 +L116E: jsr HOME + jmp L2000 + +L1174: tay + adc $57 + sta $57 + tax +L117A: lda ($5C),y + sta $0280,x + dex + dey + bpl L117A + asl a + lda #$AF + sta $0281,x + bcs L11A5 + jsr L1294 + tya + beq L116E +L1191: jsr BELL1 +L1194: ldy $57 +L1196: lda ($73),y + dey + beq L11A2 + tax + bpl L1196 + sty $57 + bmi L11A5 +L11A2: jsr BELL1 +L11A5: jmp L1065 + +L11A8: ldx $5E + cmp #$95 + bne L11E5 +L11AE: inx + ldy #$10 + lda ($5C),y + beq L11D1 + cpx #$0A + bcc L120E + inc $59 + ldy #$40 + lda ($58),y + dec $59 + tay + beq L120E + lda $58 + ldy $59 + adc #$0F + bcc L11CD + iny +L11CD: sta $58 + sty $59 +L11D1: jmp L1083 + +L11D4: eor #$F8 + rol a + tax + eor $56 + lsr a + bne L11E0 + bcs L11E0 + dex +L11E0: jsr L1254 + bpl L11A5 +L11E5: cmp #$9B + beq L1194 + cmp #$C1 + bcs L1221 + adc #$48 + cmp #$F9 + bcs L11D4 + sbc #$CF + beq L1201 + tay + dey + beq L121C + dey + beq L11AE + dey + bne L11D1 +L1201: ldy $59 + lda $58 + bne L1211 + cpy #$14 + bne L1211 +L120B: dex +L120C: bmi L11D1 +L120E: jmp L1081 + +L1211: cpx #$0A + bcs L120B + sbc #$0F + bcs L11CD + dey + bcc L11CD +L121C: ldx $56 + jmp L105F + +L1221: and #$5F + sta $60 + ldx #$00 + ldy $5C + stx $5C + inx +L122C: tya + clc + adc #$10 + tay + bcc L1235 + inc $5D +L1235: lda ($5C),y + beq L124A + iny + lda ($5C),y + dey + cmp $60 + bne L122C + sty $58 + lda $5D + sta $59 + jmp L107B + +L124A: dex + bmi L120C + tay + lda #$14 + sta $5D + bne L1235 +L1254: txa + and #$0F + sta $56 + lsr a + beq L127C + php + ora #$b0 + sta $0401 + asl a + asl a + asl a + asl a + plp + ldy #$B1 + bcs L126E + ora #$80 + iny +L126E: sta $6F +L1270: sty $0404 + jsr PRODOS_MLI ; online + .byte $c5 + .word $006e + lda $0281 +L127C: ldy #$AF + sty $0281 + and #$0F + tay + clc + adc #$0E + sta $0380 + adc #$74 + sta L10B9+1 + iny + sty $57 + dey + rts + +L1294: lda $57 + sta $0280 + jsr PRODOS_MLI ; open + .byte $c8 + .word $0072 + bcs L12F3 + lda $77 + sta $79 + sty $7D + lda #$2B + ldx #$0D + .byte $2C ; mask next +L12AC: lda #$27 + dex + bne L12B5 + lda #$2C + ldx #$0D +L12B5: sta $7C + jsr PRODOS_MLI ; read bytes from open file + .byte $ca + .word $0078 + iny + beq L12F3 + lsr $7E + beq L12F3 + tay + lda ($7A),y + and #$8F + sta ($7A),y + asl a + beq L12AC + ldy #$10 + lda ($7A),y + ldy #$07 +L12D4: dey + beq L12DC + cmp L136E,y + bne L12D4 +L12DC: tya + asl a + asl a + asl a + asl a + ldy #$00 + ora ($7A),y + sta ($7A),y + lda $7A + adc #$10 + sta $7A + bcc L12AC + inc $7B + bne L12AC +L12F3: tay + jsr PRODOS_MLI + .byte $cc + .word L12FB + rts + +L12FB: .byte $01, $00 +L12FD: .word $8001 +L12FF: .byte $02 +L1300: .byte $ad, $16, $29 + scrcode "BITSY BYE" + .byte $05, $24 + scrcode "BY" + .byte $0a, $20 + scrcode "J.BROOKS" + .byte $0f, $23 + scrcode "P.FERRIE" + .byte $12, $23 + scrcode "RETURN:SELECT" + .byte $17, $0d + scrcode "ESC:BACK" + .byte $17, $18 + scrcode "TAB,#:NEW VOL" + .byte $17, $28 + scrcode "S6,D1:" + .byte $00, $06 + scrcode "/BASIS.SYSTEM" + + .byte $02, $00, $81, $02, $03, $80, $02, $00, $0b, $00 +L136E: .byte $04, $FA, $06, $fc, $04 + .byte $B3 + .byte $FF +L1375: .byte $a0, $c9, $c2, $c1, $d4, $ad, $ad