From 443b62e9e6e69aea9f926aea762473d1c9f05c85 Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 8 Oct 2022 02:04:20 -0400 Subject: [PATCH] a bit better 5200 keyboard but still not good... --- grafproc.asm | 32 ++++++++++++++++++++++ lib/5200SYS.ASM | 71 ++---------------------------------------------- scorch.asm | 64 +++++++++++++++---------------------------- scorch.xex | Bin 48558 -> 32768 bytes 4 files changed, 57 insertions(+), 110 deletions(-) diff --git a/grafproc.asm b/grafproc.asm index f981821..1f42fcd 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -2181,5 +2181,37 @@ ybarrel rts .endp +;-------------------------------------------------- +.proc PMoutofScreen +;-------------------------------------------------- + lda #$00 ; let all P/M disappear + :8 sta hposp0+# + rts +.endp +;-------------------------------------------------- +.proc ColorsOfSprites + lda TankColoursTable ; colours of sprites under tanks + sta PCOLR0 + lda TankColoursTable+1 + sta PCOLR1 + lda TankColoursTable+2 + sta PCOLR2 + lda TankColoursTable+3 + sta PCOLR3 + LDA TankColoursTable+4 + STA COLOR3 ; joined missiles (5th tank) + rts +.endp +;-------------------------------------------------- +.proc SetPMWidth + lda #$00 + sta sizep0 ; P0-P3 widths + sta sizep0+1 + sta sizep0+2 + sta sizep0+3 + lda #%01010101 + sta sizem ; all missiles, double width + rts +.endp .endif \ No newline at end of file diff --git a/lib/5200SYS.ASM b/lib/5200SYS.ASM index 314072b..0ad696b 100644 --- a/lib/5200SYS.ASM +++ b/lib/5200SYS.ASM @@ -37,6 +37,7 @@ STRIG0 = $1a ;There is no strig0 but we will make this the shadow of the TR chbas = $1b ;There is no CHBAS but we will make this the shadow of the CHBASE CONSOL = $1c ;There are no console keys on Atari 5200, so we replace console h/w reads with a new shadow based on the keypad keys consol_reset = $07;The constant value representing that no consol key is pressed +kbcode = $1d ;There is no keyboard on the Atari 5200, so replace kbcode h/w reads with a byte variable read based on the keypad keys ; PAGE 2 VIMIRQ EQU $0200 ;IMMED IRQ VECTOR @@ -74,7 +75,7 @@ POT5 EQU POKEY+$05 POT6 EQU POKEY+$06 POT7 EQU POKEY+$07 ALLPOT EQU POKEY+$08 -KBCODE EQU POKEY+$09 +KBCODE_5200 EQU POKEY+$09 RANDOM EQU POKEY+$0a POTGO EQU POKEY+$0b SERIN EQU POKEY+$0d @@ -268,70 +269,4 @@ scr32 = @dmactl(narrow|dma|players|missiles|lineX1) _pause = $0d _reset = $0e .ende -*/ - -.enum @kbcode - _none = 255 - _esc = 28 - _1 = 31 - _2 = 30 - _3 = 26 - _4 = 24 - _5 = 29 - _6 = 27 - _7 = 51 - _8 = 53 - _9 = 48 - _0 = 50 - _lt = 54 - _gt = 55 - _del = 52 - _tab = 44 - _Q = 47 - _W = 46 - _E = 42 - _R = 40 - _T = 45 - _Y = 43 - _U = 11 - _I = 13 - _O = 8 - _P = 10 - _min = 14 - _up = 14 ; cursor function - _eq = 15 - _down = 15 ; cursor function - _ret = 12 - _A = 63 - _S = 62 - _D = 58 - _F = 56 - _G = 61 - _H = 57 - _J = 1 - _K = 5 - _L = 0 - _semicolon = 2 - _plus = 6 - _left = 6 ; cursor function - _asterisk = 7 - _right = 7 ; cursor function - _caps = 60 - _Z = 23 - _X = 22 - _C = 18 - _V = 16 - _B = 21 - _N = 36 - _M = 37 - _comma = 32 - _dot = 34 - _slash = 38 - _atari = 39 - _help = 17 - _F1 = 3 - _F2 = 4 - _F3 = 19 - _F4 = 20 - _space = 33 -.ende \ No newline at end of file +*/ \ No newline at end of file diff --git a/scorch.asm b/scorch.asm index 526bf0a..40bff36 100644 --- a/scorch.asm +++ b/scorch.asm @@ -6,7 +6,7 @@ ;Miami & Warsaw 2022 ;--------------------------------------------------- -.def TARGET = 800; 5200 ; or 800 +.def TARGET = 5200 ; or 800 ;atari800 -5200 -cart ${outputFilePath} -cart-type 4 ;atari800 -run ${outputFilePath} ;--------------------------------------------------- @@ -134,7 +134,7 @@ OPT h-f+ ; no headers, single block --> cart bin file icl 'lib/5200SYS.ASM' icl 'lib/5200MACRO.ASM' -/* .enum @kbcode + .enum @kbcode /* _0 _1 @@ -152,7 +152,7 @@ _pause = $0d _reset = $0e */ -/* _space = $00 + _space = $00 _Y = $01 _up = $02 _O = $03 @@ -163,10 +163,10 @@ _down = $08 _I = $09 _esc = $0a - _ret = $0b + _ret = $fa ;$0b _M = $0d _S = $0e - _del = $0e ; not used in 5200 + _del = $fe ; not used in 5200 .ende */ .ELSE @@ -262,6 +262,7 @@ FirstSTART .IF TARGET = 5200 mva #$0f STICK0 mva #$04 CONSOL5200 ;Speaker off, Pots enabled, port #1 selected + mwa #kb_continue VKEYCNT ;Keyboard handler .ENDIF VMAIN VBLinterrupt,7 ;jsr SetVBL @@ -1003,27 +1004,6 @@ B0 DEY sta MaxForceTableL,x rts .endp -;-------------------------------------------------- -.proc PMoutofScreen -;-------------------------------------------------- - lda #$00 ; let all P/M disappear - :8 sta hposp0+# - rts -.endp -;-------------------------------------------------- -.proc ColorsOfSprites - lda TankColoursTable ; colours of sprites under tanks - sta PCOLR0 - lda TankColoursTable+1 - sta PCOLR1 - lda TankColoursTable+2 - sta PCOLR2 - lda TankColoursTable+3 - sta PCOLR3 - LDA TankColoursTable+4 - STA COLOR3 ; joined missiles (5th tank) - rts -.endp ;-------------------------------------------------- .proc WeaponCleanup; @@ -1125,17 +1105,6 @@ MakeTanksVisible rts .endp ;-------------------------------------------------- -.proc SetPMWidth - lda #$00 - sta sizep0 ; P0-P3 widths - sta sizep0+1 - sta sizep0+2 - sta sizep0+3 - lda #%01010101 - sta sizem ; all missiles, double width - rts -.endp -;-------------------------------------------------- .proc DLIinterruptGraph ;sta dliA ;sty dliY @@ -1313,6 +1282,17 @@ exitVBL jmp XITVBV .ENDIF .endp + .IF TARGET = 5200 +.proc kb_continue + sta kbcode ;Store key code in shadow. +exit pla + tay + pla + tax + pla + rti +.endp + .ENDIF ;---------------------------------------------- .proc RandomizeSequence0 ldx #0 @@ -1787,15 +1767,15 @@ noingame rts .endp ;---------------------------------------------- - icl 'weapons.asm' + icl 'constants.asm' ;---------------------------------------------- icl 'textproc.asm' ;---------------------------------------------- icl 'grafproc.asm' ;---------------------------------------------- - icl 'ai.asm' + icl 'weapons.asm' ;---------------------------------------------- - icl 'constants.asm' + icl 'ai.asm' ;---------------------------------------------- icl 'artwork/talk.asm' ;---------------------------------------------- @@ -1823,8 +1803,8 @@ font4x4 org ROM_SETTINGS ; 5200 ROM settings address $bfe8 ; "01234567890123456789" .byte " scorch 5200 v" ;20 characters title - build ; " " - .byte " " + build ; " " + .byte " " .byte "7A" ;2 characters year .. 1900 + $7A = 2020 .word FirstSTART .ELSE diff --git a/scorch.xex b/scorch.xex index 1d22ef57b0adc18118ff4e9653dd6bb992a16b7c..e7d23f81a0ac7917800f9d9be040433ae83f4861 100644 GIT binary patch delta 9424 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