From df654cb1b2195513b2c7f243a38b86724d7bb51d Mon Sep 17 00:00:00 2001 From: Madeline Date: Tue, 19 Jul 2022 20:16:36 -0400 Subject: [PATCH] Version 1 'final' demo for the Apple II' --- DEMO.ASM | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ HTIMG.BIN | Bin 0 -> 8192 bytes 2 files changed, 185 insertions(+) create mode 100644 DEMO.ASM create mode 100644 HTIMG.BIN diff --git a/DEMO.ASM b/DEMO.ASM new file mode 100644 index 0000000..24a447d --- /dev/null +++ b/DEMO.ASM @@ -0,0 +1,185 @@ +.ORG $8000 + +CLOBBER: +LDA #$04 ; text / lo mem address +STA $0B +LDA #$00 ; text / lo mem address +STA $0A +LDA #$60 ; graphic asset address +STA $0D +LDA #$00 ; graphic asset address +STA $0C + +CLOBNP: +LDY #$00 ; indirect addressing mode stuff +CLOBLOOP: +LDA ($0C),y +STA ($0A),y +INY +CPY #$FF +BNE CLOBLOOP +LDY $0B +INY +STY $0B +CPY #$20 +BEQ TIMER +LDY $0D +INY +STY $0D +JMP CLOBNP + +TIMER: +LDY #$00 +STY $71 ; timer1 y +OUTERLOOP: +LDY $71 +LDX #$00 +STX $70 ; timer1 x +INNERLOOP: +LDX $70 +INX +STX $70 +CPX #$FF +BNE INNERLOOP +INY +STY $71 +CPY #$FF +BNE OUTERLOOP +JSR LGRMODE +JMP TIMER2 + +TIMER2: +LDY #$00 +OUTERLOOP2: +LDX #$00 +INNERLOOP2: +INX +CPX #$FF +BNE INNERLOOP2 +INY +CPY #$FF +BNE OUTERLOOP2 +JSR INITDISPLAY + +LGRMODE: +LDA #$FF +STA $C056 +STA $C054 +STA $C050 +RTS + +INITDISPLAY: +LDA #$FF +STA $C057 +STA $C054 +STA $C050 +LDA #$80 +STA $2000 +STA $2001 +STA $2002 +STA $2003 +JMP XOREFFECT + +LOADBUFFER: +LDA #$FF +LDX #$00 +LOADLOOP: +STA $20,x +INX +CPX #$28 +BNE LOADLOOP +JMP GLITCHINIT +LOOP: +NOP +JMP LOOP + +XOREFFECT: +LDA #$34 +STA $01 ; start memory address +LDA #$25 +STA $02 ; width of individual row +LDA $01 +ADC $02 +STA $03 ; memory address of end of line +LDA #$00 +STA $64 ; counter 1 +STA $65 ; counter 2 +STA $66 ; counter 3 +LDA $00 +STA $08 ; low order address byte +LDA $20 +STA $09 ; high order address byte +GLITCHINIT: +LDX #$65 +STX $04 ; memory address currently being grabbed +GLITCHSTORE: +;LDA $2000,x ; grab the byte from HGR memory +LDA #$FF +STA $20,x ; store it in zero page +INX +STX $04 ; store current memory address +TXA +CMP $02 +BNE GLITCHSTORE +LTIMERY: +LDA #$00 +STA $65 +LTIMERX: +LDA #$00 +STA $64 +XEINIT: +LDX $01 +XELINE: +LDA $2000,x +EOR $20,x +STA $2000,x +INX +STX $04 ; store current XOR byte +TXA +CMP $02 ; compare to width of row +BNE XELINE +LTIMER: +LDX $64 ; start of long timer +INX +STX $64 +CPX #$FF +BNE XEINIT +LDX $65 +INX +STX $65 +CPX #$02 +BNE LTIMERX +LDA #$FF ; switch to page 2 +STA $C050 +STA $C052 +STA $C057 +STA $C055 +; go through once more in the timer +LDA #$00 +STA $64 +STA $65 +LDX $66 +INX +CPX #$02 +BEQ CLEANUP + +;LDX $66 ; don't need this third variable +;INX +;STX $66 +;CPX #$FF +;BNE LTIMERY +;JMP XEINIT + +;SWITCHPAGE: +;LDA #$FF +;STA $C055 +;RTS + +CLEANUP: +LDA #$00 +STA $4000 +STA $4001 +STA $4002 +STA $4003 +JMP CLEANUP + diff --git a/HTIMG.BIN b/HTIMG.BIN new file mode 100644 index 0000000000000000000000000000000000000000..b56825a45cd09c2a655970c32a0aa9e048d34447 GIT binary patch literal 8192 zcmbVRO>f&q5baMN$90U>ZJbLRA#iP-iqs8Y9a6wZ4TtBVKy?w|Q_Q1~lMYECxU$$c zpZh_Yma_>&a=+fp?0d6InrQd3+OxjPecW6S-Qm(6`UKDYW?u9=tNJwu-0vGJK4ypO z+NagNhMxvb!;UdrmNql03;gDAdPGeaV37ho z>R!L4Rm92r^!&dex}+vzh#7t+dXeDSr&FTisQEy&iH9}O6_NRd+NHF}I$57qjdK%g z{7ZCuON^=IGtmThVL(#`A58_mjY_>{Iv5sffpt7z_*db>ev|=w!(a2QMI?V)oa5hz z#rc0SYJn(!D|f!``~U-12f;*yh6A8$&&?(NOuYmC{D4;Y1!XK!9x!g<^8V8+xsvf3 z59`G*QZai4;#J~_`_X#wcvynStsMa z$7zTw($DOSeyzm%EAW*gZbPX*sSU1pB!JJ66cswYwe|5I(?19`$rM)NgL#ljtiN%E z{XcEaHhb6P>j`E_>EXW~(%(sVD~g7i0;1F(VgrR`T#;d z60lVa>ECpO9&@bnkCL&pJLbPZf>I5ks=`MbO5a|d!-^X4a*w8Uo(7brW!Djpz>3WO z*{ZJj`QyL)G$_%<3I?_LW09fvVTq%40&{$>3m4}S?_^tmGIS?gb;^cDEZ5x1e#pVS6dTFaTh z2PN7<|4Ut@K7PbG5SX#4V37*_S^m=w*l$m=-P5?j{;#{kRfo)E>**Zn;bU%C5HUoo z0T>a-JODb$^G~6_Rcggx_?Ia~a+F zBv9!ejhg$pQ-zPlrJ^IP#<(U3CMqaS$v<3IP+`(S1vr^*Y@O0D1Q zaxL(88Gt?(CB%s{F!P_Up?_UNp3Awy{xpdD7V(LE_F1U;75Hg>v6u1XCVs*`*8#7m ztUAusj&B_4<0o#!gl*j6226xHMMY9w;A2*3H7vAqJo`WUutzKz!=H)wJ^oVz@mG4e zA<|e0+%oG{4wLa%lc#fhh}1Lq5M2^-QxWhya<2P%));M z7`-w_rist>`5z3ZxiWU1>*2TH%gA|Ac7CkWJ*T{Wff&}Ax{NEbpP5tUKTZ)+YJ6sJ zr5B{LECDe`n(o$yye@ zJju^Zx-IYxYmhJYzKD_8XrAW`wx;>`F80T=dhn^h_an6Mg>{7?Zc}zNT(;+_ivBV)A2DA-DdfInwts5{}IEJGWQ_ zhc{*#E*kuF0%fj@eb1}#TbXIV-dJ<<4Hm7XZTf9d-p@g9KvDio=IPlz3?^54FS zGGCt4=@nhZ_iz7RDj)O#3>FwZ^It7F_LX-XN%i>m+`|9XyaYZtgeRalU%V~P?lOPE zS1a;&L$7)Gn&TsCjrbCa#YsI>TI1nfz|k|-2Q$^@y-(*35ZhvTAjGUCxO2Hk{&C3 zRri3sAt_BT+4(!+LoXU{j**wiQ2t3fWQlK?Ti0vyBI8RF256t=ls+m%(%-cu!qk_0 zJVpPua{(Xu=FJh95c*F(`60(VO!!tY4O6XR?2`K*t0wWU^`G_ti;|v`{QP0O0#