Page 2 of 3

Re: Series II RevD video swap driver

Posted: Wed Apr 17, 2019 4:45 am
by waltermixxx
Also I'm using CEGMON in my 600D board. :) if that makes a difference. :)

Re: Series II RevD video swap driver

Posted: Wed Apr 17, 2019 10:16 pm
by dave
It looks like CEGMON hard codes the line length and screen size, so I don't think a simple set of POKES will work.

However, you could burn two CEGMON images into a 2732 or 2764, and use the /32 line to control A11 to select between the images. Or, if you wanted to control the image separately, use the BK0 or BK1 line to control A11. Or place multiple images, CEGMON for 32/64 and SYNMON, etc. in a 2764, and use BK0 and BK1 to select them.

I think BASIC tracks the line length separately, so you'd still want the POKEs to locations $0f and $10.

Cheers,

Dave

Re: Series II RevD video swap driver

Posted: Sat Apr 20, 2019 8:07 am
by MK14HAK
VSwap RevD.jpg
VSwap RevD.jpg (303.44 KiB) Viewed 11049 times
RevD Reg.jpg
RevD Reg.jpg (190.05 KiB) Viewed 11049 times

Re: Series II RevD video swap driver

Posted: Sat Apr 20, 2019 5:27 pm
by Steve Gray
It seems CEGMON's windowing feature can be used very simply by poking new values into the proper locations. See manual here:
cegmon-windows.jpg
cegmon-windows.jpg (271.53 KiB) Viewed 11044 times
I will look through the source code to see if there is any space for code to toggle the correct window value using a simple keystroke.

Steve

Re: Series II RevD video swap driver

Posted: Sat Apr 20, 2019 9:52 pm
by MK14HAK
I would be great to get a dump of the SWAP cassette routine to aid doing this. I used the Cegmon window feature in autoSI.Its a bit touchy about positioning the cursor after a resize. Your will have to home the cursor and play around a bit.Come on Dave, dump that tape ...

I remember adding the control register swap into Cegmon for a single key video size change but never had the swap code back in the day.
I did this for a friend and also did a board with all my BASIC Premier extension ROMs and BASIC command hacks for him. (My modified RevB had sound and colour and other added BASIC commands,no guard band 64 columns,switched kybd invert, PIA, VIA DAC ADC, 470BD and 8" drives) Fun times.This friend later moved on to BBC Micro and gifted me his RevD including the "space age" white plastic case. I've always wanted to upgrade the video on this but now would rather just do a more modern full RevD upgrade.
Mike

Re: Series II RevD video swap driver

Posted: Mon Apr 22, 2019 8:06 pm
by Steve Gray
Walter and I did a quick test. Using CEGMON for c1 we wrote a little program to clear the screen, poke the contol register, then poke the uk101 values into the 546-550 locations, followed by printing the HOME chr. This seemed to not work properly until we scrolled the screen a bit. Still, there seemed to be some characters stuck on the screen... perhaps the pokes need to be in a different order or clearing the screen instead of home. More testing is needed.

Re: Series II RevD video swap driver

Posted: Tue Apr 23, 2019 1:39 am
by MK14HAK
Are you clearing the screen or window. If I remember you home the cursor last. You may have to do a line feed after that and out a space to blank the cursor before your print is correct in the new window.

Re: Series II RevD video swap driver

Posted: Tue Apr 23, 2019 6:42 pm
by Steve Gray
Ok, so I think I can confirm that the hardware screen width is hardcoded into CEGMON. If they had stored it into the area where the window parameters are stored then it would probably work properly, although I'm not entirely sure how the BASIC ROMs factor in (there is the width stored in the rom that BASIC references).

So at this point it looks like you need two monitor roms and some way to switch them. Ultimately I want to take the source code and fix it, assuming there is room in the 2K rom limit.

Steve

Re: Series II RevD video swap driver

Posted: Thu Apr 25, 2019 8:43 am
by MK14HAK
Numerous CEGMON eproms and files here. It would take some time to find what looks like original.I take a look at whats currently on my RevD and upload it. I found this 2532 that looks interesting and some BASIC swap code. It's not the cassette version though unfortunately. HexDOS I think.

10000 REM SWITCH VIDEO FOR SUPERBOARD SERIES II REVD
10020 IF PEEK(2542)=64 THEN 10090
10025 REM SWITCH TO 12*48 VIDEO MODE
10030 POKE2542,64:POKE2489,64:POKE2571,64
10040 POKE2569,63:POKE2301,63
10045 POKE546,47:POKE547,139:POKE548,208
10050 POKE549,75:POKE550,211:PRINTCHR$(26)
10055 POKE 55678,1
10060 END
10090 REM SWITCH TO 24*24 VIDEO MODE
10100 POKE2542,32:POKE2489,32:POKE2571,32
10110 POKE546,23:POKE547,133:POKE548,208
10115 POKE549,101:POKE550,211:PRINTCHR$(26)
10120 POKE55678,0
10130 END

Re: Series II RevD video swap driver

Posted: Thu Apr 25, 2019 2:50 pm
by Steve Gray
MK14HAK wrote: Thu Apr 25, 2019 8:43 am Numerous CEGMON eproms and files here. It would take some time to find what looks like original.I take a look at whats currently on my RevD and upload it. I found this 2532 that looks interesting and some BASIC swap code. It's not the cassette version though unfortunately. HexDOS I think.

10000 REM SWITCH VIDEO FOR SUPERBOARD SERIES II REVD
10020 IF PEEK(2542)=64 THEN 10090
10025 REM SWITCH TO 12*48 VIDEO MODE
10030 POKE2542,64:POKE2489,64:POKE2571,64
10040 POKE2569,63:POKE2301,63
10045 POKE546,47:POKE547,139:POKE548,208
10050 POKE549,75:POKE550,211:PRINTCHR$(26)
10055 POKE 55678,1
10060 END
10090 REM SWITCH TO 24*24 VIDEO MODE
10100 POKE2542,32:POKE2489,32:POKE2571,32
10110 POKE546,23:POKE547,133:POKE548,208
10115 POKE549,101:POKE550,211:PRINTCHR$(26)
10120 POKE55678,0
10130 END
I have been working on the CEGMON source code. I now have modified the code so it assembles with ACME without errors. I have added all the symbol names and labels from the manual, and added conditionals to assemble different versions. I am currently working to replace all the Lxxx labels with the proper labels and add additional commenting. All of this will be posted on Github soon.

If you wouldn't mind trying to dump the ROMs you have I can compare them with the source I have and perhaps add in any useful modifications that might be found.

Steve