Cyberpunx Action Replay Y2K refit.
History and TO DO-List
ATTENTION!
The order of the list may look stupid at first, but when being used to older
revisions of the software you will like it quite a lot as it has a chronological
order of the changes. This order also gives me some motivation ... How ? Well,
whenever there is no sentence to add somewhere in the middle and nothing is left
at the end of the file, we are virtually DONE ... Maybe never happens ... :)
Beta 1 (unreleased)
Beta 2
Beta 3
Beta 3.1 (important bugfix)
Current Workflow
To Do
32 KB REV. Beta 1
Stuff that was REMOVED completely:
Printer Dump on Freezer
LOADER Saving on the Utility Menu
Novaload Transfer Message. bah
Tape Slideshow
TAPE Parameters. DISK (E.*) is still there.
Are You Sure ?
Stuff that was ADDED, PATCHED, FIXED, IMPROVED:
ZAP is back ... FUCK CBM :))) (See Section 6.5)
SAVELAND in Freezer. Check it out !
Various changes on the Texteditor (Check the F-Keys)
F4 setting on the Fastload Toolkit now changes Devices, not colors.
SHIFT-Run/Stop does %0:* (CR) and loads directly off Device 8 on powerup.
File and Disk copy can be quit using R/S on the menu aswell.
@H will re-read the drive buffer and displays the correct header without @I.
@= checked for 1581 and 1541 - FD uses the same ZP addies. Should work.
Various changes on the monitor affecting:
Fill, Compare, Assemble, I/I*-Display and Set/Clear Freeze- and Breakpoints.
See Section 7.1 and 7.2 !!!
Pokefinder now searches for any value between 1 and 255.
New Keys at the Powerup screen (See Section 1.4)
d011 speedup on reset and config
Saveland Bitmap Saver fixed ... silly bug by myself
32 KB REV. Beta 2
All Tape occurences removed. Loading from tape has to be done using the kernal functions now.
Sprite Viewer removed - The Editor will be added as soon as it's finished
A newly introducd bug on the F4 key removed ... leading into a side-effect:
new disk-command function added: @#(device) changes device without reading
the error channel.
Fixed all disk command related operations to work from device 8-30 (I hope)
Found the Collision Killer to be faulty. Basically it was always looking for
BOTH collision types, instead of the chosen one ... FIXED.
Toolkit,Freeze Save Menu and device changes in freeze menu are now changed to work
on device 8-30 aswell. These menus will scan the IEC bus for available devices
though. If it fails on one of your hardware pieces, lemme know.
The state of freezing (Monitor mode or menu mode) is now remembered correctly.
This means, freeze, Monitor, Exit, Restart and Re-freeze will take you to the
freeze menu, instead of the monitor.
On the other hand, freezing a program started from the freeze mode monitor (G, G XXXX),
will take you directly back to the monitor. ... okay ?? :)
Wildcard Hunt for monitor added (See Section 7.0)
Fixed a bug I made on the fastformat option. Although this was in Beta1 already, nobody
complained about it ... great
- Great News !! While trying to fix a loading problem which only occurs on 41II drives
and sorting out all the stuff for the webpages, I found back an NTSC rom image.
Fixing the current code to work on NTSC took me only an hour, but I am not able to put
PAL and NTSC into the same rom. Anyways, it's a few bytes fix and now we are WORLDWIDE. :)
/$ %$ and other load commands acted like LOAD"$",x,1 ... fixed to display dir now.
Minor fixes on monitor and basic behaviour
Fixed the device change lasting forever bug on no-drive systems :)
32/64 KB REV. Beta 3
Although, there are some bugs left, I evaluated the source code to 64 KB romsize aswell now.
I made the necessary changes towards the bankswitching routines, and they work fine.
From now on, there will be up to 4 (!) different rom-sets available.
32 KB PAL and NTSC aswell as 64 KB PAL and NTSC.
While the 32 KB versions are perfectly suited for emulators AND real Action Replay hardware,
the 64 KB version will need the new hardware (Check here) or a special VICE version.
Implemented FIND !!! Thanks again to Arndt Dettke for the sources.
The MANUAL contains a closer look at the command.
Fixed the fastsave routine! Now filling a disk with 664 blocks works fine.
Changed the monitor-internal directory routine to go by the same routine used by the
ordinary fastload (F3 on direct mode). This changes:
a) the monitor directory display doesn't reset to the root directory on 1581, but displays the correct sub-directory which you expect.
b) command stacking using $(device8-30) works aswell (but not much further).
(very little c): saved some bytes.... :)
DEL command (in basic) fixed to work again. Was broken on Beta 2 already, but no reports.
Is nobody using basic anymore ? :)
added TASS... * 64 KB only *
using the basic command TASS envokes turbo assembler 5.2 (some autodrive hack which has
more or less proven to be stable... hehe).
mainly just the program is copied to $9000-$cf00 and called with a JMP $9000.
nothing is optimized or added in an AR way at all.
the good thing though: killing tass and re-envoking it doesn't kill your source. ofcoz. :)
fixed broken filename on saving koala pictures
added RENUMBER for basic toolkit
fixed the MERGE command to work again. was broken on Beta 2 due to a resource bug.
made the POKE function on the freezer accept hex/dec entries. possible combinations are:
any plain decimal combination as used in the original basic command
combinations of decimal and hex like: $ff,250 - 4096,$fe - $fff,100
the hex numbers are checked here for correct size. the 16 bit value before the
comma can have 1 to 4 chars, the 8 bit value 1 or 2 chars.
complete hex entries - incorrect entries will result into an errormessage or will be ignored.
After FREEZE+RESTART channel 3 of SID always disabled - fixed
Added a little delay loop before checking for CTRL and CBM straight after reset.
Mainly to be able to press one of these keys before the emulator has finished the
reset. While CCS allows to have a key pressed during the reset routine, VICE doesn't
seem to have that option (yet).
A deeper digging into the freeze routine made me check the $dd00 related part of it
aswell. (Thanks to Krill/Plush for some hints and pointing me to an obvious crap up.)
Basically I changed the behaviour of the screen switching routines and of the reset/
freeze-setup routine to not touch the upper bits of $dd00 to prevent freezed loaders
being crashed when restarting. This doesn't happen to all loaders and doesn't happen
always, so it's a little tricky to play with this. Nevertheless stability on freezing
wicked stuff should increase a little. On the other hand, I might have fucked up
somewhere ... :) ... test, test, test ... :)
- Beta 3 Test Release -
OUCH - FIX :
broken J command fixed !!!
added a new monitor command: W (no options)
This only works in freezemode monitor and displays the freeze and breakpoints to you.
Freezepoints are colored white, breakpoints are colored gray.
a disassemble of the shown locations will show you the jsr $dxxx for the freezepoint
or a BRK and (if set basically correct) 1 or 2 junkbytes, which are leftovers from
the original command. Nevermind, when restarting programs the locations will be reset
to their original value and the program is restarted as it should be. Just make sure
(as noted in the manual) to pass the freezepoint correctly and not crash into it.
The JRS to the Freezepoint may be changing depending on the version. You can assemble
the JSR manually, but should check for the correct value using a normal SF (Set Freeze)
on the freeze mon.
Improved ZAP to work much better. Now the adresses from $0800 to $0803 are restored
after zap, while clearing of lower pages was improved. This leads into basically this:
load a program with fastload, zap and run it ... improves compatibility a little more.
BEWARE though, the pointers for basic program ends and variables will not be set,
so I recommend to load very tricky basic stuff without the fastload and after a ZAP or
normal reset (only if the program refuses to work with AR/RR all this applies ofcourse ... :) )
- Beta 3.1 Test Release -
Current internal work flow:
Fixed a very interesting bug reported by NINJA.
You may try this on any Action Replay: A1000 SED in monitor and RTS in the next line.
Now simply G 1000 and watch the funny output of the register line.
After GO in monitor the Interrupt Flag and Break Flag are set when returning to
monitor. This ain't fine behaviour really, but for now I'll keep it.
The Break Flag will be cleared when a program is started and the IRQ flag is mostly
fine aswell. Just CLI it if you want to make everything 100% sure.
In FREEZE mode, all flags are handled fine. (It seems. :))
Fastload Bug located. I replaced the GCR routines which were used from the Floppy ROM.
The Fastload works fine on stock and JiffyDOS drives and aswell on SpeedDos Drives.
Testing on other ROMs is recommended, but whenever your old cart worked fine so far,
the new routines should aswell.
Another bug discovered by NINJA. Under certain circumstances after loading
a program into areas from $8000 to $a000 for some reason hex-pokes from
basic cause a syntax error. This also applies on old revision of the cart.
Ninja also found the bug on the old cart rom and reported it. GOOD BOY !!!
Removing a little routine which was originally meant as a variable overflow protection,
fixed the bug. I couldn't find affecting code so far, but that doesn't mean much.
OLD routine patched.
The old routine was patched to use an own $a533 routine, which would elsewise cause
a crash on lines with more than 250 (or so) chars.
The code for the patch was supplied by Frank Kontros along with the bug itself.
Fixed the bugging format routine on 1581 drives.
The cursor color is now adjusted to the current background color, whenever it is
supposed to change (e.g. on entering the monitor). Before it was always set to white,
which can be annoying sometimes. WVL/Xenon inspired this intelligent idea.
Fixed: crash on some disk commands when no drive is connected.
Most warploader/saver occurences removed.
REU and SilverSurfer compatibility gained !
After quite some time, which was mainly spent on the FlashUtility, more debugging all around the place and
optimizing and restructuring the source-code, we finally have the first working developer-ROM.
Currently we are testing and debugging a lot, so no detailed list here, just the short version:
User-configurable area defined - the FlashUtility will allow you to change some aspects of the ROM here.
when reading blocks above $9f, the drive reports syntax error instead of illegal sector.
Doesn't work on e.g. FD drives properly therefore - should be fixed now
renumber moved to the 32kb ROM, so it will be available on updated ARs aswell
added simple detection routines for SilverSurfer - still need improvement
fixed a bug when freezing an already frozen computer which lead to a crash
added a new RR-RAM access API for the developers.
TURBO Fastloader works now in freeze-mode on RR hardware and 64kb ROM versions!
many small glitches fixed --- too much to write in detail. :)
fixed the drive check routine (to be upspeeded on IEC routines re-work)
added Copyfaults (I)FLI-Ripper - PAL/NTSC fixed
SPLASHSCREEN added !
What ? Yes - on CBM & F1 you can swap $0400 - $0800 with the RR-Ram.
64kb releases even have 2 buffers available on CBM & F7 and F5 !
We hope you know what you can do with these. Scenario description on the manual.
On first powerup there is crap on the swapped in screen. On reset it won't be filled
aswell. This way you can even use this as a reset-proof ram-disk.
Check the comments on the manual !!!
RAM-Access routines fixed to behave better (Real Hardware & Emu Tested)
$AE/$AF - the pointers to the end adress of a loaded program aren't destroyed anymore.
This way packers and programs relying on this info should work better now.
INFO - Basic Command added. Displays Revision and Owner-String
Preferences area utilized with the FlashUtility - if the ROM is detected, you are
able to edit the Preferences. Requires FlashUtility 0.05+ and RR 3.8+
fastload for 1541 checked on NTSC - works fine. More testing needed.
supplied by NINJA: shorter (better) ZAP Routine, lots of senseless bytes discovered
more ninja-supply: fix for the end-of-line J and M monitor commands (was on ALL AR/RR so far)
enabled key-repeat for screeneditor in freezer for convenience
Ninja-supply: on the common monitor function J,I & M pressing return will always leave the
edit mode, taking over any changes. CBM & RETURN will keep you in edit mode of the monitor
PLAY WITH IT! :)
When using the fastsave routine and filling up a disk the DRIVE will report
a disk full error when you have 1 or 2 blocks left. your program will nevertheless
be saved fine. A real disk full error results in the message (a) try again (b) quit.
Saving with up to 0 blocks left on the disc works fine aswell.
According to Ninja this is a feature of the drive ROM ! -- so it's ok & marked as fixed. :)
FAST SAVE NTSC BUG fixed
3.8 ALPHA release
Next:
release 3.8alpha like thing to get the worst bugs under control
continue work on the filecopy selector (cancelled until 3.9 - needs rewrite)
Improve filecopy to work with more than 32 files at once and be more comfortable.
This fileselector will probably be used for TASS aswell then.
add D64 Send/Receive (without destroying C64 RAM)
SilverSurfer receive routines (64 KB roms ONLY !) - in the works
ninja plans to: improve the load routines to do automatic-dir changes and some more small stuff :)
Known Odd Bugs:
fix a bug reported by Frank Kontros (again...hehe) which affects the track/sector ID.
Frank supplied the patch already, so it will be done soon.
BUG reported by Jack Alien & HOK (reproducable on plain AR and new RRs):
- enter monitor
- write a little ML save routine (which saves some area, ffba, ffbd, ffd8)
- G start (file should be saved fine)
- hit F3 for directory (RetroReplay ROMs crash HERE)
- @s:file (ActionReplay V6 crashes HERE)
... to be fixed - only on mon ! (sys routine, f3, etc in basic seems to work fine)
Stuff we are planning TO DO (ordered):
32KB release:
add the sprite/char editor (from Danzig????????) - finished for Beta 4 (hopefully)
Fix load/save in freeze mode to handle files from $0000-$ffff
FD fastsave compatibility
Ninja checked this out a little closer and we took a closer look at the routines
aswell, but the necessary changes would eat a lot of memory.
A work-around bugfix is still planned though. Stay tuned.
(Soon we will have enough space for a new load/save routine which makes the
FD/HD compatibility come true and which will also enable the load/save of
complete 64 KB)
Add a Lock/Unlock File and Disk function (@L)
List Ascii Files from Disk (@T)
Add a new directory routine which displays Track/Sector and Starting Adress of Files without losing Ram contents
Add a new format routine for 1541 disks, which displays the number of unusable sectors, aswell as their
location and which automatically maps out these sectors.
This idea is coming from Graham, who told me he got that routine done already ... :)
64 KB release:
WVL/Xenon started working on packing/crunching algorithms, which will be implemented.
illegal opcodes for monitor --- yieks
Add Turbo Assembler Macro (Checky is VERY busy on it - see here - well progressing)
Advanced Disk Monitor - Gonna love giving this one a shot ... stay tuned ...
A note maker !!! (requested by bugme:Deekay)
dobbelblocknoter looks funny
ATTENTION, please ... looking for a short, smart, colorfull or not and cool
textdisplayer for this. Should very basically toggle a large amount of
$0400 paged textscreens when pressing space and restoring cols and screen
when pressing run/stop. I'd like to get some cool effect for this and this
is also your chance to add something plain stupid ... :)
(Shouldn't exceed $200-$280 bytes)
We'd love to get more nice ideas and routines to add. Small useful utils it should
be, but large killer kool c-compilers will do aswell ... :)
A few things were already mentioned, but for some reason I don't like putting
a sample ripper, music ripper or other really silly stuff into a rom.
I would prolly add single step options and cycle count stuff into the monitor,
but that would require 'foreign code' aswell. :)
SOME stuff, like listing the labels used by TASS from monitor, will be
a natural thing l8r on, don't worry ... :)
So, get us COOL ideas ...
Ideas ? Comments ? Mailto:count0@c64.org
[ Back ]