Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Breakpoints/Freezepoints and the 128
2019-08-17 15:07
oziphantom

Registered: Oct 2014
Posts: 490
Breakpoints/Freezepoints and the 128

Does anybody know of any cart or program that provides AR5/6 level FreezePoints on the 128. Just something that automatically patches the code for you when and then enters the monitor.
 
... 5 posts hidden. Click here to view all posts....
 
2019-08-19 08:59
oziphantom

Registered: Oct 2014
Posts: 490
The 128 is a very different beast, to think it is just a 64 with an extra bank tacked on will lead down a garden path.

Problem 1. The Z80 boots first and it only ever sees the internal Z80 portion of the internal ROM and can not be made to see an external ROM.

Problem 2. The 128 has no ultimax mode, to the point it even slightly cripples the 64 modes ultimax mode, this is why the Turbo Chameleon won't work on the 128. I think it also impacts flashing of carts such as the GMOD2.

Problem 3. The 128 ignores EXROM and GAME Lines, in fact you can set them to be outputs on the 128 and use them as extra control signals.

Problem 4. The KERNAL strictly sets FF00 to 0 upon its entry points forcing the code to hit and stay on the built in ROMs. So while you can during the boot sequence make it boot to your external ROMs, ( the 128 has 2 16K ROMS for external use, which are like the 16K on a 64, just its 2x16K not 2x8K thus giving you a full 32K ROM set ), you then must keep it always in your external roms, and can't let the KERNAL/BASIC/Editor/Monitor ROM run internally or it will switch it back to the internal ROM set and you will have to find a vector to hook in order to switch the MMU back to external function rom mode.

So you can not take over the 128, you can only let it yield to you on its terms and when you directly instruct it to. You could say install a custom NMI handler and modify the vector at boot, and then your cart will fire an NMI event to which it then jumps to a custom code routine in the lower shared 4K, which then invokes your external cart for a freeze, but there is nothing to stop somebody changing the NMI vector and or trashing your "bootstrap" and the machine must have the KERNAL banked in.
2019-08-19 09:40
Oswald

Registered: Apr 2002
Posts: 5094
will replacing the ROM's to freeze friendly code do the trick then? I dont know why ultimax is needed for freeze.

maybe a custom ROM NMI handler ? :)
2019-08-19 10:16
oziphantom

Registered: Oct 2014
Posts: 490
okay, if you don't replace the KERNAL and take over vectors, how do you freeze? I assumed that the AR carts pull into Ultimax mode, and then put their ROM at E000 so it can trap Vector pulls and hence hook into their own code?

replacing the internal KERNAL ROM would let you freeze if you have the KERNAL enabled.. if I bank it out, then it can't help, because I will control the vectors..
2019-08-19 11:05
Oswald

Registered: Apr 2002
Posts: 5094
so the problem is that a freezer cart cant bank in its own ROM ?
2019-08-19 12:12
oziphantom

Registered: Oct 2014
Posts: 490
you can bank in external ROM, just you have to ask the MMU to do it. To do so you have to have control of the CPU, so you need a way from pressing a button to get the CPU under your control. Once you have the CPU under your control, you can set the banks, ZP, stack as you please.
2019-08-19 13:21
MagerValp

Registered: Dec 2001
Posts: 1078
So couldn't you make a Z80 based freezer cartridge for C128 mode?
2019-08-19 14:18
oziphantom

Registered: Oct 2014
Posts: 490
The Z80 code only runs at reset/boot and it won't use an external ROM, it will only execute the internal ROM. If you want to "freeze" by resetting you might be able to hijack the Monitor boot sequence somehow.. or if you have a "looks like CP/M disk", you could perhaps hijack it with one of them, but at this point you are doing a reset

for the monitor entry let me look at the code to see what it does...
2019-08-19 14:36
Oswald

Registered: Apr 2002
Posts: 5094
so replace z80 rom ? I understood not possible VIA software, but what would be the least invasive modification to do it ?
2019-08-19 14:46
oziphantom

Registered: Oct 2014
Posts: 490
the Z80 ROM is D000-E000 in the "Upper ROM" so you would need to replace one of the ROMs, some 128s have each ROM in a chip and then some have the merged into 1 bigger ROM.
2019-08-19 15:03
oziphantom

Registered: Oct 2014
Posts: 490
The monitor entry is deep into the KERNAL reset routine and happens after any auto boot external/internal ROMS are checked. So an external function ROM would be better than the Monitor entry as it will have a lot less trashed, although at this point the KERNAL will have installed its custom lda/sta/cmp/jsr FAR routines, soft reset vector and looks like it will have intited the IO chips and installed default VECTORS.
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Jason/Antic
Fred/Channel 4
ged/Samar
Rub_0201
Hagar/The Supply Team
Brittle/Dentifrice^(?)
Guests online: 96
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Musicians
1 Rob Hubbard  (9.7)
2 Mutetus  (9.7)
3 Jeroen Tel  (9.7)
4 Linus  (9.6)
5 Stinsen  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.082 sec.