From 628073e32fceca019eba11e4ca3cc588133d65de Mon Sep 17 00:00:00 2001 From: Fred Sauer Date: Sat, 21 Mar 2026 22:59:40 -0700 Subject: [PATCH] Add presets/apple2/paddles.dasm sample --- presets/apple2/paddles.dasm | 107 ++++++++++++++++++++++++++++++++++++ src/platform/apple2.ts | 1 + 2 files changed, 108 insertions(+) create mode 100644 presets/apple2/paddles.dasm diff --git a/presets/apple2/paddles.dasm b/presets/apple2/paddles.dasm new file mode 100644 index 00000000..cfcbcabb --- /dev/null +++ b/presets/apple2/paddles.dasm @@ -0,0 +1,107 @@ + processor 6502 + org $0803 + +; --- CONSTANTS --- +BASL equ $28 +BASH equ $29 +PREAD equ $FB1E +SW0 equ $C061 +SW1 equ $C062 +SW2 equ $C063 +HOME equ $FC58 +TABV equ $FB5B + +; --- ZERO PAGE VARIABLES --- +PREVX equ $06 +PREVY equ $07 +NEWX equ $08 +NEWY equ $09 +BRUSH equ $0A + +; --- PROGRAM --- +SETUP: + jsr HOME + lda #$00 + sta PREVX + sta PREVY + +LOOP: + ; CHECK FOR MOVEMENT + lda NEWX + cmp PREVX + bne SELECT_BRUSH + lda NEWY + cmp PREVY + beq NOPAINT + +SELECT_BRUSH: + ; PAINT PREVIOUS X/Y + lda SW0 + bpl NOSW0 + lda #$20 ; INVERSE SPACE + jmp PAINT +NOSW0: lda SW1 + bpl NOSW1 + lda #$60 ; FLASHING SPACE + jmp PAINT +NOSW1: lda SW2 + bpl NOSW2 + lda #$AE ; PERIOD + jmp PAINT +NOSW2: lda #$A0 ; SPACE + +PAINT: + sta BRUSH + lda PREVY + jsr TABV + ldy PREVX + lda BRUSH + sta (BASL),Y + + ; SAVE PREVIOUS X/Y + lda NEWX + sta PREVX + lda NEWY + sta PREVY +NOPAINT: + ; CALCULATE NEW X (0-39) + ldx #$00 + jsr PREAD + lda XTABLE,Y + sta NEWX + + ; CALCULATE NEW Y (0-23) + ldx #$01 + jsr PREAD + lda YTABLE,Y + sta NEWY + +; DRAW CURSOR + lda NEWY + jsr TABV + ldy NEWX + + lda #$20 ; INVERSE SPACE + sta (BASL),Y +NODRAW: + jmp LOOP + + +; --- LOOKUP TABLES --- + +XTABLE: + ; MAP [0,255] -> [0,39] +X set 0 + repeat 256 + .byte X * 40 / 256 +X set X + 1 + repend + +YTABLE: + ; MAP [0,255] -> [0,23] +Y set 0 + repeat 256 + .byte Y * 24 / 256 +Y set Y + 1 + repend + diff --git a/src/platform/apple2.ts b/src/platform/apple2.ts index ef6e5273..cbf0af48 100644 --- a/src/platform/apple2.ts +++ b/src/platform/apple2.ts @@ -21,6 +21,7 @@ const APPLE2_PRESETS: Preset[] = [ { id: 'conway.a', name: "Conway's Game of Life" }, { id: 'lz4fh.a', name: "LZ4FH Decompressor" }, { id: 'deltamod.dasm', name: "Delta Modulation Audio" }, + { id: 'paddles.dasm', name: "Paddles/Joystick" }, // {id:'zap.dasm', name:"ZAP!"}, // {id:'tb_6502.s', name:'Tom Bombem (assembler game)'}, { id: 'dos33bin.a', name: "DOS 3.3 Binary" },