From 3acd3807bb5e18862a200f816a77a0d7a742cc42 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Tue, 30 Aug 2022 12:20:02 -0700 Subject: [PATCH] convert Karateka demo, save 31kb --- res/DEMO/KARATEKA | Bin 112 -> 302 bytes res/DEMO/KARATEKA.1 | Bin 31744 -> 0 bytes src/demo/karateka.a | 109 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) delete mode 100755 res/DEMO/KARATEKA.1 create mode 100644 src/demo/karateka.a diff --git a/res/DEMO/KARATEKA b/res/DEMO/KARATEKA index 25d9829e18ec90ea2ab1554011ebacc69df212c0..31336ca04cfec8d4313db74f76beaaf07067a96a 100755 GIT binary patch literal 302 zcmX|*KS%;`9L0a$*&@H62||CQ;5QZsZms6fq!dJjZ7xA`OKwGVkiv@~9ECVk_zo?S z{I21+-|Tc_O}B;x_75Gbt8)q7@E$xq@7b*0V9)-94y;WwtSy{rSqtS&C@(@V4MQWY z!8MXv<|eZIolWU#_FPAjDxkczM8DoC%(QQn?$ zS*+Rh`l+#9bFYo&%Ctat=(K1ROKmc-+^&}zEn35@5v7z-Vup;zh%itXDsTr24l%qa zyeS9=iw+I&s_?FmbdYf(SVCZ*h;|BDOX7qIMQP?*cW0%X2ZV}7T}+;QRE z6owZUen0bn*0$22m3?jafwe&g)&?B#`L&-pm6^eTfrXKQgF)v1e;^(I9|*X-9fKT0 JT)iFj3<0N1FQNbd diff --git a/res/DEMO/KARATEKA.1 b/res/DEMO/KARATEKA.1 deleted file mode 100755 index 1db775811044ee8bdc9b14caae8b5b72ac073687..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31744 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 diff --git a/src/demo/karateka.a b/src/demo/karateka.a new file mode 100644 index 000000000..c684f8e0f --- /dev/null +++ b/src/demo/karateka.a @@ -0,0 +1,109 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "res/DEMO/KARATEKA",plain +*=$200 + + !source "src/prelaunch/common.a" + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator +reset + +LOAD_FILE_KEEP_DIR karateka, $3FF6, karateka_dir_e-karateka_dir_b + +READ_ROM_NO_WRITE + lda #$60 + sta $4013 + jsr $3FF6 ; decompress + ldx #5 +- lda $100,x + sta $BF29+return-callback1,x + dex + bpl - + ldx #callback_e-callback_b +- lda callback_b-1,x + sta $BF29-1,x + dex + bne - + lda #$AD + sta $A4A6 + lda #callback1 + sta $A51D + txa + jmp $A495 + +callback_b !pseudopc $329 { +callback1 + lda #callback2 + sta $210 + jmp $200 + +callback2 + jsr $104 + lda #$A9 + sta $B7EA + sta $B7EF + sta $B80C + sta $B818 + lda #0 + sta $B7EB + sta $B7F0 + sta $B80D + sta $B819 + lda #$EA + sta $B7EC + sta $B7F1 + sta $B80E + sta $B81A + lda #$AD + sta $D0A + sta $C59 + sta $C68 + sta $C78 + sta $C8D + sta $CB9 + sta $D72 + sta $D88 + sta $DDF + lda #$60 + sta $777F + lda #return + sta $B7FE + sta $D17 + sta $B5D9 + sta $3F3 + lda #$A6 + sta $3F4 + + +DISABLE_ACCEL + lda #0 + rts + +return +} +callback_e + +karateka + !byte karateka_e-karateka_b +karateka_b +karateka_dir_b + !text "X/KARATEKA" +karateka_dir_e + !text "/KARATEKA" +karateka_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +}