From c4b4426f2fdc7f0b50cc8bbfc56c234793277513 Mon Sep 17 00:00:00 2001 From: Rob McMullen Date: Fri, 20 Jul 2018 08:49:49 -0700 Subject: [PATCH] Added initial kfest2018 files --- kfest2018/FASTCLEAR.BIN | Bin 0 -> 707 bytes kfest2018/FASTEST.BIN | Bin 0 -> 3762 bytes kfest2018/INSANECLEAR.BIN | Bin 0 -> 23163 bytes kfest2018/Makefile | 58 + kfest2018/NORMAL.BIN | Bin 0 -> 5124 bytes kfest2018/NORMALAL31.BIN | Bin 0 -> 5124 bytes kfest2018/NORMALINCFONT.BIN | Bin 0 -> 5124 bytes kfest2018/NORMALSMC.BIN | Bin 0 -> 5124 bytes kfest2018/SETSCRN.BIN | Bin 0 -> 149 bytes kfest2018/driver.s | 97 + kfest2018/fastclear.s | 285 ++ kfest2018/fastfont.s | 1127 +++++ kfest2018/insaneclear.s | 7766 +++++++++++++++++++++++++++++++++++ kfest2018/normal.s | 68 + kfest2018/normalal31.s | 71 + kfest2018/normalincfont.s | 71 + kfest2018/normalsmc.s | 66 + kfest2018/setscrn.s | 59 + 18 files changed, 9668 insertions(+) create mode 100644 kfest2018/FASTCLEAR.BIN create mode 100644 kfest2018/FASTEST.BIN create mode 100644 kfest2018/INSANECLEAR.BIN create mode 100644 kfest2018/Makefile create mode 100644 kfest2018/NORMAL.BIN create mode 100644 kfest2018/NORMALAL31.BIN create mode 100644 kfest2018/NORMALINCFONT.BIN create mode 100644 kfest2018/NORMALSMC.BIN create mode 100644 kfest2018/SETSCRN.BIN create mode 100644 kfest2018/driver.s create mode 100644 kfest2018/fastclear.s create mode 100644 kfest2018/fastfont.s create mode 100644 kfest2018/insaneclear.s create mode 100644 kfest2018/normal.s create mode 100644 kfest2018/normalal31.s create mode 100644 kfest2018/normalincfont.s create mode 100644 kfest2018/normalsmc.s create mode 100644 kfest2018/setscrn.s diff --git a/kfest2018/FASTCLEAR.BIN b/kfest2018/FASTCLEAR.BIN new file mode 100644 index 0000000000000000000000000000000000000000..e1256d52001b985c3efd070f84ae5c5a0a48d4fa GIT binary patch literal 707 zcmajZJE~Iw5P;!9LAZ@ekdyZ$IeEWM-WSqZj3U}*5f+xy+)}W$_(23=(zpdviCE1N zT!GkXqc+z5-PiqMpY9cptf;JbXhq-7a*?|Sm)pCW;-!7Q$)D%auI1Bf`RrQ0xSq== z|M2{Jz7(%dc9D1TR(^lUU*Avm@nqj_-~2esfBSIrzJnA<6H%l@#>gD0kR4v&O>c4!T4p~=SdI*Fe-5ua09VgxH0WaAx?g->ak5sXE zE=NK_g;IXiA_=+Q{8}|X z-SFG@PZwTTt3EW{@Y^HPg%{VVN3Pg%CJIrALKLD9g(yS|sou)UJ6U-TEAM6H1FU?Q zm5;IVXjy?ML?H@Mh(Z*ig;Z~2}@T|Jh$2cp_Qhkz@&#>|YE1zfO zBrA)oJj==pWd))Tg(yTJ3Q>p_Qhkb*&$99)D_>yc6f0*~Sz_hIvI0?vLKLD9g(yS| zsgAMoIaZ!x<%_I5&B|F;o@3=pWd))Tg(yTJ3Q>p_5{Mj#9Eco<9Eco<9EcoB3|ok%h=Y zWFfK;SxRJs7{nk3F^EA7Vuc8ig~&o=A+iuzh%7{w64@XIF^EA7Vi1E^Awpy!vJhE_ zEJPL}3z4NnHi$tCVi1EE#2{9P5Lt*UL>3|ok%h=YWGRsiVi1EE#2^MSh-KoxTHfy; z+;C=FZq6dwbh3GO|AVe`5WZp?!Ld2?jH89T)Q#seQz-8I-TiOT1}J9x}Kyo z>W^k4U-F}_>(orfb$TVG%ccK)9AICcKw>a?B4KN)ZF`Wt`GWHIx%#n>19`Q@+se{S=Bll(sn@9y94 zCw})&em)2P-qV=*ZmFM>bL&B>DO)7wUahq1*4w7{~JFU?YOJ`{qG;1 zwcbenk4-x4`#1BxpKm|^xtKTif1lLtXyy+loxlI@VL$ixjQOZ{@5=3eJuF}TpZ9*X Q`iCF2pEnMF=%=UpHww1YF8}}l literal 0 HcmV?d00001 diff --git a/kfest2018/INSANECLEAR.BIN b/kfest2018/INSANECLEAR.BIN new file mode 100644 index 0000000000000000000000000000000000000000..156bdd13db96686f569cf06f87d74252f8e9beb7 GIT binary patch literal 23163 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 literal 0 HcmV?d00001 diff --git a/kfest2018/Makefile b/kfest2018/Makefile new file mode 100644 index 0000000..14ccf8b --- /dev/null +++ b/kfest2018/Makefile @@ -0,0 +1,58 @@ + +all: INSANECLEAR.BIN FASTEST.BIN SETSCRN.BIN NORMAL.BIN NORMALSMC.BIN FASTCLEAR.BIN NORMALINCFONT.BIN NORMALAL31.BIN + +FASTEST.BIN: driver.s fastfont.s + rm -f fastest.xex + cat driver.s fastfont.s > temp.s + atrcopy . assemble -f -s temp.s -r 0x5000 -o FASTEST.BIN + atrcopy kfest.dsk add FASTEST.BIN -f + rm -f apple2auto.state + +SETSCRN.BIN: setscrn.s + rm -f setscrn.bin + cat setscrn.s > temp.s + atrcopy . assemble -f -s temp.s -r 0x5000 -o SETSCRN.BIN + atrcopy kfest.dsk add SETSCRN.BIN -f + rm -f apple2auto.state + +NORMAL.BIN: driver.s normal.s + cat driver.s normal.s > temp.s + atrcopy . assemble -f -d fatfont128.dat@0x6000 -s temp.s -r 0x5000 -o NORMAL.BIN + atrcopy kfest.dsk add NORMAL.BIN -f + rm -f apple2auto.state + +NORMALINCFONT.BIN: driver.s normalincfont.s + cat driver.s normalincfont.s > temp.s + atrcopy . assemble -f -d fatfont128.dat@0x6000 -s temp.s -r 0x5000 -o NORMALINCFONT.BIN + atrcopy kfest.dsk add NORMALINCFONT.BIN -f + rm -f apple2auto.state + +NORMALAL31.BIN: driver.s normalal31.s + cat driver.s normalal31.s > temp.s + atrcopy . assemble -f -d fatfont128.dat@0x6000 -s temp.s -r 0x5000 -o NORMALAL31.BIN + atrcopy kfest.dsk add NORMALAL31.BIN -f + rm -f apple2auto.state + +NORMALSMC.BIN: driver.s normalsmc.s + cat driver.s normalsmc.s > temp.s + atrcopy . assemble -f -d fatfont128.dat@0x6000 -s temp.s -r 0x5000 -o NORMALSMC.BIN + atrcopy kfest.dsk add NORMALSMC.BIN -f + rm -f apple2auto.state + +FASTCLEAR.BIN: fastclear.s + cat fastclear.s > temp.s + atrcopy . assemble -f -s fastclear.s -r 0x5000 -o FASTCLEAR.BIN + atrcopy kfest.dsk add FASTCLEAR.BIN -f + rm -f apple2auto.state + +INSANECLEAR.BIN: insaneclear.s + cat insaneclear.s > temp.s + atrcopy . assemble -f -s insaneclear.s -r 0x4000 -o INSANECLEAR.BIN + atrcopy insaneclear.dsk boot -b INSANECLEAR.BIN --brun 4000 -f + rm -f apple2auto.state + +clean: + rm -f working.dsk + +reallyclean: clean + rm -f player-missile.hgr player-missile-2.hgr kansasfest-hackfest.hgr title.hgr \ No newline at end of file diff --git a/kfest2018/NORMAL.BIN b/kfest2018/NORMAL.BIN new file mode 100644 index 0000000000000000000000000000000000000000..0d4c2af5735fd4d407f79faa858c48fd65c7fa26 GIT binary patch literal 5124 zcmeHGziZn-6xL82XXz9}hLR`=l#qJMk};5fKrME=ddYv#(clABaw)3pQYbDKr;r~d zZXu`~I1Vy8PbH({#B1@CW+=r&DYQ%ay*sCvEZK{mEZ=?aeecJ8XB(C=XD(RghGpKj z%tuzqXcoR*aTCM-QoH^~y*T0qA{);nbfN9P% zgNOg#`IfOgfV;GP?wp@|wVaESUzRi6HC`Ql9_;tuT+FxbZ4aH{)hJv4{-M8rRx+4= zRuA=K_4Q+#OH0ekD=W9xJ4a6msRF42sRF42sRF42sRF42sRF42sRF42sRI9%0&^3a zI#i*ceT4#?*eW~~&*gMHm(y{Du`L!gsaVwU8@#qQm3({qU}97La#{PzWjL`_cq+cQ zsN;)^I<7Fbm5L@+Dms3Hm6uJd3S;=R+xu;DeVo{EV#mh~&y8c|*4$d$JYt^r(j#6c z@O?k%u&N&ffnQ|}UxuONh)d}y21r%cW-LjFuMB-gV`Nrs#-$K~_ z48^(T3kE6Cz+(|9fLUx?G;2-4eDZo6e5C+Zst-OXkNOIe01SN+Tr}cPjN&$rICH68 x8+WP{pgAaweppx~)dAvarF;}r0<<6N;tI*wYG1JkC$0)l#q)U`&*ybqVO)21G-+o?$0vAweJc6p_1@T~{N=LtmCJDA zs_;~NX-UVImULWUTq_k#s#J7*f|ZwztqNoKbUFtea(x)v#n_IH8ork#%&U2|q*R}7GkmTwWuy>M$;a5X28^ltOqj zP-mRR@OOJ1A>)`y=|qG%PU1@$H+(bzpA*KZ_$&;W`l1K*r8Z&r8f{ZNZ~@Vr;5U4R zd?Av=NeN4g!Xhb9KO*c z(6846>h+jI3twNd8sznBHRf}v-vRxOM$GdYW6a}Jq?k8CsR%v}0XX(afk`K0q!22TQoLxyp%}#- z9&_eVyAIx|Qh?^5H2TBBDX9(+S10A8pb~(E+^c##R724O0dI60JYb&G`|5uQ!}tsB C4@@Nh literal 0 HcmV?d00001 diff --git a/kfest2018/NORMALINCFONT.BIN b/kfest2018/NORMALINCFONT.BIN new file mode 100644 index 0000000000000000000000000000000000000000..30a5ef20981f8a012c1b506cbf8b0d0e473c37f2 GIT binary patch literal 5124 zcmeHGJ!{)g6cwc;?$Rj%4<%6&C?WNhC1W6eKrK$YYRNz77{~)vatBp%DHIorr;v|Q zw-8hwI1Vy;o=Qf?iFYq?GnEWoS}5tc@7cv<$zF72`@M7TxnD<#VHq>#oMoBPcAL@;^dFz_V+Nw*WN+*?M1P1f2;5Ii^E>^-thctP^eyh>>ixi z2Gh^-C;eDm{g~#$!s6o6((Uuk4RS)RK(0WpK(0WpK(0WpK(0WpK(0WpK(0Wp!2hAZ z%*ZCTDVMdcT!s@@g(u>(vpPOItK$mey1A)Io0~d5#w#lm$+xeMMmFK!-qybDZ8&jN zcp^SOujBLcI<7FTJ3E@Rv!ml+{I^BRf8>`CghbFZ9B+e#CtL zwNJcO6a+!kVwE6@qM*WRfsA9x5tq_e43H|G!&sIPUm5xgu8~=B7?(l_;s+t65MB$^ znPdt4t#(t$Bw40 zh%|LF!V;sfSPImS2|H9581u!dzk|7Gj@Y5Oos{Afr99e}=1*YCpT=RF3g(c(FQ^W9 zLLAE!C+e%cQD5qM`}<$s9Z^3?d0bX_OYMoe*i&WeenRju7HqXX7tGaHDb9%}CEgSI zwc9}LHgjm<>j4WPuOEiY=Tg4|`n|bfo?jbbo@64!yfI3}@No#hu}=m}%5f1poJCD9 z_B>BvD9$xsFi438K1)ae%;Gqr9@Yg5$m?_Pl>#`aKKP_O>MKkFF!agrq7jE;6nA*S znMduKc&ADMnuF5l4-2QHIzU{Vl#hZ+02Xnt;_*lgMH2+P)~fMBUn6JxH^*Af@KkOOJ*AfmIT{=F)%QF_3{Z8xPw}M36|9+0qX& z3T0s+P1(4UlN7zAA32*-?MZVGL@)7qXA%j$^e+2uHZ#xrKJUjolNgqZm?xLW^tHFw%utbZ#y{pV+ub4+uQ zI)Cu*U2GZK=R2RRR&o1c=Zkgn)v8>c{IV*8J>#JNaXfx`x!Ah1J*W(>hw1u{xBY{& zqQUgD`c6MqUq7aK|Nipw%F504*4Yz6qClcRqClcRqClcRqClcRqClcRqClcRqQL*8 zz{134&XmtD+rDrsM-1Shr% z&&0D?9nWTUTw!d>WlbuVb$p7Imrbk+WB9b&2W@h_pV(kx$HxuVi6Z9IoLba8Vy^qb zC0@t(JkRg2s^|N@S7i-P27%;=OX(^GNL9yXERKn<41I`v&rBWR0ljE zj%9=u_0_piU+Q}M`yXB%Q9ns}TvmBUofCC&PL-|u3BjjWu=VDWx71vxI47QzxF_`M zc7eKGX48R3Lso;lZmq^#F7+MI_jt@4w=uyyj75xj1C$Ej;}C%3JTWjS$3Q2c^*u3#+6$KwPbqkAg}7=5wd&a9<5Y6L`GQX>gA@QlD4t*4(J3O&001m19>V|t literal 0 HcmV?d00001 diff --git a/kfest2018/driver.s b/kfest2018/driver.s new file mode 100644 index 0000000..94f8e32 --- /dev/null +++ b/kfest2018/driver.s @@ -0,0 +1,97 @@ + +FIRST_CHAR_OF_SCREEN = $06 +FIRST_CHAR_OF_LINE = $07 +CURRENT_CHAR = $08 +FRAME_COUNT = $09 + + + *= $5000 + +start_set + jsr set_hires + jsr clrscr + jsr driver + jsr set_text + rts + brk + +driver + lda #$00 + sta FIRST_CHAR_OF_SCREEN + lda #64 + sta FRAME_COUNT +page_loop + jsr page + dec FRAME_COUNT + bne page_loop + rts + +; os memory map +KEYBOARD = $c000 +KBDSTROBE = $c010 +CLRTEXT = $c050 +SETTEXT = $c051 +CLRMIXED = $c052 +SETMIXED = $c053 +TXTPAGE1 = $c054 +TXTPAGE2 = $c055 +CLRHIRES = $c056 +SETHIRES = $c057 + + +set_hires bit CLRTEXT ; start with HGR page 1, full screen + bit CLRMIXED + bit TXTPAGE1 + bit SETHIRES + rts + +set_text bit SETTEXT + bit CLRMIXED + bit TXTPAGE1 + bit CLRHIRES + rts + +; clear hires page 1 only +clrscr lda #$20 + sta clrscr_smc+2 + lda #0 + ldy #0 +clrscr_smc sta $ff00,y + iny + bne clrscr_smc + inc clrscr_smc+2 + ldx clrscr_smc+2 + cpx #$40 + bcc clrscr_smc + rts + + *= $5074 + +page + inc FIRST_CHAR_OF_SCREEN + lda FIRST_CHAR_OF_SCREEN + sta FIRST_CHAR_OF_LINE + + ldy #$00 +line_loop + ldx #$00 + lda FIRST_CHAR_OF_LINE + sta CURRENT_CHAR +char_loop + lda CURRENT_CHAR + jsr font_test + inc CURRENT_CHAR + inx + cpx #40 + bcc char_loop + + inc FIRST_CHAR_OF_LINE + iny + cpy #24 + bcc line_loop + + rts + + + +font_test diff --git a/kfest2018/fastclear.s b/kfest2018/fastclear.s new file mode 100644 index 0000000..00aef70 --- /dev/null +++ b/kfest2018/fastclear.s @@ -0,0 +1,285 @@ +; AUTOGENERATED FILE; DO NOT EDIT! +; +; This file was generated by asmgen.py, a 6502 code generator sponsored by +; the Player/Missile Podcast. (The sprite compiler is based on HiSprite by +; Quinn Dunki). +; +; The code produced by asmgen is licensed under the Creative Commons +; Attribution 4.0 International (CC BY 4.0), so you are free to use the code in +; this file for any purpose. (The code generator itself is licensed under the +; GPLv3.) + +FIRST_CHAR_OF_SCREEN = $06 +FIRST_CHAR_OF_LINE = $07 +CURRENT_CHAR = $08 +FRAME_COUNT = $09 + + + *= $5000 + +start_set + jsr set_hires + jsr clrscr + jsr driver + jsr set_text + rts + brk + +driver + lda #$00 + sta FIRST_CHAR_OF_SCREEN + lda #64 + sta FRAME_COUNT +page_loop + jsr page + dec FRAME_COUNT + bne page_loop + rts + +; os memory map +KEYBOARD = $c000 +KBDSTROBE = $c010 +CLRTEXT = $c050 +SETTEXT = $c051 +CLRMIXED = $c052 +SETMIXED = $c053 +TXTPAGE1 = $c054 +TXTPAGE2 = $c055 +CLRHIRES = $c056 +SETHIRES = $c057 + + +set_hires bit CLRTEXT ; start with HGR page 1, full screen + bit CLRMIXED + bit TXTPAGE1 + bit SETHIRES + rts + +set_text bit SETTEXT + bit CLRMIXED + bit TXTPAGE1 + bit CLRHIRES + rts + +; clear hires page 1 only +clrscr lda #$20 + sta clrscr_smc+2 + lda #0 + ldy #0 +clrscr_smc sta $ff00,y + iny + bne clrscr_smc + inc clrscr_smc+2 + ldx clrscr_smc+2 + cpx #$40 + bcc clrscr_smc + rts + + *= $5074 + +page + +FASTCLEAR_2000 ; A,X clobbered + lda FRAME_COUNT + ldx #39 +FASTCLEAR_2000_INNER + sta $2000,x + sta $2400,x + sta $2800,x + sta $2c00,x + sta $3000,x + sta $3400,x + sta $3800,x + sta $3c00,x + sta $2080,x + sta $2480,x + sta $2880,x + sta $2c80,x + sta $3080,x + sta $3480,x + sta $3880,x + sta $3c80,x + sta $2100,x + sta $2500,x + sta $2900,x + sta $2d00,x + sta $3100,x + sta $3500,x + sta $3900,x + sta $3d00,x + sta $2180,x + sta $2580,x + sta $2980,x + sta $2d80,x + sta $3180,x + sta $3580,x + sta $3980,x + sta $3d80,x + sta $2200,x + sta $2600,x + sta $2a00,x + sta $2e00,x + sta $3200,x + sta $3600,x + sta $3a00,x + sta $3e00,x + sta $2280,x + sta $2680,x + sta $2a80,x + sta $2e80,x + sta $3280,x + sta $3680,x + sta $3a80,x + sta $3e80,x + sta $2300,x + sta $2700,x + sta $2b00,x + sta $2f00,x + sta $3300,x + sta $3700,x + sta $3b00,x + sta $3f00,x + sta $2380,x + sta $2780,x + sta $2b80,x + sta $2f80,x + sta $3380,x + sta $3780,x + sta $3b80,x + sta $3f80,x + sta $2028,x + sta $2428,x + sta $2828,x + sta $2c28,x + sta $3028,x + sta $3428,x + sta $3828,x + sta $3c28,x + sta $20a8,x + sta $24a8,x + sta $28a8,x + sta $2ca8,x + sta $30a8,x + sta $34a8,x + sta $38a8,x + sta $3ca8,x + sta $2128,x + sta $2528,x + sta $2928,x + sta $2d28,x + sta $3128,x + sta $3528,x + sta $3928,x + sta $3d28,x + sta $21a8,x + sta $25a8,x + sta $29a8,x + sta $2da8,x + sta $31a8,x + sta $35a8,x + sta $39a8,x + sta $3da8,x + sta $2228,x + sta $2628,x + sta $2a28,x + sta $2e28,x + sta $3228,x + sta $3628,x + sta $3a28,x + sta $3e28,x + sta $22a8,x + sta $26a8,x + sta $2aa8,x + sta $2ea8,x + sta $32a8,x + sta $36a8,x + sta $3aa8,x + sta $3ea8,x + sta $2328,x + sta $2728,x + sta $2b28,x + sta $2f28,x + sta $3328,x + sta $3728,x + sta $3b28,x + sta $3f28,x + sta $23a8,x + sta $27a8,x + sta $2ba8,x + sta $2fa8,x + sta $33a8,x + sta $37a8,x + sta $3ba8,x + sta $3fa8,x + sta $2050,x + sta $2450,x + sta $2850,x + sta $2c50,x + sta $3050,x + sta $3450,x + sta $3850,x + sta $3c50,x + sta $20d0,x + sta $24d0,x + sta $28d0,x + sta $2cd0,x + sta $30d0,x + sta $34d0,x + sta $38d0,x + sta $3cd0,x + sta $2150,x + sta $2550,x + sta $2950,x + sta $2d50,x + sta $3150,x + sta $3550,x + sta $3950,x + sta $3d50,x + sta $21d0,x + sta $25d0,x + sta $29d0,x + sta $2dd0,x + sta $31d0,x + sta $35d0,x + sta $39d0,x + sta $3dd0,x + sta $2250,x + sta $2650,x + sta $2a50,x + sta $2e50,x + sta $3250,x + sta $3650,x + sta $3a50,x + sta $3e50,x + sta $22d0,x + sta $26d0,x + sta $2ad0,x + sta $2ed0,x + sta $32d0,x + sta $36d0,x + sta $3ad0,x + sta $3ed0,x + sta $2350,x + sta $2750,x + sta $2b50,x + sta $2f50,x + sta $3350,x + sta $3750,x + sta $3b50,x + sta $3f50,x + sta $23d0,x + sta $27d0,x + sta $2bd0,x + sta $2fd0,x + sta $33d0,x + sta $37d0,x + sta $3bd0,x + sta $3fd0,x + dex + bmi FASTCLEAR_2000_RTS + + jmp FASTCLEAR_2000_INNER +FASTCLEAR_2000_RTS + rts + + diff --git a/kfest2018/fastfont.s b/kfest2018/fastfont.s new file mode 100644 index 0000000..6b6d7a7 --- /dev/null +++ b/kfest2018/fastfont.s @@ -0,0 +1,1127 @@ +; AUTOGENERATED FILE; DO NOT EDIT! +; +; This file was generated by asmgen.py, a 6502 code generator sponsored by +; the Player/Missile Podcast. (The sprite compiler is based on HiSprite by +; Quinn Dunki). +; +; The code produced by asmgen is licensed under the Creative Commons +; Attribution 4.0 International (CC BY 4.0), so you are free to use the code in +; this file for any purpose. (The code generator itself is licensed under the +; GPLv3.) + +SCRATCH_0 = $D0 + +FASTFONT_H1 ; A = character, X = column, Y = row; A is clobbered, X&Y are not + pha + lda FASTFONT_H1_JMP_HI,y + sta FASTFONT_H1_JMP+2 + lda FASTFONT_H1_JMP_LO,y + sta FASTFONT_H1_JMP+1 + sty scratch_0 + pla + tay +FASTFONT_H1_JMP + jmp $ffff + + +FASTFONT_H1_JMP_HI + .byte >FASTFONT_H1_0 + .byte >FASTFONT_H1_1 + .byte >FASTFONT_H1_2 + .byte >FASTFONT_H1_3 + .byte >FASTFONT_H1_4 + .byte >FASTFONT_H1_5 + .byte >FASTFONT_H1_6 + .byte >FASTFONT_H1_7 + .byte >FASTFONT_H1_8 + .byte >FASTFONT_H1_9 + .byte >FASTFONT_H1_10 + .byte >FASTFONT_H1_11 + .byte >FASTFONT_H1_12 + .byte >FASTFONT_H1_13 + .byte >FASTFONT_H1_14 + .byte >FASTFONT_H1_15 + .byte >FASTFONT_H1_16 + .byte >FASTFONT_H1_17 + .byte >FASTFONT_H1_18 + .byte >FASTFONT_H1_19 + .byte >FASTFONT_H1_20 + .byte >FASTFONT_H1_21 + .byte >FASTFONT_H1_22 + .byte >FASTFONT_H1_23 +FASTFONT_H1_JMP_LO + .byte FASTFONT_H2_0 + .byte >FASTFONT_H2_1 + .byte >FASTFONT_H2_2 + .byte >FASTFONT_H2_3 + .byte >FASTFONT_H2_4 + .byte >FASTFONT_H2_5 + .byte >FASTFONT_H2_6 + .byte >FASTFONT_H2_7 + .byte >FASTFONT_H2_8 + .byte >FASTFONT_H2_9 + .byte >FASTFONT_H2_10 + .byte >FASTFONT_H2_11 + .byte >FASTFONT_H2_12 + .byte >FASTFONT_H2_13 + .byte >FASTFONT_H2_14 + .byte >FASTFONT_H2_15 + .byte >FASTFONT_H2_16 + .byte >FASTFONT_H2_17 + .byte >FASTFONT_H2_18 + .byte >FASTFONT_H2_19 + .byte >FASTFONT_H2_20 + .byte >FASTFONT_H2_21 + .byte >FASTFONT_H2_22 + .byte >FASTFONT_H2_23 +FASTFONT_H2_JMP_LO + .byte fatfont + adc font_ptr+1 + sta font_ptr+1 + + lda hgrtextrow_l,y ; load address of first line of hgr text + sta hgr_ptr + lda hgrtextrow_h,y + sta hgr_ptr+1 + + ldx #0 +slowfont_loop + txa + tay + lda (font_ptr),y + ldy SCRATCH_X ; col goes in y + sta (hgr_ptr),y + clc + lda #4 + adc hgr_ptr+1 + sta hgr_ptr+1 + inx + cpx #8 + bcc slowfont_loop + +done + ldx SCRATCH_X + ldy SCRATCH_Y + rts + + + + +hgrtextrow_l + .byte $00,$80,$00,$80,$00,$80,$00,$80 + .byte $28,$A8,$28,$A8,$28,$A8,$28,$A8 + .byte $50,$D0,$50,$D0,$50,$D0,$50,$D0 +hgrtextrow_h + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 diff --git a/kfest2018/normalal31.s b/kfest2018/normalal31.s new file mode 100644 index 0000000..817430e --- /dev/null +++ b/kfest2018/normalal31.s @@ -0,0 +1,71 @@ + +SCRATCH_X = $D0 +SCRATCH_Y = $D1 +FONT_PTR = $D2 +HGR_PTR = $D4 + +FATFONT = $6000 + +; A = character, X = column, Y = row; A is clobbered, X&Y are not + + stx SCRATCH_X + sty SCRATCH_Y + + ; find address of glyph + sta font_ptr + lda #0 + sta font_ptr + 1 + asl font_ptr ; multiply by 8 + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + + clc ; add font table address to get pointer inside font table + lda #fatfont + adc font_ptr+1 + sta font_ptr+1 + + clc + lda hgrtextrow_l,y ; load address of first line of hgr text + adc SCRATCH_X + sta hgr_ptr + lda hgrtextrow_h,y + adc #0 + sta hgr_ptr+1 + + ldy #0 +slowfont_loop + lda (font_ptr),y + sta (hgr_ptr),y + clc + lda hgr_ptr + adc #$ff + sta hgr_ptr + lda #3 + adc hgr_ptr+1 + sta hgr_ptr+1 + iny + cpy #8 + bcc slowfont_loop + +done + ldx SCRATCH_X + ldy SCRATCH_Y + rts + + + + +hgrtextrow_l + .byte $00,$80,$00,$80,$00,$80,$00,$80 + .byte $28,$A8,$28,$A8,$28,$A8,$28,$A8 + .byte $50,$D0,$50,$D0,$50,$D0,$50,$D0 +hgrtextrow_h + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 diff --git a/kfest2018/normalincfont.s b/kfest2018/normalincfont.s new file mode 100644 index 0000000..0a3f577 --- /dev/null +++ b/kfest2018/normalincfont.s @@ -0,0 +1,71 @@ + +SCRATCH_X = $D0 +SCRATCH_Y = $D1 +FONT_PTR = $D2 +HGR_PTR = $D4 + +FATFONT = $6000 + +; A = character, X = column, Y = row; A is clobbered, X&Y are not + + stx SCRATCH_X + sty SCRATCH_Y + + ; find address of glyph + sta font_ptr + lda #0 + sta font_ptr + 1 + asl font_ptr ; multiply by 8 + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + + clc ; add font table address to get pointer inside font table + lda #fatfont + adc font_ptr+1 + sta font_ptr+1 + + lda hgrtextrow_l,y ; load address of first line of hgr text + sta hgr_ptr + lda hgrtextrow_h,y + sta hgr_ptr+1 + + ldx #0 +slowfont_loop + ldy #0 + lda (font_ptr),y + ldy SCRATCH_X ; col goes in y + sta (hgr_ptr),y + clc + lda #4 + adc hgr_ptr+1 + sta hgr_ptr+1 + clc + inc font_ptr + bcc ?1 + inc font_ptr+1 +?1 inx + cpx #8 + bcc slowfont_loop + +done + ldx SCRATCH_X + ldy SCRATCH_Y + rts + + + + +hgrtextrow_l + .byte $00,$80,$00,$80,$00,$80,$00,$80 + .byte $28,$A8,$28,$A8,$28,$A8,$28,$A8 + .byte $50,$D0,$50,$D0,$50,$D0,$50,$D0 +hgrtextrow_h + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 diff --git a/kfest2018/normalsmc.s b/kfest2018/normalsmc.s new file mode 100644 index 0000000..9c39bfd --- /dev/null +++ b/kfest2018/normalsmc.s @@ -0,0 +1,66 @@ + +SCRATCH_X = $D0 +SCRATCH_Y = $D1 +FONT_PTR = $D2 +HGR_PTR = $D4 + +FATFONT = $6000 + +; A = character, X = column, Y = row; A is clobbered, X&Y are not + + stx SCRATCH_X + sty SCRATCH_Y + + ; find address of glyph + sta font_ptr + lda #0 + sta font_ptr + 1 + asl font_ptr ; multiply by 8 + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + asl font_ptr + rol font_ptr + 1 + + clc ; add font table address to get pointer inside font table + lda #fatfont + adc font_ptr+1 + sta slowfont_loop_smc+2 + + lda hgrtextrow_l,y ; load address of first line of hgr text + sta hgr_ptr + lda hgrtextrow_h,y + sta hgr_ptr+1 + + ldx #0 + ldy SCRATCH_X ; col goes in y +slowfont_loop +slowfont_loop_smc + lda $ffff,x + sta (hgr_ptr),y + clc + lda #4 + adc hgr_ptr+1 + sta hgr_ptr+1 + inx + cpx #8 + bcc slowfont_loop + + ldx SCRATCH_X + ldy SCRATCH_Y + rts + + + + +hgrtextrow_l + .byte $00,$80,$00,$80,$00,$80,$00,$80 + .byte $28,$A8,$28,$A8,$28,$A8,$28,$A8 + .byte $50,$D0,$50,$D0,$50,$D0,$50,$D0 +hgrtextrow_h + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 + .byte $20,$20,$21,$21,$22,$22,$23,$23 diff --git a/kfest2018/setscrn.s b/kfest2018/setscrn.s new file mode 100644 index 0000000..09e801a --- /dev/null +++ b/kfest2018/setscrn.s @@ -0,0 +1,59 @@ + + + *= $5000 + +start_set + jsr set_hires + jsr test + jsr set_text + jmp forever + rts + brk + +forever + jmp forever + +; os memory map +KEYBOARD = $c000 +KBDSTROBE = $c010 +CLRTEXT = $c050 +SETTEXT = $c051 +CLRMIXED = $c052 +SETMIXED = $c053 +TXTPAGE1 = $c054 +TXTPAGE2 = $c055 +CLRHIRES = $c056 +SETHIRES = $c057 + + +set_hires bit CLRTEXT ; start with HGR page 1, full screen + bit CLRMIXED + bit TXTPAGE1 + bit SETHIRES + rts + +set_text bit SETTEXT + bit CLRMIXED + bit TXTPAGE1 + bit CLRHIRES + rts + + + *= $5074 +test +; set hires page 1 only + lda #$20 + sta setscr_smc+2 + lda #0 + ldy #0 + lda #$ff +setscr_smc sta $ff00,y ; 4 + iny ; 2 + bne setscr_smc ; 4 = 10 * 256 + inc setscr_smc+2 ; 6 + ldx setscr_smc+2 ; 6 + cpx #$40 ; 2 + bcc setscr_smc ; 4 + rts ; (18 + 10*256) * 32 = 82496 + + brk