From 99a292530656d9d1e57d28ab2c96f70541d02ce8 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Wed, 7 Aug 2019 22:13:08 +0200 Subject: [PATCH] IOINIT now silences SID chips, up to 4 supported --- Makefile | 4 ++ STATUS.md | 3 +- 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_hardware.s | 70 +++++++++++++++----------------- c64/kernal/fda3.ioinit.s | 22 ++++++++-- 10 files changed, 56 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index 739ada5d..a6a214d8 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,10 @@ TOOL_SIMILARITY = build/tools/similarity TOOLS_LIST = $(TOOL_COLLECT_DATA) $(TOOL_COMPRESS_TEXT) $(TOOL_PNGPREPARE) $(TOOL_PREPROCESS) $(TOOL_SIMILARITY) +# GIT commit + +GIT_COMMIT:= $(shell git log -1 --pretty='%h' | tr '[:lower:]' '[:upper:]') + # Rules - main .PHONY: all clean updatebin diff --git a/STATUS.md b/STATUS.md index e11de2dd..fa58b42e 100644 --- a/STATUS.md +++ b/STATUS.md @@ -6,6 +6,7 @@ Here are the features of the Open ROMs not found in the original ROMs from the 8 * improved keyboard scanning, supports multi-key roll-over and rejection of spurious joystick input * joystick (port 1) can be used to move text cursor * uses RAM under ROM and I/O: 61436 bytes free +* cold/warm start silences 4 SID chips - assumes addresses $D400, $D420, $D440, $D460 * extended `LOAD` command * start/end addresses are displayed, in the Final cartridge style * command with just the file name tries to use the last device if it's number seems sane; otherwise uses 8 @@ -71,7 +72,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on | Address | Name | Status | Remarks | | --------- | :------- | :------: | :------------------------------------------------: | | `$FF81` | `CINT` | DONE | | -| `$FF84` | `IOINIT` | PARTIAL | at least SID volume handling is missing | +| `$FF84` | `IOINIT` | DONE | | | `$FF87` | `RAMTAS` | DONE | | | `$FF8A` | `RESTOR` | DONE | | | `$FF8D` | `VECTOR` | DONE | | diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 29d891b14b253a4c8bb483069f8d0b857bb2b031..82c768bfabff2a51bd13ec0e3b045336360ec807 100644 GIT binary patch delta 2131 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 S)VhQhG32)}cV4Y|rTV{8VBCrT diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom index a72bf16dec2554796fc9a9aecff28a81c3081bd4..911bacab8c131069e70af5472545df8c2ab3311e 100644 GIT binary patch delta 2401 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 xu*nFIQa^oJFzgtay< z{KZ{Cr<*@3rv&(2E_{Q)ef#Mmy=4+9JM`h>$6Y>GH(V~l8?$ioGQ4TRTP8?0$R%jD zA#H(X!Am)K*@i;}c(w!?3wEK`g8dfUXu}>Gp0&f@6~fDf@Jb;}gzzdM+$@A|Lq?PU muco6}cs&~q2;n<~@SOs57NFOL4cYibg`*tzOKU@EyY+v<>heec delta 1963 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 xu*nFIQa^oJFzgtay< z{KZ{Cr<*@3rv&(2E_{Q)ef#Mmy=4+9JM`h>$6Y>GH(V~l8?$ioGQ4TRTP8?0$R%jD zA#H(X!Am)K*@i;}c(w!?3wEK`g8dfUXu}>Gp0&f@6~fDf@Jb;}gzzdM+$@A|Lq?PU muco6}cs&~q2;n<~@SOs57NFOL4cYibg`*tzOKU@EyY+v<>heec delta 1963 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 xu*nFIQa^oJFzgtay< z{KZ{Cr<*@3rv&(2E_{Q)ef#Mmy=4+9JM`h>$6Y>GH(V~l8?$ioGQ4TRTP8?0$R%jD zA#H(X!Am)K*@i;}c(w!?3wEK`g8dfUXu}>Gp0&f@6~fDf@Jb;}gzzdM+$@A|Lq?PU muco6}cs&~q2;n<~@SOs57NFOL4cYibg`*tzOKU@EyY+v<>heec delta 1963 zcmY*aeM}Tb6u;X8P7V(i3U#f5Q)4SMwqm1^5>p^jJjwH$G|*@}sWG`U8jXKc(?sxt zqtp*PyR-!ol&rUwHPW0#f>1SbNevKdE;hAR+GrY%#ETru-tK8dyuMk$+RJ6;z4x1W z@6G$YnLSv1u-IRc$X$zys}t8d?NO)?x!cM8C~Vcl(}{~0+%x>?^6#WQ?#&{<4(Gbt z-RBGFj08=c!-<;`9AAc^IxI-r+QQ<6^c=D*Y{B21aeH(`EgZieJu=oEYB7fNx{$@P zN<9-24>;yndGQ;^!o>d3^H=-DD~>WTDP@zjQmjnLu~v5OOL@;azxt7@;~1CE1yfu~ z!ii&?+YP%PxuNM(}_Rg{P2U#Ys;$Eu3uw;Z4qXG4JD;aMVXXs-ms1=vd96lV@&P?99sE422^bL z&y1Mjgxhf?t$?2E^92M-KG&dBV`GJeaT1j5;IJ~kfSyq84PsYn>8A2AqT6vFl#UH> z!FdGr857wujiH6Xs&`&qTKg32nVg=VU!0uUO>W28y5Gd|w4$VYhSvs7;>ol{a~G&1 zLCj-CNWP&Cb?oB?oWYf3Nr)tiH`8*n7N`PspBEG-MTm5xS%nrcnO|Px5$pPD17xd4 z0-D^L_YBK-Izmz-axcj@y+;%aX^mnWUxWll%^9&#-INsS@sYjL=(Fj0-#B8$+PNN; z^YoFIwE!uIOc~HwggL80;W-l;BC(Uk|Lb3zOKo2xjvw|P4!_cZU~`fHoyZq<%O!Uo`Qv&mGcCihG+g`F7C zkSyReye8sD>Fdfd^^%xZAWLKHkGW0>Q*ud+>|qCx?6R-i;u%CWdUkP%Q)KyVNLT-L2cLxpX|CjOQS+x9;>|lbcr$vV zNuULkw1pIl=cW>ul3GP>kbmmABxN=n=cLqzI!AxIN!cfe89Y zBOGR@PM&oF2OfvK`#4Z$B1{`&!((O=i?T=!EDP_-b2lcX8mv)l zm{D@E#|L|(QbtEc@Ry9BI)U?G(4g3Rj{1E2A5~oN31i4SEpi`X9l$F4k_!S)b+7%0 zL)?YK9BnwnHQ?m6U#JzYW;y4phVscw@t;M_R9_@6j%H;S$)}LS1SO79Fv%B;J%I0{ zaxXrO2_4^YRQ593%!DZdGqMUh#HFw1d@Sg0=6UMqOej|WVW(7zaIrIP!$0+0uI;Jo zrJnBED|J7y>jnG9+cN6;N!sRMBW}x|U?V?4+vZBS6koSuPb;Og(>g~=I>ld@r7V_~ zdaQL8@mlsmTgadntrx8|P!@%=lhE}L3d2wohK(@@7;wvgjRq7OfFHpvG02O-7dlV_ z@ZHKcU{r@L1LnnGVGQn!1AbpeR45z={J