From 9529d0589dd9b40bcea5af388b1baf499ee61421 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 28 Jul 2019 20:27:33 +0200 Subject: [PATCH] updated documentation and pre-built binaries --- CONTRIBUTORS.md | 2 + STATUS.md | 87 +++++++++++++++++++------------------- 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 8 files changed, 46 insertions(+), 43 deletions(-) create mode 100644 CONTRIBUTORS.md diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 00000000..2bb826fe --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,2 @@ + +Although the project itself is LGPL3, I (FeralChild64) allow to redistribute my contributions to this project under any OSI (Open Source Initiative) approved open source license. diff --git a/STATUS.md b/STATUS.md index 5132287c..286da229 100644 --- a/STATUS.md +++ b/STATUS.md @@ -30,8 +30,7 @@ The following ROM features are currently missing: Features currently being worked on: -* IEC support - +* IEC support needs more testing ang bugfixing; alternative drive ROMs (JiffyDOS, DolphinDOS, etc) usually don't work with current implementation, `@$` leaves the drive led on, most likely other problems can be found # API status @@ -67,49 +66,51 @@ Note: only the jump table addresses are currently supported, real routine addres NOTE: Even the 'DONE' routines won't support features described as missing in one of the previous chapters! +
-| Address | Name | Status | Remarks | -| ------- | :----: | :------: | :-------------------------------------------: | -| $FF81 | CINT | PARTIAL | at least PAL/NTSC detection is missing | -| $FF84 | IOINIT | PARTIAL | at least SID volume handling is missing | -| $FF87 | RAMTAS | DONE | | -| $FF8A | RESTOR | PARTIAL | CBINV, NMINV, and USRCMD missing | -| $FF8D | VECTOR | DONE | | -| $FF90 | SETMSG | DONE | | -| $FF93 | SECOND | DONE | | -| $FF96 | TKSA | DONE | | -| $FF99 | MEMTOP | DONE | | -| $FF9C | MEMBOT | DONE | | -| $FF9F | SCNKEY | DONE | could be better integrated with ROM (aliases) | -| $FFA2 | SETTMO | NOT DONE | | -| $FFA5 | ACPTR | DONE | | -| $FFA8 | CIOUT | DONE | | -| $FFAB | UNTLK | DONE | | -| $FFAE | UNLSN | DONE | | -| $FFB1 | LISTEN | DONE | | -| $FFB4 | TALK | DONE | | -| $FFB7 | READST | DONE | | -| $FFBA | SETFLS | DONE | | -| $FFBD | SETNAM | DONE | | -| $FFC0 | OPEN | DONE | | -| $FFC3 | CLOSE | DONE | | -| $FFC6 | CHKIN | DONE | | -| $FFC9 | CHKOUT | PARTIAL | | -| $FFCC | CLRCHN | DONE | | -| $FFCF | CHRIN | PARTIAL | | -| $FFD2 | CHROUT | PARTIAL | | -| $FFD5 | LOAD | PARTIAL | * work in progress, no VERIFY support yet | -| $FFD8 | SAVE | NOT DONE | * work in progress | -| $FFDB | SETTIM | NOT DONE | | -| $FFDE | RDTIM | NOT DONE | | -| $FFE1 | STOP | PARTIAL | no connection with UDTIM | -| $FFE4 | GETIN | PARTIAL | * work in progress | -| $FFE7 | CLALL | DONE | | -| $FFEA | UDTIM | NOT DONE | | -| $FFED | SCREEN | DONE | | -| $FFF0 | PLOT | NOT DONE | | -| $FFF3 | IOBASE | DONE | | +| Address | Name | Status | Remarks | +| --------- | :------- | :------: | :------------------------------------------------: | +| `$FF81` | `CINT` | PARTIAL | at least PAL/NTSC detection is missing | +| `$FF84` | `IOINIT` | PARTIAL | at least SID volume handling is missing | +| `$FF87` | `RAMTAS` | DONE | | +| `$FF8A` | `RESTOR` | PARTIAL | CBINV, NMINV, and USRCMD missing | +| `$FF8D` | `VECTOR` | DONE | | +| `$FF90` | `SETMSG` | DONE | | +| `$FF93` | `SECOND` | DONE | | +| `$FF96` | `TKSA` | DONE | | +| `$FF99` | `MEMTOP` | DONE | | +| `$FF9C` | `MEMBOT` | DONE | | +| `$FF9F` | `SCNKEY` | DONE | could be better integrated with ROM (aliases) | +| `$FFA2` | `SETTMO` | NOT DONE | | +| `$FFA5` | `ACPTR` | DONE | | +| `$FFA8` | `CIOUT` | DONE | | +| `$FFAB` | `UNTLK` | DONE | | +| `$FFAE` | `UNLSN` | DONE | | +| `$FFB1` | `LISTEN` | DONE | | +| `$FFB4` | `TALK` | DONE | | +| `$FFB7` | `READST` | DONE | | +| `$FFBA` | `SETFLS` | DONE | | +| `$FFBD` | `SETNAM` | DONE | | +| `$FFC0` | `OPEN` | DONE | | +| `$FFC3` | `CLOSE` | PARTIAL | most likely incompleete, @$ doesn't end properly | +| `$FFC6` | `CHKIN` | DONE | | +| `$FFC9` | `CHKOUT` | PARTIAL | | +| `$FFCC` | `CLRCHN` | DONE | | +| `$FFCF` | `CHRIN` | PARTIAL | | +| `$FFD2` | `CHROUT` | PARTIAL | | +| `$FFD5` | `LOAD` | PARTIAL | no VERIFY support yet | +| `$FFD8` | `SAVE` | NOT DONE | | +| `$FFDB` | `SETTIM` | NOT DONE | | +| `$FFDE` | `RDTIM` | NOT DONE | | +| `$FFE1` | `STOP` | PARTIAL | no connection with UDTIM | +| `$FFE4` | `GETIN` | PARTIAL | only some devices supported | +| `$FFE7` | `CLALL` | DONE | | +| `$FFEA` | `UDTIM` | NOT DONE | | +| `$FFED` | `SCREEN` | DONE | | +| `$FFF0` | `PLOT` | NOT DONE | | +| `$FFF3` | `IOBASE` | DONE | | +
### Unofficial Kernal locations diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 03de6613748c144323724a5c6387d7ee08b6c64c..eeacf26d0890b752594523e8702d2bde4200c278 100644 GIT binary patch delta 2218 zcmcf?TWlLub{?LLT_>?yB_${h(E-L>XRPEm1q1aR{Ok zUwo|Wx#!;Vy61fl^d9KtUn@>n{85hmT#~u1!j2qnH>9t)rgY~h-9$FiF4B#LE!rc* z9Uga%%8b&3_E@IBr#%h(0%VZJ_c3I@(j#+dj3b*${@R5PE1vm|b@lHr*4AG!D@M;$ z=sOEn^E@@i1O9n4y@0-4yqf%fJEecM^p9VOR$9ogw1^x*lb+02gAl?WbN2NBLey@{ zM(r-Mx?~Ny%{Fp3;3snEIf|w{#9LWDjsHe{`I+1}!`W@l{o||;`f-Y)^%kvnd3>`$ z>+E1ufMncikVzc=kH##DgR~MsAy5Q6nVIf$>(GSfM9{JY)FFl|;WN1;=vSCbTWE^m zP`x$h`~dnjMxB(?NwC?shqui86$Vt9{UB`K=`RV{EBUY&)PU-!uR1&($X+;4I??X7LlMv|ZS+>|IquV0NldaxSE_I@n4Xp_ThkmEICIa&U5m#%(^` z>HzVG8=Cf<(Ik2}?|-;2Um8hR9Tf#hpQB-4tv-^#-FYfHTr3H;1xeV?!={4NSG7ER zI`1D&=kcn7^kh}ta@ft}=cs72zD=tNvyko6dFe=1+uE6YF6>5f!4nJ{iX39t^FjP( z-WLUd_eGb-&*!C!Rqg3cQ#+t`o%LJ}WV0SzIf0&2Ac7qR`bM$W0B5^F2g%!XKRLO8 z@#9d1E-UzG;rs+1DnLOGO`@ZgS^L{EB$J@)gpaPPpdFFckrVjif?AiWcLEA42jRxX z)mB!hWP7OPg;w-^f!;)VXfuh!Fp(z3wcI*G`a)dE%@-t3O!S}9&<`T|TEib`Hs>@V zI4`2mXTQ(@f($i9LTz?emfKf_>#f9a zLStkB!j_5tl#;Kp)7koj!Zl2B?6a@v$2c}K8~r|oJM~N^vt&A*{URl=U*HKeOfl@U zWBM@=t?=y9rB$KpRy?B5MlZ+=WWy0k(*fs_pO-ejUhWP3S$ZI{Aq^80QeGLRW86y& zTN#@1afT&5_>2yX!Mw1MbPOkCW<<9-+#tvfL)m?o(vxV)f_D7KGw1CZH+r@&D=5qH zYo=fHxO;R+^v4BqmMSb%&oPgk`%-j%d|!0tDlJDv_g(ZNmHxTpPrWcj28pPOzy|{S zoO5YNM4cuo>n4x3npAu*=<;Z95qFJ3atAez><8FG;+j{P?^0*@u_8KQl%XfIBtgXR6 zjj3g414R0IJu#Bdj*|}fHV!wXb=gB7s;NTCe!0;RF0K!da>+RfAu2gNZj}e8a?-_`zsKT5MSNr6)t$4^|Dkvh z{xYvH4Q~uQwe!`1xlHsDP3?V%q-e_Fz=rXzN!DX@wgrZQgD`cS_$aS$j9syg!1q+h9rQpsCr>}!u{ zxA$+`@>g*G_k#hG9Qya^=nb*)ar%g`SJ(}61Rke|?K%IY1Eh}bA@yKFr@2@tV2v3D oQ=rzeJZ?6ma&-GO>g3s=$tl4kI%xQTy$*w$4aVzRmTs>78SRViZU6uP delta 2037 zcmc&!eQXnD7{A`FyLM&km26NLjMp)N!8R(%pj0*y`6%%69mFq4S0r}H;y*wL5F9~n zj%lFqLNW$ubM(FLIs7mg!<&7)ibfNe%^@)qnh(>FywFZY* z#3PJUgKlY>`Auuw^*Q1`T3gSE`=y!)i!QL@!XESO!)?+|ZEouM=PT{YzhxDv_1W)| z*z-2uchKbA)L^`ERQwri{+H*q|KM2iiFJ{`JF3qPSL&WHuloSD?kMdyN)m!aby-9n z)ymYS3t?KSC9Rj%cCw9^-yUDTGgQJ-3QINy)?9`7G?p`Qk=XpQdv(N zTE^%Ipc%6H#}nnAR)4BG8z5j>xa$kzt$xhOls8y!Kw(6i=zyFM6Vn-E19cdahA6LF z(wvg1P)2&uS=rQ{mGPh)wOwW`cIRovGH3(GtQ#m=WY?%mPA?esDhybYe%>>^MUFbs z&S$;w0oe@IA`ji*(;QwUlbN=8FWycn2W8(tCe4CxI0K?(5#fipl>tUpL%{;7+4>+ zN)zx5?Ht1nVH|JbRfg4(;gZZAI+w8w{m2`?-r$X)Y+TBxyV0hoY2yhm))#7vC@+#D zj)K)dk$oaB^WX*U+>kNc#G~6u^j1>i&|s4CU)$0gx}LzR;y|E%3M=l1wMMK}GTDhY z%EhB9+?*T}rkBcH12&D7Y=Oh`#p)J+glUbZs?#>OTMIPlFQIsV+;X(dhjH2y7-JXA zQ435^XtC^wJ?`P~1}(yY$lnaFcnI~iXZxIJ@AH1^5>PnnK#`5y~=P>rw;w(HXGcD>r{6Dg;b*D z&-QFhz!q&y&^lw9NeJ&fk9$W@3_^Qw7lZZ8so+qvF&ySlB7ue_JdNZPygqNUIfVK$ z(hF!ar9O!4gc_oiYY{_z@h(K_KFZc$0C(`#8k_Ba<+W@1)^)~#Q*7HwR& zW>W=X(1j#j;JsTJr{23&W2i}`kQgo{1I`lCpEt{dVJ;cp=!hTcr+v z9KClTBsyrN_pU>%q*eDAvC182@n<1bUIB1Jafp_!M)ty^3X{9iNShfg6I-%z*{iGJ z?*EPikbFhFVKUb+g=;9`8W7h|$~Ba64P=6Ayw|SMcda|Db?NNTf+`um(V$pJw~Ivp v!tLZ3V}Ny<11JYH4Rg3zB>~r37rL*S_)f)eTgQ3mozK5>%`G4Uu2260R~TZ; diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom index 3569d43b1404f7907c216ea92c2c50c655fc6ccb..26fe93850970a05ad1f778df21c788e885132d7e 100644 GIT binary patch delta 2065 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 QqIY8yM^QsYQ=vuwFQHs1OaK4? diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index 28d6bb76b3aa0640845792716dbfa80a92969813..35157ebb75a702d8f62c7725afdd241f8a9e1b2c 100644 GIT binary patch delta 2307 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 QqIY8yM^QsYQ=vuwFQHs1OaK4? diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 28d6bb76b3aa0640845792716dbfa80a92969813..35157ebb75a702d8f62c7725afdd241f8a9e1b2c 100644 GIT binary patch delta 2307 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 QqIY8yM^QsYQ=vuwFQHs1OaK4?