Amstrad XT pages
Home -> Amstrad XTs -> The ROM BIOS

The ROM BIOS (ROS)

The ROS in Amstrad XTs tends to be very compatible with the genuine IBM ROM BIOS. However, some XTs do provide additional functions using the "cassette" interrupt - INT 15h.

PC1512

The 1512 ROS provides these functions:

AH=0
Read mouse X and Y counters.
AH=1
Read a byte from the non-volatile RAM.
AH=2
Write a byte to the non-volatile RAM.
AH=3
Set plane read mask in 640x200 graphics mode.
AH=4
Set plane read mask in 640x200 graphics mode.
AH=5
Set border colour in 640x200 graphics mode.
AH=6
Get ROS version number (check for PC1512/PC1640 ROS).

For full details of these calls, see the technical manual, section 2.3.12.

PC1640

The PC1640 ROS provides the same INT 15h functions as the PC1512:

AH=0
Read mouse X and Y counters.
AH=1
Read a byte from the non-volatile RAM.
AH=2
Write a byte to the non-volatile RAM.
AH=3
Set plane read mask (on PC1512 hardware).
AH=4
Set plane read mask (on PC1512 hardware).
AH=5
Set border colour (on PC1512 hardware).
AH=6
Get ROS version number (check for PC1512/PC1640 ROS).

For full details of these calls, see the technical manual, section 2.3.13. Note that AH=3 to AH=5 are implemented even though they have no effect on PC1640 video hardware. Possibly the PC1640 ROS will work when fitted to a PC1512, but I have not put this to the test.

PPC512, PPC640, PC20, PC200

These systems do not provide any services on INT 15h. The interrupt returns leaving all registers untouched.

PC2086, PC3086

The ROS supports INT 15h with AH=0C0h ("Get configuration table"). The table it returns is as follows:

	dw	8	;Size of table (8 bytes). 
	db	0FAh	;Model (PS/2 model 25 or 30)
	db	0	;Submodel (PS/2 model 30)
	db	1	;BIOS revision (2nd)
	db	0B0h	;Feature byte 10110000b
			; * DMA channel 3 used by hard drive BIOS
			; * RTC installed
			; * INT 15h/AH=4Fh called on INT 09h

Bug: Although the table claims to be 8 bytes long, it is in fact only 4 bytes. The next 4 are a subroutine. If the subroutine is interpreted as feature bytes, it looks as if the PC2086/3086 support 32-bit DMA, data streaming, various INT 15h/INT 16h functions, SCSI, loading the BIOS from floppy, flash EPROM and so on. None of these is actually supported.

PC5086

The ROS supports INT 15h with AH=0C0h ("Get configuration table"). The table it returns is as follows:

	dw	8	;Size of table (8 bytes). 
	db	0FAh	;Model (PS/2 model 25 or 30)
	db	0	;Submodel (PS/2 model 30)
	db	0	;BIOS revision (1st)
	db	20h	;Feature byte 00100000b
			; * RTC installed
	db	0,0,0,0	;Other feature bytes

It also supports INT 15h with AH=0C2h (PS/2 mouse control) and AH=80h-92h (joystick support and OS hooks).

BIOS identifiers

PCs have a machine type at 0FFFFEh and a BIOS date at 0FFFF5h. For Amstrad XTs, these are:


John Elliott 15 June 2004