Series II RevD video swap driver

MK14HAK
Posts: 336
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Series II RevD video swap driver

Post by MK14HAK » Sat Feb 23, 2019 4:44 am

Dave,

viewtopic.php?f=3&t=106&p=458&hilit=video+swap#p458

Could you please upload the video swap driver.
Cheers
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: 336
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Series II RevD video swap driver

Post by MK14HAK » Wed Mar 20, 2019 7:58 am

Dave, I believe this driver adds BASIC 48 char/line line support for the 600RevD. Tidies up line wrap ? and allows single keys swap of video modes and CRT BF2D support driver routine in PG2. Would be great to have it available.
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

Mark
Posts: 36
Joined: Tue Sep 16, 2008 6:04 am
Contact:

Re: Series II RevD video swap driver

Post by Mark » Thu Mar 21, 2019 7:57 am

I just realized I had this... maybe. (I don't have a C1P or C1P series II though)
You can find the disk image here C1P-VIDSwap.65D on the 5.25" software page

This is the contents of the SWAP program:
C1P SERIES 2 VIDEO SWAP OCT. 1980 RELEASE

Code: Select all

100 FORI=1TO25:PRINT:NEXT
400 POKE54117,96
405 POKE54091,96
500 PS=1:IFPEEK(9800)=32THENPS=2
520 READP,C(1),C(2):IFPTHENPOKEP,C(PS):GOTO520
530 PRINT"TO CHANGE DISPLAY-TYPE   'RUN'":PRINT
540 DATA 9730,8,16
550 DATA 9743,7,15
560 DATA 9723,31,63
570 DATA 9736,31,63
580 DATA 9725,4,10
590 DATA 9738,29,59
610 DATA 9800,32,64
620 DATA 9636,101,75
630 DATA 9766,101,75
640 DATA 9770,101,75
650 DATA 9815,101,75
670 DATA 9670,125,123
680 DATA 9783,125,123
690 DATA 9682,95,164
990 DATA55296,0,1,0,0,0
Are there any memory locations on the C1P series 2 that control screen size similar to OSI540 board? I'm guessing it would be $D800 bit 0 from the code above. Do the other bits have a purpose? Color enable for OSI630 perhaps?

Cheers,
-Mark

MK14HAK
Posts: 336
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Series II RevD video swap driver

Post by MK14HAK » Thu Mar 21, 2019 8:13 am

Yah ! Awesome thanks Mark.
Yes, looks like $D800. I'll fire up my RevD on the weekend and have a POKE around. More work for the emulator huh.
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

Mark
Posts: 36
Joined: Tue Sep 16, 2008 6:04 am
Contact:

Re: Series II RevD video swap driver

Post by Mark » Fri Mar 22, 2019 7:16 pm

Yeah, emulator....

Looking through my notes I found this:

Series 2 600 board (color & DAC sound). 2 video modes: 24x24 & 12x48 + color
1K video ram @ D000-D3FF
4 bit color @ D400-D7FF
$D800
bit 0: 0 = 24x24, 1 = 12x48 (mirrored D800-DBFF)
bit 1: 0 = no color, 1 = color
bit 2: BK0?
bit 3: BK1?
bit 4: 0 = DAC disabled, 1 = DAC enabled
$DC00-DFFF (keyboard/DAC)

I think I got this from the schematics... not sure what bits 2 & 3 do. Not sure if this is totally accurate either. Also interested in what you get reading these memory locations. I suspect it's just 6502 NULL read, where the high order address byte is returned.

Cheers,
-Mark

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

Re: Series II RevD video swap driver

Post by dave » Fri Mar 22, 2019 10:22 pm

Interesting. It looks like BK0 and BK1 do nothing by default, but can be jumpered to replace A12 and A11 for the 8K BASIC ROM selection circuitry. A12 and A11 select one of the four 2K chips within the $A000-$BFFF 8K block. It seems that the sockets could be populated with 8K x 8 ROMs (2664) instead of the 2K x 8 ROMs (2316B), and these bits could swap out the ROM images. I suppose that could be used, for example, to switch between FORTH and BASIC in ROM, or to bank select code within a large program. I'm not aware of that actually having been done. For certain, OSI would have been too cheap to create a new BASIC ROM once they already paid for the original maks with the buggy, early Microsoft BASIC.

Dave

Steve Gray
Posts: 238
Joined: Mon Oct 06, 2008 1:54 pm
Location: Markham, Ontario, Canada
Contact:

Re: Series II RevD video swap driver

Post by Steve Gray » Sat Mar 23, 2019 3:16 pm

dave wrote:
Fri Mar 22, 2019 10:22 pm
Interesting. It looks like BK0 and BK1 do nothing by default, but can be jumpered to replace A12 and A11 for the 8K BASIC ROM selection circuitry. A12 and A11 select one of the four 2K chips within the $A000-$BFFF 8K block. It seems that the sockets could be populated with 8K x 8 ROMs (2664) instead of the 2K x 8 ROMs (2316B), and these bits could swap out the ROM images. I suppose that could be used, for example, to switch between FORTH and BASIC in ROM, or to bank select code within a large program. I'm not aware of that actually having been done. For certain, OSI would have been too cheap to create a new BASIC ROM once they already paid for the original maks with the buggy, early Microsoft BASIC.

Dave
I've been studying the 600 Rev D schematics and BK0 / BK1 really puzzled me. I also noticed that they did nothing but OSI must have had a purpose for them and it's good that they found a use for the extra control lines. I just received my blank 600D reproduction board and I'm planning on building it, but I'm looking to possibly mod it by using larger RAM and ROM chips. Perhaps BK0 and BK1 might come in handy for the ROM.

Steve
C4P working, C1P working. C4P+D&N floppy not working, 505 board, 610 board, Mittendorf board, TOSIE hacker board need testing, PicoDOS disk untested.

Steve Gray
Posts: 238
Joined: Mon Oct 06, 2008 1:54 pm
Location: Markham, Ontario, Canada
Contact:

Re: Series II RevD video swap driver

Post by Steve Gray » Sat Mar 23, 2019 3:57 pm

After looking again at the schematics, you're right Dave. So, you need to change the two jumpers near the ROMs (on the schematic) and the two jumpers at U15. Then you can insert an 8K rom (2664) into one or more of the 4 ROM sockets. You could also use a 68766 EPROM which is pin compatible. Then when the machine is powered on the BK0 and BK1 lines will be 0 and the first ROM will be selected. By poking values into the control register you can select which ROM is active. I suppose you could use this to have an original BASIC in one rom, a patch BASIC in another and maybe a couple utility or game roms in the others. Perhaps one could hold the video swap driver although activating it might be a little extra work (you'd have to swap out the running BASIC with the other ROM, run the driver, then swap BASIC back in).

Sorry if I'm repeating what you said above... just trying to understand it myself ;-)

Steve
C4P working, C1P working. C4P+D&N floppy not working, 505 board, 610 board, Mittendorf board, TOSIE hacker board need testing, PicoDOS disk untested.

waltermixxx
Posts: 80
Joined: Sun Feb 03, 2019 10:31 pm

Re: Series II RevD video swap driver

Post by waltermixxx » Mon Apr 15, 2019 11:29 pm

I tried the basic listing below, and it seems to just switch between the standard 24 character screen,
and a 48 character mode but does not initialize it properly, the screen still has a big space in the middle
and the screen is just as messed up as if you just did a poke 55296,1

does the program below have to be fixed up for a 600 rev D?
Mark wrote:
Thu Mar 21, 2019 7:57 am
I just realized I had this... maybe. (I don't have a C1P or C1P series II though)
You can find the disk image here C1P-VIDSwap.65D on the 5.25" software page

This is the contents of the SWAP program:
C1P SERIES 2 VIDEO SWAP OCT. 1980 RELEASE

Code: Select all

100 FORI=1TO25:PRINT:NEXT
400 POKE54117,96
405 POKE54091,96
500 PS=1:IFPEEK(9800)=32THENPS=2
520 READP,C(1),C(2):IFPTHENPOKEP,C(PS):GOTO520
530 PRINT"TO CHANGE DISPLAY-TYPE   'RUN'":PRINT
540 DATA 9730,8,16
550 DATA 9743,7,15
560 DATA 9723,31,63
570 DATA 9736,31,63
580 DATA 9725,4,10
590 DATA 9738,29,59
610 DATA 9800,32,64
620 DATA 9636,101,75
630 DATA 9766,101,75
640 DATA 9770,101,75
650 DATA 9815,101,75
670 DATA 9670,125,123
680 DATA 9783,125,123
690 DATA 9682,95,164
990 DATA55296,0,1,0,0,0
Are there any memory locations on the C1P series 2 that control screen size similar to OSI540 board? I'm guessing it would be $D800 bit 0 from the code above. Do the other bits have a purpose? Color enable for OSI630 perhaps?

Cheers,
-Mark
Turning into quite an OSI Junkie (HTFDTH?) Superboard II REV B-40K, 9600b, HC-05 Bluetooth, Superboard II Rev D, C4P rebuild- 502, 542c, 540B. :)

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

Re: Series II RevD video swap driver

Post by dave » Tue Apr 16, 2019 6:57 pm

waltermixxx wrote:
Mon Apr 15, 2019 11:29 pm
I tried the basic listing below, and it seems to just switch between the standard 24 character screen,
and a 48 character mode but does not initialize it properly, the screen still has a big space in the middle
and the screen is just as messed up as if you just did a poke 55296,1
I'm not sure what all those locations are, specifically, but they are changing some RAM locations that would hold BASIC and OS65D in a disk system, but map to user BASIC program space in a ROM-BASIC system. So I suspect it's changing hard-coded line length limits for Disk BASIC and/or OS65D terminal drivers.

For ROM BASIC, you'd want to find the locations that control terminal width and POKE those. From the Aardvark BASIC data sheet, it looks like $000F (dec 15, terminal width) and $0010 (dec 16, terminal width for tabbed columns) might be a good place to start:

Code: Select all

540 DATA 15,32,64 (or maybe 31,63)
550 DATA 16,32,64 (or maybe 31,63)
560 DATA 55296, 0, 1
570 DATA 0,0,0
does the program below have to be fixed up for a 600 rev D?
The C1P series 2 is a 600D board with plastic case, so no difference.
Are there any memory locations on the C1P series 2 that control screen size similar to OSI540 board? I'm guessing it would be $D800 bit 0 from the code above. Do the other bits have a purpose? Color enable for OSI630 perhaps?
For the 540, it's $DE00 (56832), bit 0. bit 1 of DE00 appears to get routed to the keyboard, where it's not used in the 542 keyboard, but can be used with the prototyping area for just about anything including sound.

Cheers,

Dave

Post Reply