|
Post by gsteemso on Nov 8, 2014 22:09:28 GMT
Several years ago, when the only licensed distributor of JD was Maurice Randall and the official version was therefore unobtainium, I bought bootleg copies for several of my machines from a helpful fellow on Lemon 64. Unfortunately, the copy in my 128 must have been burnt from a corrupt image, for some aspects of it are not working at all. Has anyone else encountered this sort of problem?
I’m giving serious thought to developing my own custom ROMset based on JD. Provided I buy a real copy and do not distribute anything, there shouldn’t be any legal issues AIUI. The big hurdle is of course finding time to do it. I once asked this question over on The Forum That Vanished and didn’t get much response, but if you could alter your 128’s behaviour or fix ROM bugs/oversights, what would you change? The fellow who extended the KEY function over in the Programming subforum is on the right track, and I recall someone else fiddled his ROM to disable the drive 8 autoboot on power-on, so what else is there? At the extreme end of the range we have BASIC 8; we probably don’t need to go to that length, but it illustrates the possibilities.
|
|
|
Post by VDC 8x2 on Nov 9, 2014 1:04:59 GMT
maybe with Hydro's permission, Include basic 7.80. I would also take out all the tape routines from ram. maybe fix baud rates higher for modem?
|
|
|
Post by buzbard on Nov 13, 2014 15:55:45 GMT
What part of JD is not working for you? I know that there are a couple problems with the version for the flat C128 where CTRL+D doesn't work and the CTRL key doesn't pause scrolling. I told Jim Brain how to fix those issues but, I'm not sure if he made those changes or not.
|
|
|
Post by hydrophilic on Nov 14, 2014 5:37:52 GMT
I made BASIC 7.80 to expand the C128 possibilities, so feel free to distribute it in binary form (on a chip or as a download). Just don't distribute the source code... for the time being, the source is only available from my website for personal use. (for commercial use, contact me via this forum or my website)
To answer the original question, I wouldn't change much (except for BASIC7.80)... JiffyDOS (or something better) would be obvious.
I like the idea of no boot device 8... BUT there should be an option... like hold the SHIFT key to boot from device 8 (or not boot from device 8). Or even better! Hold down 8 to boot from device 8, 9 for device 9, 0 for device 10 or 1 for device 1... or get creative and use + for device 11 (because it is located just past 0 on the keyboard). BONUS POINTS: let the user type in boot code (in hex) if they hold down 3 for screen/terminal boot device
You might create new KERNAL routines to support a mouse?
KERNAL routines to support 'section load'... this is the biggest failure of the KERNAL in my opinion. You can either read a file 1 byte at a time ($FFE4 Getin) or you can load the entire file ($FFD5 LOAD)... you can not load only the first 3000 bytes (for example) and then load the next 3000 bytes (etc.). This would be a great feature for large games or multi-media (audio/video files).
Umm... that's all my ideas for now...
Edit Invent a new KERNAL device number (or creatively mangle existing code), to load/save/verify from an REU...
And like Mirkosoft suggested in another thread VPEAK / VPOKE / VLOAD / VSAVE to easily read/write VDC RAM into BASIC variables or disk files.
|
|
|
Post by gsteemso on Nov 29, 2014 1:56:27 GMT
What part of JD is not working for you? I know that there are a couple problems with the version for the flat C128 where CTRL+D doesn't work and the CTRL key doesn't pause scrolling. I told Jim Brain how to fix those issues but, I'm not sure if he made those changes or not. The listing-stopper and listing-slowdown functions don’t work, and I think there was something wrong with the SEQ file viewer as well. I keep being unpleasantly surprised by these issues and then forgetting the details as I just avoid the whole business for a few months. I never would have expected such issues to make it into production EPROMs. What do you have to change to fix the bugs?
|
|
|
Post by gsteemso on Nov 29, 2014 2:00:18 GMT
Thinking about it, one thing I would definitely upgrade in my “dream ROMset” is the machine language monitor. I am firmly of the opinion that an MLM which can neither assemble nor disassemble code in memory is pretty useless.
|
|
|
Post by buzbard on Nov 29, 2014 16:04:38 GMT
The changes are fairly simple to do. You'll need to dump the ROM then open it in a hex editor, I like HxD, and make the following changes: At offset 268 change "34 C2" to "36 EB" that will fix the CTRL+D problem. To fix the CTRL key pausing go to offset 3F7 and change: A9 7F 8D 00 DC AD 01 DC C9 DF D0 09 A0 00 EA CA D0 FC 88 D0 F9 to 20 47 ED D0 10 A4 D0 D0 0C AD 21 0A F0 F2 58 C4 D0 F0 FB 84 D0 I'll have to check out the SEQ viewer, I don't use that one much. These patches are taken from the 128D version of JiffyDOS. I'm not sure why these bugs were in the flat 128 version and not in the D version. There's also a difference in the ROMS at offset 3F00 but that's just a copy of the MMU registers, it doesn't make any difference what values are there.
|
|
|
Post by gsteemso on Aug 12, 2015 4:17:37 GMT
I haven’t followed up on this thread the way I meant to. My apologies.
I definitely would include BASIC 7.80. Including that one is as much of a no-brainer as including JiffyDOS, I think.
Another idea I had is to actually test the VDC RAM size at boot and configure things appropriately. That would allow one ROM image to support both 16K and 64K VDC setups, so installing a 64K-VDC board such as the Chip Level Designs one or the currently produced clone of it would be more useful.
VDC8x2, I like the idea of ditching the tape nonsense, though I would feel differently if there were no option to switch back to a stock ROM (I think JiffyDOS had the right idea there). I also like the idea of improved RS232 speeds and reliability, and in fact a friend of mine who goes by the handle AgentFriday has come up with a way for a stock C64 to do 38-kilobit-per-second serial communications, in bursts while the VIC-II is not active. I’ve seen it in action and it is awesome. I believe he wrote a blog article about it some time ago, probably on commodoreserver.com if that helps anyone track it down.
Hydrophilic, wow, that’s quite a number of ideas! I think we can break them down into three categories: (1) selecting any or no boot device at boot time, (2) adding useful features and functions to the Kernal, and (3) adding useful features and functions to BASIC.
One at a time, then. (1) I think I’d make it so it does what it does now, unless you held down Shift (skip autoboot altogether) or Alt (bring up a boot menu listing the available devices, like what you get on a Mac if you hold Option during boot). At first I thought the idea to select the screen as a boot device was kind of nifty, but then I realized you’d need a full-blown machine language monitor with the ability to save your work before it would be any practical use. At that point it’d be just as simple to implement the idea I mentioned several posts ago for an improved MLM and have an option in the boot menu to enter it directly, presumably after you selected one of the boot-device options so you’d have something to work with.
(2) and (3) are good in theory and I can even see the exact requirements I’d want for the specific features you suggest, but it breaks compatibility in a fairly severe way (at least, the BASIC extensions would). I suppose we could piggyback on the JiffyDOS wedge and prefix all additional commands with one of the less-used funny characters, or maybe use a digraph (!!COMMAND or the like). The idea to allocate a device number to the REU seems like something Commodore should have done in the first place, and we even have the cassette device number we’ve just rendered unusable… of course, that also would introduce severe compatibility bugs. Maybe we could use device number 6 (it seems unlikely in these paperless times that anyone would have more than two printers hooked up at once, and unit address 7 is already in use by the network controller on the Flyer cloud storage device), or perhaps 30 instead (being all the way at the far end of the available range, there shouldn’t be many things already using it)?
Does anyone else have any widely applicable Kernal or BASIC extensions they’d want to see in their dream ROMset?
Buzbard, are there any differences between the 128 and 128D JiffyDOS ROMs that are actually needed for them to work in a given machine? If not, it’d likely be simplest to just base this project on the 128D JiffyDOS ROM and ignore the flat-128 one entirely.
|
|
|
Post by VDC 8x2 on Aug 12, 2015 19:48:29 GMT
my vote is for device number 6.
|
|
|
Post by motrucker on Aug 13, 2015 20:06:22 GMT
|
|