Address in hex. | Contents / Function |
---|---|
0000 |
16 registers for interrupt level 0 (normal execution) |
0020 |
16 registers for interrupt level 1 (Async. comm.) |
0040 |
16 registers for interrupt level 2 (Tape/Disk/Printer/Serial I/O) |
0060 |
16 registers for interrupt level 3 (Keyboard) |
0055 |
Printer Status Byte A
Bit 1: Print emitter latch 2 Bit 2: Print emitter latch 1 Bit 3: Wire check or not ready Bit 4: Forms emitter B Bit 5: Forms emitter A Bit 6: Not end of forms Bit 7: Left margin signal |
0057 |
Printer Status Byte B
Bit 1: Print motor latch A (0 = not A) Bit 2: Print emitter interrupt Bit 3: Not ready interrupt Bit 4: Forms motor latch B (0 = not B) Bit 5: Forms motor latch A (0 = not A) Bit 6: Forms control interrupt Bit 7: Timer interrupt |
0082 |
Temporary storage for Diskette I/O Supervisor (save of return address in R2 for internal subroutines) |
008F |
Tape Status Byte
Bit 1: No device address E response Bit 2: Tape running Bit 3: Cartridge in place Bit 4: Erase on Bit 5: LED and erase OK Bit 6: File protected Bit 7: No beginning of tape (BOT) |
0090 |
Internal variable for I/O Supervisor Diskette:
Bit 1: Bit 2: ? Bit 3: 1=MFM Bit 4: ? Bit 5: Bit 6: Bit 7: ? |
009A |
Internal variable for I/O Supervisor Diskette: Cylinder number for I/O |
009C |
Internal variable for I/O Supervisor Diskette: Side for I/O (0=Side 0, other=Side 1) |
009E |
Internal variable for I/O Supervisor Diskette: Sector number for I/O |
00A0 |
Constant $0000 |
00A2 |
System flags
Bit 1: Bit 2: Bit 3: Bit 4: Bit 5: Bit 6: Bit 7: Bit 8: Bit 9: Bit 10: Bit 11: Bit 12: Bit 13: Bit 14: 1=Withing hexdump routine Bit 15: |
00A4 |
System flags
Bit 1: Bit 2: Bit 3: 1=Keyboard interrupt without Key Pending Flag Bit 4: Bit 5: 1=APL, 0=BASIC Bit 6: 1=I/O active Bit 7: 1=CRT on, 0=CRT off Bit 8: Level 0 Mode - 1=RWS, 0=ROS Bit 9: Level 1 Mode - 1=RWS, 0=ROS Bit 10: Level 2 Mode - 1=RWS, 0=ROS Bit 11: Level 3 Mode - 1=RWS, 0=ROS Bit 12: Printer status - 1=Printer busy, 0=Printer ready Bit 13: Printer status - ??? Bit 14: Printer status - ??? Bit 15: (1=Translate scancode?) |
00A6 |
Address to the routine for device test Tests if a given device (given in IOCB) is present and ready. R2 = return address, R3 = address of IOCB If the device is ready the routine jumps back to R2+2 else "ERROR 0xx yyy" in line 16 is printed and a jump to R2 is done. |
00A8 |
Highest available RWS address After restart it is the same value as in $00AA; after loading some IMFs or Customer Support Routine this value decreases. |
00AA |
Last available address in R/W Storage (RAM). This is the location of the last main memory address. A 32kB system will have a value of $7FFF. |
00AC |
Address of routine to jump into Executable ROS R2 = return address, R8 = destination address in ROS, eventually with additional parameters depending on the function called |
00AE |
Address of the I/O Supervisor Routine in Executable ROS that executes all I/O operations controlled by an IOCB. |
00B0 |
Scan- or keycode of last pressed key |
00B6 |
|
00BE |
Address of the first usable memory location, usually $0700. At ($BE)-$20 the system code 'IBM5100 ' (13 chars.) can be found, like the one needed for the directory entry on a diskette. Attention: Several ROS routines use that area as temporary storage and for internal variables! For example the vector table for the supervisor routines is located at $07C0. |
00C0 |
Address of the Screen Dump Routine in Executable ROS This routine is called e.g. by pressing the keys CMD-Print. |
00D2 |
Temporary storage for Diskette I/O Supervisor Return address to caller of I/O Supervisor |
00D6 |
(IMF flags)
|
00D8 |
Address of the vector table containing the entry points to the I/O Supervisor, for device addresses 0 to F. Each table entry consists of two words, the first word is the address of the builtin (ROS) I/O Routine, the second word, if not zero, the address of a user defined routine in RWS. |
00E6 |
$0F40 |
00E8 |
Diskette Status Byte A
Bit 1: Read mode Bit 2: Diagnostic mode Bit 3: Index Bit 4: Erase gate Bit 5: Diskette 2 Bit 6: CRC error Bit 7: Read/write overrun |
00E9 |
Diskette Status Byte B
Bit 1: MFM mode Bit 2: Filter control Bit 3: Current select Bit 4: Head engaged Bit 5: Head selected (0 = head 0) Bit 6: Access line Bit 7: Access line |
00F8 |
$1000 |
00FA |
$100A Address of the error message routine in ROS that prints ERROR 0xx yyzzin the last line. Parameters: R3=Address of IOCB, return address in R2 |
00FC |
Address of HOLD routine |
00FE |
$0D00 Address of hexdump routine |
01C0 |
$0501 |
01C2 |
$0202 |
01C4 |
$0503 |
01C6 |
$0204 |
01F0 |
$1DFA ROS routine that clears the screen to the end. Parameters: R14=Start address, return address in R2 |
01F2 |
$1D4A ROS routine that converts hex digits into integer Parameters: R14=Address of the hex digits, result in R15 |
01F4 |
$1C7C |
01F8 |
$1CF6 |
0200 |
Display buffer, 1kB in total. |
0600 |
Help routines in machine language $0600 has a jump routine into the Executable-ROS (and back again), $0630 (at least on a 5110) contains the device test routine. |
0B00 |
Load and start address for machine language programs |
0B42 |
Addresses of the IOCBs for file numbers FL0 to FL9 in BASIC mode |
120E |
Start of a BASIC program in token form |