LSN Disk Controller

This is a emulator "only" disk conttroller used by the dummy BSOD ROM to help IPL.SY boot the system.


The LSN Disk Controller uses addresses in the SCM memory map

F1A400 - F1A41F

 address F1A400 -F1A407

 Offset 00 W/O Packet Address HIGH
 	02 W/O Packet Adresss LOW

 	04 W/O Command read=0x10  write=0x11
	   R/O Staus Word

Packet in Memory (16 bytes)

 	0  Controller LUN (byte)
 	1  Device Number  (byte)
 	2  Status Word
 	4  DMA address High
 	6  DMA address Low
 	8  Block Number High
 	10 Block Number Low
 	12 Number of Blocks
	14 0 (byte)
	15 Address Modifier (byte)(not used)

hard images and floppy images must be accessed as 256 homogenous versados sectors


To initiate I/O

Write address to Packet Address High and Low, then write Command to Command (offset 4).

then 

read Status from Status (offset 4)

reading Staus clears status (must clear after I/O)

The Packet is the same as used by Alt Trap #15 Disk I/O

The regular TRAP disk IO is converted to the ALT TRap 15 IO packet.


TENBUG

TENBUG is the real ROM used by the VME10. As such, it does what the VME10 is supposed to do. TENBUG initializes the registers to indicate that the IPL.SY should "Use BUG" and then loads IPL.SY.

IPL.SY typically can boot an OS using several different methods. 

Direct access to an IPC disk controller. Using this method, IPL.SY programs a real disk controller to do the IO required for Booting. It can also program and use an RWIN.  

Use BUG. Using this method, IPL.SY will call routines in the BUG to do IO. The BUG will pass the info required in registers.

USE BUG - IPL.SY will use a BUG jump table to do disk IO.

TRAP #15 disk - IPL.SY will use Trap 15 disk IO routines to do disk IO for the BOOT. 

TRAP #15 IO - IPL.SY will use TRAP #15 calls to issue messages. 

Alt TRAP #15 - IPL.SY will use TRAP #15 calls to do messaging 


'           D3 = FLAG FOR IPL FROM DEBUGGER:  CODE 'ME4U' TELLS IPL IT IS
'                OK TO USE THE DEBUGGERS' INTERNAL DISK READ ROUTINE.
'           D4 = FLAG(s) for IPL if we have new bug interface (AUG 84)
'                   D4 = 'IPLx' where x = bits 7654 3210
'                   Bits         Status
'                    0           Firmware supports TRAP #15 calls I/O
'                    1           Firmware is to do disk I/O for IPL
'                                  (Old 'ME4U' in D3)
'                    2           Firmware supports an alternate TRAP #15 I/O
'                                protocol
'                    3           Firmware supports TRAP #15 disk I/O
'                    4-7         Reserved


DUMMY BSOD ROM

The Dummy BSOD ROM partially supports Trap #15 IO, ALT TRAP #15, Trap #15 Disk IO and Use BUG. This allows the Emulator to load IPL.SY, and then the IPL.SY can boot an OS or boot diagnostic programs. The Diagnostic programs for the VME10 use TENBUG's routines(use BUG) to return to the the BUG. 

When booting an OS or Diagnostic, using the emulator BOOT menu, IPL.SY will use  TRAP #15 IO. It does this because the Emulator initializes registers to indicate that Trap #15 IO support exists, and then loads the IPL.SY.. 

The Diagnostics, however, assume that the TENBUG IO routines are there. So, enough of the TENBUG routines to support the Diagnostics are implemented in the BSOD rom.

