[net.ham-radio] Xerox 820 REVEALED#2--Monitor Jump Tables

mancuso@psuvax.UUCP (Pat Mancuso) (04/04/84)

This article contains information about the monitor supplied with the
Xerox 820 board.  The Jump table has more entries in it than the manual
lets on.  I have figured out what some of the 'undocumented' ones
do, but the explanations that I have given may not show *all* of the 
features/ramifications of the functions.  There are 2 major jump tables
in the monitor, one which contains the low-level operations (F000-F042)
and one that contains jumps to the higher level operations (F7FD-F805).  The
manual (from BG Micro) only mentions the first 14 entries in the first
table.

Monitor Jump Table: Low-level Operations

ADDR	Name	Function
----	----	-----------------------------------------------------
F000	INIT 	Cold start entry
		In : none
		Out: Does not return

F003	PROMPT	Warm start entry
		In : none
		Out: Does not return

F006	CONST	Console status test
		In : none
		Out: Status in A, FF if char avail, 00 otherwise
		
F009	CONIN	Console input
		In : none
		Out: Character in A (loop until char avail)

F00C	CRTOUT	Memory-mapped CRT output
F00F	CRTOUT    "       "    "    "
		In : Character in A
		Out: none

F012	SIOST	SIO Port B status test
		In : none
		Out: Status in A, FF if char avail, 00 otherwise

F015	SIOIN	SIO Port B input
		In : none
		Out: Character in A (loop until char avail)

F018	SIOOUT	SIO Port B output
		In : Character in A
		Out: none

F01B	SELECT	Disk drive select
		In : Unit number in C (if drive not ready, keep present one)
		Out: Status in A

F01E	HOME	Restore to track 0
		In : none
		Out: Status in A

F021	SEEK	Seek track
		In : Track number in C
		Out: Status in A

F024	READ	Read sector into memory
		In : Sector number in C, Buffer pointer in HL
		Out: Status in A

F027	WRITE	Write sector from memory
		In : Sector number in C, Buffer pointer in HL
		Out: Status in A

(The following jumps are not listed in the manual--info may not be complete)

F02A	DUMP	Dump memory to screen
		In : ??
		Out: ??

F02D	HOUTHL	Outputs 4 hex digits contained in HL to CRT
		In : Number to be printed in HL
		Out: ??

F030	HOUTA	Outputs 2 hex digits contained in A to CRT
		In : Number to be printed in A
		Out: ??

F033	??	??
		In : ??
		Out: ??

F036	COUTA	Outputs character in A to CRT
		In : Char to be printed in A
		Out: ??

F039	??	Prints CRLF (does more, though)
		In : ??
		Out: ??

F03C	CONIN2	Gets char like CONIN, but also echoes it to screen
		In : ??
		Out: Char in A (loops until char avail)

F03F	??	??
		In : ??
		Out: ??

F042	PRSTR	Outputs string to CRT.  String immediately follows call,
		terminated by 04.  Returns to instruction following 04.
		In : ?? (uses return address for start of string)
		Out: ??

(The following are monitor high-level function calls)

F7F0	DUMP	Dump memory routine
		In : ??
		Out: ??

F7F3	??	??
		In : ??
		Out: ??

F7F6	MEM	Memory examine/change
		In : ??
		Out: ??

F7F9
F7FC
F7FF
F802	??	??
		In : ??
		Out: ??

F805	TYPWR	Typewriter
		In : ??
		Out: ??

---
Overall there is a smell of fried onions.  (fnord)

                                 :+: Pat Mancuso
                                 :+: Penn State University
                        Usenet:  :+: ...!psuvax!mancuso
                        Bitnet:  :+: mancuso@psuvax1