TITLE M5b Z-80 MONITOR CHARACTER I/O ROM LIST NOCOND ;**************************************************************************** ; ; SYSTEM MONITOR FOR M5b ; (c) 1982,1983 GRH ELECTRONICS, CUPERTINO, CA ; ;**************************************************************************** ; ; This code module contains the system character I/O drivers and ; resides in the same address space as the resident Monitor ROM. The ROMs ; communicate with each other through a ROM transfer function. ; *INCLUDE B:ZBMH122.HDR ;**************************************************************************** ; ; Revision status: ; ; 1.0 - Release ; 1.22 11-22-90 GRH ; Split off from Monitor code to separate ROM in order to gain space ; for I/O drivers and interrupt code. ; Add rom xover function as include file. ; Add function dispatcher for execution and breakpoint entries. ; Add CON: selection based on Naked Terminal presence. ; ; 1.23 8-16-91 GRH ; Move code to banked rom. Add rom swapper. ; VERSN EQU 123 ;**************************************************************************** FORM FALSE EQU 0 TRUE EQU NOT FALSE ; ; INCLUDE SYSTEM DEFINITION FILES ; ;*MACLIB ASMBTOOL.MLB ;*INCLUDE MONBOARD.DEF ;*INCLUDE B:ZBMF101.DEF ;*INCLUDE B:ZBMG101.DEF ;*INCLUDE CB2.DEF ; LIST OFF *MACLIB ASMBTOOL.MLB *INCLUDE MONBOARD.DEF *INCLUDE B:ZBMF101.DEF *INCLUDE B:ZBMG101.DEF *INCLUDE CB2.DEF LIST ON THIS_ROM EQU CHR_RNUM BNKREG EQU BNKPORT SUBTTL EXTERNAL ENTRY POINTS ORG MONROM ; JP CINIT ;COLD START ; ; EXTERNAL FUNCTION ENTRY DURING INTERRUPT ; DS (MONROM + 6) - $ JP I_STUB ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ; EXTERNAL FUNCTION STUB FOR USE DURING AN INTERRUPT WITHOUT THE ; RESIDENT ROM ENABLED. USE IN ALL NON-RESIDENT ROMS. ; ENTRY- A= FUNCTION # ; ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; I_STUB: ADD A,2 ;BIAS UP PUSH HL LD H,MR_RNUM ;USE RESIDENT ROM LD L,A EX (SP),HL CALL XROMF ;GO EXECUTE THE FUNCTION INC SP ;BALANCE STACK INC SP RET ;**************************************************************************** ; ; COLD INIT ONLY SWITCHES TO RESIDENT ROM ; ;**************************************************************************** ; CINIT: ; ; SET STACK ; LD SP,MONSTK ; ; RESET ROM FUNCTION SHOULD NOT RETURN ; LD HL,[MR_RNUM SHL 8] + 1 ;RESET PUSH HL CALL XROMF ; ; IF RETURNED THEN HALT ; HALT SUBTTL MONITOR BOARD SHADOW ROM SELECTION PROCEDURE *INCLUDE B:XROM.Z80 SUBTTL BANKED MEMORY EXECUTER *INCLUDE B:ZBMX100.Z80 SUBTTL MONITOR FUNCTION CALL DISPATCHER ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ; ENTRY- A= FUNCTION # ; ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; FUNCH: PUSH HL LD HL,2006H ;SET FUNCTION HANDLER ADDRESS ; DO_X: LD (RXOFF),HL LD L,0FEH ;SET BANK # LD (RXBNK),HL ; POP HL JP CALLBNK ;GO EXECUTE ;**************************************************************************** ; ; INITIALIZE I/O ; ;**************************************************************************** ; ROM_INIT: PUSH HL LD HL,2000H ;INIT ENTRY JR DO_X END