600D ROM support for both 24- and 48-character modes

bxdanny
Posts: 338
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

600D ROM support for both 24- and 48-character modes

Post by bxdanny »

I came up with an idea that would provide built-in support in ROM for both the 24-charcter and 48-character modes of the 600D. It requires a very minimal hardware change, which is really just the addition of one jumper wire, so I am posting this here instead of in the Files section. I don't actually have a board to test it on, but I'm pretty sure it will work, and I'd like to hear feedback as to how well it does.

It takes advantage of the fact that only 1kB of the 2kB Monitor ROM is normally used on the C1/600 board by providing two almost, but not quite, identical copies of that 1kB, with the same output port that selects between the two video modes also selecting between the two ROM halves. Either an unused bit (bit 5) of the port can be used, or the same bit (bit 0) that does the selection between the two video modes. The attached ROM image should support either configuration.

The image needs to be burned to a 2716 EPROM. Replace the existing Monitor ROM with the new one, but don't connect pin 19 (the A10 input). For testing, leave pin 19 bent up out of the socket. Connect a jumper to that pin, and run it to U72, pin 10 (which is the otherwise unused bit 5 of $D800) or pin 7 (which is bit 0). And that's it as far as the hardware goes. If all goes well, you can cut the trace (once called W8) connecting pin 19 of the ROM socket to A10, reinsert the pin and move the jumper to W8/the socket pin.

The prompt at reset will now be "D/C/W/M/S? ", the "S" standing for Switch or Swap. (Yes, I moved the space to be after the question mark.) Pressing S will switch the board to 48-character mode, pressing it again will switch back to 24-character mode. Cold start or Warm start can now be performed in either mode, and BASIC will automatically display its output with the appropriate margins for the mode. (On disk systems, what happens when booting a disk would depend on the operating system.)

There are three other minor improvements in this ROM, compared to the standard SYN600:

1) Because the stack pointer is initialized to $FE instead of $28, the "Out of Memory" error that often occurs just after a warm start is avoided.
2) Screenclear is in a callable subroutine, namely at $FCD5.
3) Responses to the reset prompt can be upper- or lower-case.

Note to Sideburn: The ROM you are using already incorporates changes 1) and 2).

Note to Ronin47: If you try this, you will need to adjust the left margin values for both modes. Change $3E0 in the ROM image from $65 to $63, and $7E0 from $4B to $47.

The image is a straight binary ROM dump, the .ini extension is added to comply with the forum's requirements for file extensions.
Attachments
SYN600-SSW2448.ini
(2 KiB) Downloaded 23 times
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
ronin47
Posts: 135
Joined: Thu Dec 14, 2023 2:17 pm

Re: 600D ROM support for both 24- and 48-character modes

Post by ronin47 »

That's awesome work sir!

I will see if I can get the new ROM burned (I have plenty of spares now!) in the next few days and I'll report back.

First things first I have to clear the broken Nintendo Switch Lite off my workbench, which means fixing it first :)
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: 600D ROM support for both 24- and 48-character modes

Post by dave »

bxdanny wrote: Wed Apr 10, 2024 1:30 pm I came up with an idea that would provide built-in support in ROM for both the 24-charcter and 48-character modes of the 600D. It requires a very minimal hardware change, which is really just the addition of one jumper wire, so I am posting this here instead of in the Files section. I don't actually have a board to test it on, but I'm pretty sure it will work, and I'd like to hear feedback as to how well it does.
I really like this idea.
User avatar
jbtech
Posts: 22
Joined: Mon Nov 13, 2023 12:33 am
Location: Australia
Contact:

Re: 600D ROM support for both 24- and 48-character modes

Post by jbtech »

Hi BXDanny, that seems to work great and the 48 column text looks much nicer I have to admit.

I hadn't planned to do any major mods to mine, mainly to keep it as close to the way my original OSI600 B was back in the day but this is so simple and utilises the other half of the SYN600 ROM space which was unused by the Superboard II previously.

I didn't realise the board would support 48 column mode without major hardware mods.

One tiny change I may make to the ROM file just for my own preference is to hide the /S text on the 24 column startup display, making it a hidden selection. Just for nostalgia sake - that D/C/W/M ? prompt must be burned into my own memory somewhere!

I imagine pressing S will still work even if the choice is not displayed, hopefully I can just replace the /S characters with ASCII spaces?

Thanks for coming up with that great soft-mod.

Regards, John
IMG_2185.JPG
IMG_2185.JPG (4.86 MiB) Viewed 343 times
More from John's Retro Workshop http://www.jbtech.linkpc.net
bxdanny
Posts: 338
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: 600D ROM support for both 24- and 48-character modes

Post by bxdanny »

Glad to see it works!

To restore the original "D/C/W/M ?" reset prompt, change ROM locations (offsets from the first byte) $330 through $332 to $20 $3F $00. Do likewise to $730 through $732 if you want to hide the S (and undo the space/question mark swap) in 48-character mode as well.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
ronin47
Posts: 135
Joined: Thu Dec 14, 2023 2:17 pm

Re: 600D ROM support for both 24- and 48-character modes

Post by ronin47 »

OK, I decided the Switch Lite could wait.

Working nice for me:

IMG20240411085334.jpg
IMG20240411085334.jpg (4.93 MiB) Viewed 328 times
IMG20240411085225.jpg
IMG20240411085225.jpg (5.24 MiB) Viewed 328 times

My jumper will become something more permanent:

IMG20240411085229.jpg
IMG20240411085229.jpg (4.72 MiB) Viewed 328 times

In terms of adjusting the memory locations, I set $3E0 to $63 as suggested, but I had to set $7E0 to $49 not $47 as suggested, as at the latter value, the 48 column screen lost 2 characters off the left hand side.

One added bonus is that the image becomes darker with more contrast in 48 column mode.
ronin47
Posts: 135
Joined: Thu Dec 14, 2023 2:17 pm

Re: 600D ROM support for both 24- and 48-character modes

Post by ronin47 »

Jumper is now permanent:

IMG20240411111203.jpg
IMG20240411111203.jpg (5.04 MiB) Viewed 325 times

And works great :)
ronin47
Posts: 135
Joined: Thu Dec 14, 2023 2:17 pm

Re: 600D ROM support for both 24- and 48-character modes

Post by ronin47 »

@bxdanny or @sideburn quick q. Sorry for the thread jack...

To add the colour RAM to my 600D, is it simply a case of adding an 8T28 at U74, and a 2114 at U77? Or is there more to it?

Also, one added and any additional mods done that are needed, how do I test colour is working?
bxdanny
Posts: 338
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: 600D ROM support for both 24- and 48-character modes

Post by bxdanny »

Apparently, the color doesn't actually work without an additional board (630). And I've never seen one. It's supposed to connect to J75, which is an empty DIP socket next to the character generator. (Schematics are on Mark's site.) The color RAM itself (a single 2114 - the same as on a C-64) is on the CPU board, but the circuitry to interpret it isn't. Weird. The ROM image I posted does clear the color RAM ($D400-$D7FF, low four bits) to white-on-black (which is $E) when it clears the screen, but I guess little purpose is really served by doing so.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
ronin47
Posts: 135
Joined: Thu Dec 14, 2023 2:17 pm

Re: 600D ROM support for both 24- and 48-character modes

Post by ronin47 »

bxdanny wrote: Thu Apr 11, 2024 11:54 am Apparently, the color doesn't actually work without an additional board (630). And I've never seen one. It's supposed to connect to J75, which is an empty DIP socket next to the character generator. (Schematics are on Mark's site.) The color RAM itself (a single 2114 - the same as on a C-64) is on the CPU board, but the circuitry to interpret it isn't. Weird. The ROM image I posted does clear the color RAM ($D400-$D7FF, low four bits) to white-on-black (which is $E) when it clears the screen, but I guess little purpose is really served by doing so.
I did fit a RAM IC and the 8T28, but yes, I have an empty connector at U75, I'll have a look at the 630, thanks :)


EDIT - I just looked on Mark's site and the 630 is quite bonkers, and in fact enormous!! It seems a bit more than I'd really like so I'll probably just stick with monochrome!!!
Post Reply