500 board roms

Post Reply
gekaufman
Posts: 72
Joined: Mon Nov 23, 2015 12:57 pm

500 board roms

Post by gekaufman »

I finally got my C2P to boot up this weekend - it's a heavily modified unit with lots of stray wiring. Most of the modifications are easy to sort out fortunately (Basic 3 fix, adjustable baud rate, switchable clock speed, switchable cassette/printer/modem and LPT output). Also the 2102 ram appears to have been removed from the 500 cpu board and 24K is on a separate board.

I'm not clear on the 1702A monitor Eproms. What I've been able to figure out based on the manual and Eprom Labels is

A6 (FFxx) 65VB7.6 Rom Basic Support for 540 Video and Polled Keyboard
A5 (FExx) 65VK 65V Monitor for 650 Video and Polled Keyboard
A4 (FDxx) 65K Polled Keyboard Driver

What are the purpose of all three? Are listings available anywhere?

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

Re: 500 board roms

Post by dave »

OSI used standard addresses for basic I/O functionality including keybaord, serial, and I/O routines. The 500 board used 1702A proms to hold 256-byte code blocks for these functions. The same code is included in the SYNMON-1 and SYN-600 ROMs shipped with later 502, 505, and 600/Superboard-II systems, although the Superboard actually used a contiguous 2K block of ROM since it didn't have a cassette/serial interface in the topmost 2K (FC00).

FD00 - contains the keyboard interface. Versions exist for ASCII keyboard and polled keyboard

FE00 - ROM monitor. Versions exist for memory-mapped video boards (65V) or for serial boards (65A)

FF00 - ROM BASIC support - contains the reset and interrupt vectors, and code to clear the screen, provide the "C/W/M?" prompt, get the input, and jump to the appropriate code for BASIC cold start, warm start, or the ROM monitor (at FE00). There is a different ROM image for disk boot (That would give you an "H/D/M?" prompt")

I believe there are disassembly listings on this archive. Also, look through the Peek(65) journals on this site. I believe there are some walkthroughs of the boot roms that discuss the code in detail.

Because the 500 board was designed with 3 1702A EPROMs, OSI used this approach of 256-byte code chunks that could be swapped out as needed to configure a machine. They also felt free to place a serial/cassette interface at FC00, just below the ROM block. This complicated later 502 and 505 designs which preserved the serial port at FC00, and had a slightly complicated circuit to map one of 8 256-byte blocks in a 2316/2716 to the FD00, FE00, FF00 addresses. The 600 board moved the cassette port to C000, allowing a full 2K EPROM to map to the top 2K without any complicated addressing scheme. That's why fancier monitors, using the whole 2K, could be swapped for the SYN600 ROM to provide much more functionality on the SBII. To use similar monitors on C2/4/8 systems, surgery to the address circuit was required to map the ROM around the FC00 block (typically, the block was mapped to F400).
gekaufman
Posts: 72
Joined: Mon Nov 23, 2015 12:57 pm

Re: 500 board roms

Post by gekaufman »

Dave -

Thanks for the great explanation.

- Gary
Post Reply