Monitor ROM page mapping question.

Post Reply
GlassTTY
Posts: 22
Joined: Mon Aug 26, 2024 2:54 pm
Contact:

Monitor ROM page mapping question.

Post by GlassTTY »

Monitor ROM Page Mapping

I wonder if someone is able clarify the ROM paging configuration on the OSI 502 CPU board for me?

I have just built a replica (GlytchWorks) board as a stand alone machine, for use with a terminal connected to the serial port. I would like to fully understand the priority mapping that's implemented on this particular board, in order that I can better diagnose an issue I am having.

My understanding is that I can use the 65A monior (compiled for FE00 and located at page 6) in the 2K ROM and the 65AB basic boot code (compiled for FF00 and located in page 7 of the ROM). I also gather that if I map the monitor to FFxx I can start the machine directly into the monitor, certainly both the 65A and 65AB code do seem to have reset vectors defined.

So my question is... how do I successfully map these two options.

Based on the attached circuit diagram of the mapping socket (U15), I decided that...
  • To use both the 65A and 65AB code I would need to connect pin-3 to pin-14 and pin-2 to pin-13 to get the correct mapping.
  • To use the monitor only at page 6 I would need to connect pin-3 to pin 13 to get the correct mapping.
Is this correct or have I completely misunderstood how this works?

John
Screenshot from 2025-02-12 17-10-02.png
Screenshot from 2025-02-12 17-10-02.png (148.7 KiB) Viewed 7165 times
John Newcombe:
Replica 600 Rev D, 8K, CEGMON.
Replica 610 Rev B, 16k, Teac 55B with Data separator D-13.
Replica 400.
Replica 502.
UK101, CEGMON.
Mark
Posts: 333
Joined: Tue Sep 16, 2008 6:04 am
Location: Madison, WI
Contact:

Re: Monitor ROM page mapping question.

Post by Mark »

So the SAMS manual has better schematic, but what it come down to is the OSI decodes the upper address pages into separate signals, which are then directed to a 8 line priority encoder, which turns it back into addresses for the ROM. The signals are jumpered to map a particular memory page to a particular ROM page address using the U15 "socket". EXCEPT the 74148 output is inverted! So input "0" generates address '7' on A0-A2 outputs of the 74148.
So if you want to map FF00 to page 4 in the ROM, jumper U15 pin3 to pin 10 etc.
(I used a similar setup on the 505 board to switch between BASIC-In-ROM and Disk boot by swapping the FFxx jumper setting on a SPDT switch.)
[Don't forget to set the chip select jumpers to work with EPROM, as the mask ROMS OSI used had different select requirements.]

The picture below shows the mapping, with the red addresses shown in non-inverted (logical) form.
OSI502 ROM select
OSI502 ROM select
502sel.jpg (127.46 KiB) Viewed 7009 times
I wonder where OSI documented this?
U15 OSI "Socket" pinout

1 = FDxx (out)
2 = FExx (out)
3 = FFxx (out)
4 = Gnd
5 = Gnd
6 = Gnd
7 = ROM Select Page 7 (in) (A0=1, A1=1, A2=1 which goes to A8,A9,A10)
8 = ROM page 6
9 = ROM page 5
10 = ROM page 4
11 = ROM page 3
12 = ROM page 2
13 = ROM page 1
14 = ROM page 0



As shown in SAMS picture:

FFxx selects page 4
FExx selects page 3
FDxx selects page 2
which matches the SYNMON layout.

SYNMON page layout
  • Page 0 FE00 OSI 440 board 65V monitor (ASCII KB)
    Page 1 FF00 OSI 440 board C/W/M BASIC boot (ASCII KB)
    Page 2 *FD00 C2/540 Polled Keyboard routine
    Page 3 *FE00 C2/540 65V Monitor
    Page 4 *FF00 C2/540 BASIC Boot (C/W/M?)
    Page 5 FD00 initializes HDisk controller (CD74/CD36 winchester HD)
    Page 6 FE00/FF00 OSI 65A Serial Monitor
    Page 7 *FF00 C2/540 disk boot (H/D/M?) works with serial or video

Although you could use SYN600 with some adjustments...
SYN600 - page layout
  • page 000 'H/D/M' maps to $FF00 for a C2/C4 540Vid disk system
    page 100 keypoller maps to $FD00 for a C2/C4 540Vid system
    page 200 monitor maps to $FE00 for a C2/C4 540Vid system
    page 300 'C/W/M' maps to $FF00 for a C2/C4 540Vid tape system
    page 400 disk boot maps to $FC00 for a C1 system
    page 500 keypoller maps to $FD00 for a C1 system
    page 600 monitor maps to $FE00 for a C1 system
    page 700 'D/C/W/M' maps to $FF00 for a C1 system
Or anything in your own custom ROM!

So it looks like to map FFxx to page 7 you need to jumper U15 3 to 7, and to map FExx to page 6 U15 pin 2 to pin 8.
(Let us know if it actually works this way !)

Hope this helps!
GlassTTY
Posts: 22
Joined: Mon Aug 26, 2024 2:54 pm
Contact:

Re: Monitor ROM page mapping question.

Post by GlassTTY »

Thanks Mark, that really does help.

I will try it later today and let you know.

John
John Newcombe:
Replica 600 Rev D, 8K, CEGMON.
Replica 610 Rev B, 16k, Teac 55B with Data separator D-13.
Replica 400.
Replica 502.
UK101, CEGMON.
GlassTTY
Posts: 22
Joined: Mon Aug 26, 2024 2:54 pm
Contact:

Re: Monitor ROM page mapping question.

Post by GlassTTY »

I can confirm that you are correct Mark.

I had been working from this circuit diagram which has been annotated with the non-inverted values.

https://osiweb.org/manuals/502.pdf

My 502 is still not quite working but at least that's one more variable removed. Thank you.
John Newcombe:
Replica 600 Rev D, 8K, CEGMON.
Replica 610 Rev B, 16k, Teac 55B with Data separator D-13.
Replica 400.
Replica 502.
UK101, CEGMON.
Post Reply