Series II RevD video swap driver

dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Series II RevD video swap driver

Post by dave »

I picked up a cassette recorder on Ebay, and finally received it today. After twiddling the volume knob a bit, I managed to get get a couple of close reads of the video swap driver, close enough to compare and reconstruct the file to the point where it makes sense. Here it is. I've stripped out all the NULLs and CR (^M) characters, so you may want to add those back in if you're going to try to load this via cassette. The cassette image also included a "RUN" command after the program listing. Let me know if I need to make some corrections.

Code: Select all

 10 FORI=1TO24:PRINT:NEXT:POKE515,0
 100 SI=183:M=PEEK(133)+256*PEEK(134)
 200 M=M-SI:MH=INT(M/256):ML=M-MH*256
 300 POKE133,ML:POKE134,MH
 400 POKE538,ML:POKE539,MH
 500 FORJ=1TOSI:READY
 600 POKEM,Y:M=M+1:NEXT
 700 X=FRE(X):POKE251,0:POKE252,75:POKE255,32
 800 PRINTML+MH*256-772"BYTES FREE.
 900 NEW:END
 1000 DATA133,254,72,165,251,48,11,141,0,216,41,1,133,250,169,255
 1010 DATA133,251,165,250,208,4,104,76,105,255,138,72,152,72,165
 1020 DATA254,164,255,166,253,41,127,201,13,240,90,201,8,240,72
 1030 DATA201,12,240,75,201,10,240,90,201,32,48,26,201,123,16,22
 1040 DATA157,0,211,232,224,123,240,70,208,33,188,0,211,132,255
 1050 DATA169,161,157,0,211,134,253,104,168,104,170,104,76,108,255
 1060 DATA138,41,63,201,10,208,229,138,233,16,170,208,223,138,41
 1070 DATA63,201,59,208,216,138,105,15,170,208,210,152,157,0,211
 1080 DATA202,176,223,152,157,0,211,232,176,229,152,157,0,211,162
 1090 DATA75,208,188,162,75,208,4,152,157,0,211,134,252,169,64,133
 1100 DATA248,160,0,132,246,162,207,232,134,249,134,247,177,248
 1110 DATA145,246,200,240,244,16,247,224,211,208,243,166,252,208
 1120 DATA190,51
Cheers,

Dave
dave
Site Admin
Posts: 710
Joined: Tue Sep 09, 2008 5:24 am

Re: Series II RevD video swap driver

Post by dave »

Also, see the article in Peek 65 Vol 3 no. 2 (June 1982) on some issues with the driver and how to deal with them.
MK14HAK
Posts: 356
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Series II RevD video swap driver

Post by MK14HAK »

A big thanks for this Dave. You have a successful read by the looks of it. I ran it up on my SeriesII. This is a driver for the 12*48 alternate line mode of the REvD under SYN600 and BASIC in ROM. It corrects an otherwise odd text alignment when swaping to the 12*48 mode.( It includes the normal teletype cursor controls.)
I had a play with the code converting it for CEGMON and got quite a suprise. My CEGMON n the RevD had different I/O vectors from normal. :!: It had me thinking this was a ROM that I may have played around with in the 80's. So I did a disassembly print and compare. Its totally different and I would say it is almost an ORIGINAL RevD CEGMON!!! providing CTRL+F to flip the screen mode. No POKEs required. Looks like I may have only changed Window TOP, BASE locations and CURSLO,HI as I did with a number of my CEGMONS. I will set these back to normal and upload in a day or two along with a patched BASIC1 chip it also requires.
I had totally forgotten about this, even my notes I started from when I dug out my RevB and D in 2011 do not mention this SWAP ROM. This thread has dug up some useful info and routines for RevD owners. Thanks all.
600RevB:16K,2MHz,64x32,470,CEGMON
SuperKit:502,540B,542B,CEGMON, 8" and 5" FDDs
Cards:PE IO,6522 D-A-D, AY3-8910,ProgramGraphics,Color,UK101
WIP:HexDOS,FDD Emulator
MK14HAK
Posts: 356
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Series II RevD video swap driver

Post by MK14HAK »

Steve Gray wrote: Thu Apr 25, 2019 2:50 pm

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
Steve, My ROMS do not have anything useful. I did a spreadsheet of location differences a few years back for a bunch of diferent ROMS in my collection. Oddly it does not include my RevD ROM but looks like all the ROMs I was using with RevB and WinOSI. No SWAP code there, just different screen start positions. My Monitor extensions are all additions to Exmon in ROM via its user jump. I am happy to share these if you want: Disassemble range xxxx,yyyy ; Hex+Ascii display 8 locations ;Verify zzzz=xxxx,yyyy ; Source code generator.
By the way I have a WEMON for C4 for upload to when I get a chance. Load Save and Edit all working and screen display corrected.
600RevB:16K,2MHz,64x32,470,CEGMON
SuperKit:502,540B,542B,CEGMON, 8" and 5" FDDs
Cards:PE IO,6522 D-A-D, AY3-8910,ProgramGraphics,Color,UK101
WIP:HexDOS,FDD Emulator
MK14HAK
Posts: 356
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Series II RevD video swap driver

Post by MK14HAK »

The CEGMON RevD ROM code is a re write of the standard CEGMON code. The keyboard $FD page and the bootstrap $FC page remain in the same position although the keyboard code has changed a little. Most of the remaining code is altered and in a different position. It seems this has been done to allow branching instead of jumps to save bytes. Something had to go - there is now no U jump to User routine. The video mode is flipped with a CTRL+F command or a POKE 250,0/1 to toggle 24*24 / 12*48 screens and invoke the SWAP driver for 12*48 mode. The BASIC 1 ROM required a tweak to remove the INPUT CTRL code masking.
(more info to follow...)
Attachments
CEGMON_RevD.zip
(3.65 KiB) Downloaded 587 times
600RevB:16K,2MHz,64x32,470,CEGMON
SuperKit:502,540B,542B,CEGMON, 8" and 5" FDDs
Cards:PE IO,6522 D-A-D, AY3-8910,ProgramGraphics,Color,UK101
WIP:HexDOS,FDD Emulator
Post Reply