From c6350cc86b695807d8ebce46dff96be596588760 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Fri, 27 Sep 2019 20:50:27 +0200 Subject: [PATCH] added more stubs --- STATUS.md | 15 +++++++++------ bin/basic_generic.rom | Bin 8192 -> 8192 bytes bin/basic_mega65.rom | Bin 8192 -> 8192 bytes bin/basic_ultimate64.rom | Bin 8192 -> 8192 bytes bin/kernal_generic.rom | Bin 8192 -> 8192 bytes bin/kernal_mega65.rom | Bin 8192 -> 8192 bytes bin/kernal_ultimate64.rom | Bin 8192 -> 8192 bytes c64/aliases/,aliases_ram_lowmem.s | 6 +++--- c64/basic/basic_adray1.s | 5 +++++ c64/basic/basic_adray2.s | 5 +++++ c64/basic/basic_cold_start.s | 18 +++++++++++++++++- c64/basic/basic_vector_defaults.s | 19 ++++++++++++------- c64/kernal/cint_real.s | 7 +++++++ c64/kernal/setup_keydecode.s | 5 +++++ 14 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 c64/basic/basic_adray1.s create mode 100644 c64/basic/basic_adray2.s create mode 100644 c64/kernal/setup_keydecode.s diff --git a/STATUS.md b/STATUS.md index 10c353e2..8c9e16db 100644 --- a/STATUS.md +++ b/STATUS.md @@ -54,12 +54,14 @@ Note: vectors at `$0300` are not supported yet - for now only the locations belo | Entry | Unofficial | Name | Status | Remarks | | :-------: | :--------: | :--------- | :------: | :------------------------------------------------: | -| | `$E38B` | `ERROR` | NOT DONE | | -| | `$A483` | `MAIN` | NOT DONE | some implementation exists, but not connected here | -| | `$A57C` | `CHRNCH` | NOT DONE | | -| | `$A71A` | `QPLOP` | NOT DONE | some implementation exists, but not connected here | -| | `$A7E4` | `GONE` | NOT DONE | some implementation exists, but not connected here | -| | `$AE86` | `EVAL` | NOT DONE | some implementation exists, but not connected here | +| `($0003)` | | `ADRAY1` | NOT DONE | | +| `($0005)` | | `ADRAY2` | NOT DONE | | +| `(00300)` | `$E38B` | `ERROR` | NOT DONE | | +| `(00302)` | `$A483` | `MAIN` | NOT DONE | some implementation exists, but not connected here | +| `(00304)` | `$A57C` | `CHRNCH` | NOT DONE | | +| `(00306)` | `$A71A` | `QPLOP` | NOT DONE | some implementation exists, but not connected here | +| `(00308)` | `$A7E4` | `GONE` | NOT DONE | some implementation exists, but not connected here | +| `(0030A)` | `$AE86` | `EVAL` | NOT DONE | some implementation exists, but not connected here | | `($A000)` | | cold start | PARTIAL | | | `($A002)` | | warm start | PARTIAL | | @@ -95,6 +97,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on | Address | Unofficial | Name | Status | Remarks | | :-------: | :--------: | :---------- | :------: | :------------------------------------------------: | +| `($028F)` | | `KEYLOG` | NOT DONE | | | `$FF81` | `$FF5B` | `CINT` | DONE | | | `$FF84` | `$FDA3` | `IOINIT` | PARTIAL | CIA initialization incomplete | | `$FF87` | `$FD50` | `RAMTAS` | DONE | | diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 826cc63b74271c7c7984edff63250f4ca1365257..e201428e98e771623dabee586c95e55aad6dee30 100644 GIT binary patch delta 1851 zcmcgseQXp(6rbI_ul7ps)S~6XGGG%B+FDWQQMm?8h!?Uz14KgtWYNUbU}Ayvn!9^@ zq>V_;-kX}OI}~Y?2#Q>8@k)GS%RLg$wA?FEdV|ts^^2C$<;#|=sGuZV)(K)(3{Rm8 zFVZyVHNKI`xb7RNqBR|y(sNdL8t%wLNqrXc>lLg{6T1ASBu|;%tG8B5a&MHD=rlDf z-;QWfmp{<{n*Y!2^ab9X)*jB6Hcx~Tr{pz1dJ z%&GlcBVCO~b?A&yn=tfs*&^LzSf)g$#^kFyj%vSss%=Az_NzbHpBLw+)s>Dp!NbwS zIYqhppC5Tm29e9td+E5Syoqyx&EhUr!K%2#DmAjdb=E-ZEFW#N(oI>3AFSX9nU6ir z%Pm&J9@8t?BkWPVidD1Oib79vqas^i(Clw?i2IaMb#K|?!lmg3=GF*3992ilW{k(U z&zC9+LiU@^0UX3q#iu5n53a$KkHeH>DEVFH#$D#o-M$e&bL*awI{fjB5`$zVd2L2_ z2ja9cioW$q--w%4>Q$qJRh257um-v|7Iq$ecJDKT-ak;rPYsk!c5jGXTBon`UXx$W zs4taG4C;`$l<#cC;EIus-7=kjWv z(=ckYxs)n@6=+TYF(sbP3E6rq$Kt|xa!NdqEQ<%wO2O-zgm!b$?!H_u%tB+qn7{sB zM4xlKNlg_@r5MvZ_Jm%`=F_2J-EXfmC5$tFvx%If3WXDbn|M0<2JD6qw8ER9!XDTQ zH2q+DAG`(op$&EoC!=q}0oWdU2ioCXI0zcN2VwXn@-4g%<(UZR0Pqz=AqE`c&;cJn zCme#qkbo}u5RSk{a1=g6Oe>n=z|n|3ZDhxBzz91;578Z02nX`U%;1e z28Q4)nE%6T%N?SYxhDhzI|H0(_BJ9kdv7&p4`AZQ2f|`$QWUnNI@(2{dC+^kL4K~I zxw*M86%2jfpiLjsv6Uu?u;qM5JDTQoUeD=_X?+)#l7e6qhKlYG!8cmiE(mg{W6*n5 zBi%$W?E@*Bc>|?_#nniqft206t`H&+A`)UF#6<)LkwoIK38D)Z?G8fhf`|&D4OMI| zR4Q-~mrx)I4#{PcM5n`bq`2r6(L?_ADAnW87`UD=W_#YU-j(Qj_(2^{V+ zSsigs^C9I$U!Kz~M97i4u9FDNFJDj6-NRu*&svGw#<;9ET_3WC@0a%sw-fP-T+yrE zvXzT7e^9A?auB)I$eiFz649Whbj7@}!-@2zKPD3r9f|7BQ?9H;FAU2wdy#pKTx45u z#-q5!YO$};%N8<~do&O2v2s+v;(ejdD97p5KJ2|-?7c+;$dC%;!wfmoORx3Oq(xI! zNRlu21#|W_eVurEwYjQO$W6=T3w{6Oyy5cNkqBEdtVh1Uv7!8J9`?}FV~#YEs?V0t zW0vVb+!Ro`xNvaCe76a2odk@iuo)0=LC8*h4$Dij7J@IEty%O>!IvP3}-CG Y7kB{WhI|vzECgWQ-VcqDt#Z=(6D}`#2mk;8 delta 1858 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 T&kJxtiO9O}&el@)`rv;6*#<<7 literal 8192 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 delta 1616 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 diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index f853f83675f0015b12656ee331a5eab09b1aa973..9e443ee8d7dad582a67fbd0daca951a6c5a9bdc9 100644 GIT binary patch delta 2053 zcma)6aZDT68NYjHV}l_+j0q;e@X~C^&;_BeO*D-unj*!W-qJMfMx&+G6*cMsp=yrU0W3hW|VE2u?H7GiT9mD zrD%W6vhMvpzwi5fzwdX?ue-Usxl3gv5eKIf$2+a3TPFAw!0?T73gdgH_2(_8Tjx*k z%Tzr0lq6EoKt2IKIyLt+eVSh+hiBK*YI9j86>B9?@KLc{5~JL3E7LyE%0RVn(syv1 z)Isao80ir0X#ARm;Lz7ru&v9A+Grg_?Q~mXGAMP@x@42|9Bpe%cEV13Zl}Wv){Ewz zi*=6oxbR1@C_{sN!ExHu7mPA*1*Hz(L6_7v?gV%!0L|JVq0LHY?+em4DM;I;Cj5st z;~xtu6Xw~lhn2b}sUuv%YCL){Wl)bpWu!?#b%cxAi#$8ZApJfgpH4oU zl_tqE(|T=Wn_eGr=sV&ZgmluVge8D zz@VER_9o8~+cY#g+r^;yUJt9kY9MJ6RQNiJS&#<1AiyEHs8cG8xdt6`F6z=hH#m}+ z9%b0iRLw}vk6$Y^(u1yvDJE4iF{)}c?v%?~^*bq!{C+yxox=t@UgOpoSRl_fK|Y)A z_X&+EBjCSh@#9^ysyph&BUv!;7|;*Q=-+}xn}P9o7_V^rtz)V0=r|Q1-Wj~*1|H4g zv227RWjCz)XJ<69rry}EvDUJW6yCteH)$yd_}MJ=>Q3Gs=g5n*(g^uNRhfIL6*s;H zJY7H(WybcVy!cYqaO02ea)V9dq{Vs?$$A`8O|GLk8q+AKxJ?2(NsGr)WwDNIjLK|M`M z5PK<&q^`nTY7uk;#Ua4r&;)sX7AV1=wf@0lv6skbR(>D-^t%FND1K6Q%b~&yioK!r;i1GmaFeF!z6a7U*24rdyg5 z3+xLuT|;yMf`xmeZ~tHIbcdczxiMbG5AVSY-7)w8-gEixK#b)NO!JBD1NNZ&JG=jW zjro#a6Nd0{^CV7~>Xa12yB6>{6JK8xPKNqJ&ZGEmX>2axca!oB`%|nx@q;{v%{y=6 z2QpSIN4{EwZ67(GNjzEbf@Ay6CG{aTuB$B1qXVg8?3dFeAF>JgvUfAOYRaE`pR7ufU^YZgrEHD(jf^M&G#qoMe4=z( z@WC%~OKG(O#1~=6|5fQD8*(^d#{W3HAK|9NbZG-yb2Jtme1j@a2)Zqf8U?*7zAAu& z`Fzb+Vdl$q_!oe3W!Y}Db4h--?Ax^sCa5EyE`lo>yaKh?*HB0zg;(6SVAsaG@3STK(bZLdYohphl!@ouN5xJ>+V@37K&}j9o zRN>&Yf4+=T_OnOO+%+NUXa~o;<>$*EWKYQ#$}2+Z3S7Qnq_JPra5`()6$kEK(UDQ0 zu)Se)H{w$8YFDk4Lfr-_$Vzd3lVU|=RpvL<0_B67I(HvlQJmUOP>REVcCWRkCM};ubmVKY$ucd7`X3sBRCxiquRvf^akm z2l!8FR>?anqX~XhdRy`K{szI|JxD3&eHr!kA$%lDb|slm?%=h^dnz&7d`Eu1aw~%4 zak}z@(tq5JmMZ~)4#0Z^Ymb}s44kwVsgBy}sKCrMV8$?hd`+$7f* aNx~#>s4i6nkk^!_tIG2}HG6K~m;Nsn9j&ea delta 2008 zcmYjQdr(tX8b7(05I}JwCK4VY2cZz<+y#j|d`ZJqi&-=upjc)0v=aw{=`g`6n`Z z-Ig|8;L=v@x`YhDUTUUkv90WGZMStOVYb~=m#x#qsgA<#Xm`v_2-iT9v*!jnvv=lx z_jm61o$vQOPwG$VH#w^f&KiR=PB$-8bx955@aR?cAzf~5Xl>fN@5vpgW#_K_&3oz_ zJL=jD+3g2%6L%X6v$Rha7Zl}}9IUCX0ul<-F_@N$Z!DHc zq9ZsKO}(q~f%6tj@q1h%>ij;lynGSPsqwT1+S7JdlsA1%)`R2p8iL zT#6qr!{ueTqVfs673;R))L&xhcAQoE@1_p$ac}>}y`WkF>fyvS`$+IN_43&i1vJmW zs-iEz!a1{_m^9u2mR^51Ko9GbV8tjxYya(m02m8){Yt+W z0QhNT>6np+B^}>_g+CtSm%w0KQzJM<-id?LFYq-tHSK^uz6|+_93=lsQ+-Ya2r7>R zz^NW!>IuyuB-sQvhzB4{$_?E)2^^j zG?PR~xaPT%EF$38ZDSAUh5oYAPW=&J9ITW_lM=Ht-X5$56(Dp15~{a@@+j+w`^Hc5 zSu?pjYbGJVGlPI<0Dm70cl48TTKQ80z@G$mgh1|MM4JUJgA05_TVfC^J*Wnef=E#$ zKT;Aoc-&qIA~lifNY!wo-VCjE{hsEJn(j@YJuTp7-+F)j!kT(8A$`wLk1)a~I8Dgvxv91jk930xpgzWQsYODYApJ z0|nCq1v+>R-#+Q1x#2=?n9(s69A>sM<<26egn8Uq%#<=^CX+*r%$NEMTq3-VxmqGD zR7sGenTMcCk(V(=8q-rj3D<0Ya`+dykl3naOQguQ1sC{h2>1a2tscz*x zw1HcB0uiP@!&yUIH~iiYg&=$oX75T5N)!`yv9cJ&Cj#6SAXnrx`hh2E6`~^(&m_Dk zE91jlEfRPRFhiDiE#oA?s^HHDwB(1BpX9dekM}X7aOZtDjZP0HK}i>zne?(oA-K~a zAD%o)c}(6|cr}3j&J&y1p-_eqn4K5~;=bq!Ao@N3?5)-Zb3m+;DD2L->x=$`@0 zyRbZfHUymKd>dCC)MMzx?&zfTv6SM^k|Fl0B8|EfVE?6fMiW5Qc$M}$k=EcG^2!#5 zR2JqIx8kl_A8WYkRDQI<;*JTY!cXYy#=%WQRWBgKc= zGs%yss)Dd3jAr@&&jg~$06UwU!#+^wD4>0wl=yEPcEny_sTujQ?J{7CGgK2fDy5{> z6>?toCECH{+Z1dFO<%k04VpaIr!lx}RGw_yl2@xv4~>7C{>Zm}Z0g5XDWCMhOVq-Y z$u2wWrr`;;CuRF{eIYXc95c?m=fH1Jb9V4LJ@-18`%yCIeF_bSIAF6;F3DUT?U8t; z4jDWV@=)FchvW?#wR)m`H1aKrChI*h#Do$};(j&}Psqonrshlf*oM@jja?x}oU4uU z(U2gyYyTQjxmwo{bhWG@t!v*JDs>sxkj~W{MQkWlLp-LWRiL!b!Ylt=N)1P^X0M`ub?G^ttCaj>A>f^p^mkwJD;lx6199q z?5!_GN1AGh?g&(e$(lR}_s2r1K)!G!0P&JT<{W*B8Fk0P8~2blBJNO2RMirmk>Ars zspN4p-bbb44iP4UxNn4MZw91%0{cQn7DdM9&5W;P~P{F>a z$;#3QXtN(37f`E!vP0<1JPIwL#vn2a=xZJg35X2aCmJnvWuCpGNr@d5&V;x4{|8uu BavuNy diff --git a/c64/aliases/,aliases_ram_lowmem.s b/c64/aliases/,aliases_ram_lowmem.s index 4dfdefcd..7979fff0 100644 --- a/c64/aliases/,aliases_ram_lowmem.s +++ b/c64/aliases/,aliases_ram_lowmem.s @@ -12,8 +12,8 @@ // // $02 -- UNUSED -- free for user software - .label ADRAY1 = $03 // $03-$04 -- NOT IMPLEMENTED -- - .label ADRAY2 = $05 // $05-$06 -- NOT IMPLEMENTED -- + .label ADRAY1 = $03 // $03-$04 + .label ADRAY2 = $05 // $05-$06 .label CHARAC = $07 // [!] our implementation might be different XXX give more details .label ENDCHR = $08 // [!] our implementation might be different XXX give more details .label TRMPOS = $09 // -- NOT IMPLEMENTED -- @@ -170,7 +170,7 @@ .label DELAY = $28C // -- NOT IMPLEMENTED -- .label SHFLAG = $28D // bucky keys (SHIFT/CTRL/C=) flags .label LSTSHF = $28E // last bucky key flags - .label KEYLOG = $28F // $28F-$290 -- NOT IMPLEMENTED -- keyboard decoding pointer + .label KEYLOG = $28F // $28F-$290 routine to setup keyboard decoding .label MODE = $291 // flag, is case switch allowed .label AUTODN = $292 // -- NOT IMPLEMENTED -- screen scroll disable .label M51CRT = $293 // -- NOT IMPLEMENTED -- mock 6551 diff --git a/c64/basic/basic_adray1.s b/c64/basic/basic_adray1.s new file mode 100644 index 00000000..879a6bce --- /dev/null +++ b/c64/basic/basic_adray1.s @@ -0,0 +1,5 @@ + +// XXX provide documentation and implementation + +basic_adray1: + STUB_IMPLEMENTATION() diff --git a/c64/basic/basic_adray2.s b/c64/basic/basic_adray2.s new file mode 100644 index 00000000..dbdd00c1 --- /dev/null +++ b/c64/basic/basic_adray2.s @@ -0,0 +1,5 @@ + +// XXX provide documentation and implementation + +basic_adray2: + STUB_IMPLEMENTATION() diff --git a/c64/basic/basic_cold_start.s b/c64/basic/basic_cold_start.s index 38d9cefb..01928aef 100644 --- a/c64/basic/basic_cold_start.s +++ b/c64/basic/basic_cold_start.s @@ -6,11 +6,27 @@ basic_cold_start: // Setup vectors at $300 ldy #$0B !: - lda basic_vector_defaults, y + lda basic_vector_defaults_1, y sta IERROR, y dey bpl !- + // Setup misc vectors + ldy #$04 +!: + lda basic_vector_defaults_2, y + sta ADRAY1, y + dey + bpl !- + + // Setup USRPOK + lda #$4C // JMP opcode + sta USRPOK + lda #do_ILLEGAL_QUANTITY_error + sta USRADD+1 + // Print startup banner jsr printf // XXX don't use printf, keep it for debug purposes only TARGET_HOOK_BANNER() diff --git a/c64/basic/basic_vector_defaults.s b/c64/basic/basic_vector_defaults.s index 5f2f5943..a12d2275 100644 --- a/c64/basic/basic_vector_defaults.s +++ b/c64/basic/basic_vector_defaults.s @@ -6,11 +6,16 @@ // - [CM64] Compute's Mapping the Commodore 64 - page 318 // -basic_vector_defaults: +basic_vector_defaults_1: - .word ERROR // IERROR - .word MAIN // IMAIN - .word CHRNCH // ICHRNCH - .word QPLOP // IQPLOP - .word GONE // IGONE - .word EVAL // IEVAL + .word ERROR // IERROR + .word MAIN // IMAIN + .word CHRNCH // ICHRNCH + .word QPLOP // IQPLOP + .word GONE // IGONE + .word EVAL // IEVAL + +basic_vector_defaults_2: + + .word basic_adray1 // ADRAY1 + .word basic_adray2 // ADRAY2 diff --git a/c64/kernal/cint_real.s b/c64/kernal/cint_real.s index 23452e08..a312cf6c 100644 --- a/c64/kernal/cint_real.s +++ b/c64/kernal/cint_real.s @@ -56,6 +56,13 @@ cint_pal: !: sta TVSFLG + // Setup KEYLOG vector - XXX is it proper place? + + lda #setup_keydecode + sta KEYLOG+1 + cint_brk: // entry for BRK and STOP+RESTORE - XXX, where should it start? jsr setup_vicii diff --git a/c64/kernal/setup_keydecode.s b/c64/kernal/setup_keydecode.s new file mode 100644 index 00000000..d6010685 --- /dev/null +++ b/c64/kernal/setup_keydecode.s @@ -0,0 +1,5 @@ + +// XXX provide documentation and implementation + +setup_keydecode: + STUB_IMPLEMENTATION()