; ; CUSTOM MOV-BIOS SKELETON FOR MOVE-IT (12/1/81) ; ; ; WRITTEN BY: JEFF WOOLF ; WOOLF SOFTWARE SYSTEMS ; 23842 ARCHWOOD ST. ; CANOGA PARK, CA 91307 ORG 100H ********** THE FOLLOWING EQUATES APPLY ONLY TO THE MORROW WUNDERBUS ********** PORT EQU 02h ;set this to port modem is to be on DR EQU 01h ;DATA READY BIT MASK BASE EQU 048h ;BASE PORT ADDRESS LSR EQU BASE+5 ;LINE STATUS REGISTER GRPSEL EQU BASE+7 ;GROUP SELECT PORT RBR EQU BASE ;RECEIVER BUFFER REGISTER THR EQU BASE ;TRANSMITTER HOLDING REGISTER THRE EQU 20h ;TRANSMITTER HOLDING REG EMPTY BIT MASK BIOS: EQU $ ;THIS IS THE USER'S BIOS!!! START: JMP 0302H ;THE WAY TO THE PROGRAM JMP 4000H ;END OF USER SECTION JMP INITI ;COMLINE INIT. JMP FINISH ;COMLINE DE-INIT. JMP INSTA ;COMLINE STATUS JMP INDAT ;COMLINE DATA INPUT JMP OUTSTA ;COMLINE OUTPUT STATUS JMP OUTDAT ;COMLINE OUTPUT DATA JMP CNFGMS ;POINT TO THE CONFIGURATION MESSAGE JMP DIAL ;AUTO-DIAL/ANSWER SUPPORT ; THE CONFIG MESSAGE IS 80 CHARACTERS LONG, PLUS A CR AND TWO LFS CNFGMS: DB 'MORROW DECISION ONE WUNDERBUS IO (PORT 2) ' DB 'USE BAUD.COM AFTER POWER UP ' DB 0DH,0AH,0AH,'$' INITI: ;INIT. COMLINE (NO ENTRY,EXIT PARMS) ; ----- ANY CODE THE SYSTEM NEEDS TO INITIALIZE THE COMLINE ----- ; ----- SHOULD BE ADDED HERE ----- RET FINISH: ;DE-INIT. COMLINE (NO ENTRY,EXIT PARMS) ; ----- ANY CODE THE SYSTEM NEEDS TO UN -- INITIALIZE THE COMLINE ----- ; ----- SHOULD BE ADDED HERE ----- RET INSTA: ;INPUT STATUS (A=FF IF CHAR READY,0 IF NOT) ; ADD A ROUTINE TO READ THE STATUS OF THE INPUT PORT HERE ; USE ANY REGISTERS YOU LIKE, AND UPON EXIT, SET THE A REG ; TO 0FFH IF A CHARACTER IS WAITING, OR TO 0 IF NOT MVI A,PORT OUT GRPSEL ;SELECT GROUP 2 Š IN LSR ;READ LINE STATUS REGISTER ANI DR ;CHECK DATA READY BIT RZ ;IF 0 NO DATA IS READY MVI A,0FFh ;ELSE DATA IS READY RET INDAT: ;INPUT DATA (EXIT W/ CHARS. IN A REG) ; ADD A ROUTINE TO GET THE DATA AT THE INPUT PORT HERE ; RETURN THE CARACTER IN THE A REGISTER (DO NOT CHANGE THE ; CHARACTER IN ANY WAY! MVI A,PORT OUT GRPSEL ;SELECT GROUP 2 IN RBR ;READ THE DATA RET OUTSTA: ;OUTPUT STATUS (A=FF IF RDY FOR CHAR, 0 IF NOT) ; ADD A ROUTINE TO READ THE STATUS OF THE OUTPUT PORT HERE. ; USE ANY REGISTERS YOU LIKE, AND, UPON EXIT, SET THE A REG ; TO 0FFH IF THE DATA PORT IS READY TO SEND DATA, OR TO 0 IF ; NOT. MVI A,PORT OUT GRPSEL ;SELECT GROUP 2 IN LSR ;READ LINE STATUS REGISTER ANI THRE ;CHECK TRANSMITTER HOLDING REG. BIT RZ ;=0 IF NOT READY MVI A,0FFh ;ELSE READY FOR ANOTHER BYTE RET OUTDAT: ;OUTPUT DATA (CHAR IN A ON ENTRY) ; ADD A ROUTINE TO OUTPUT THE CHARACTER IN THE A REGISTER TO ; THE DATA PORT. PUSH PSW ;PRESERVE CONTENTS OF A REGISTER MVI A,PORT OUT GRPSEL ;SELECT GROUP 2 POP PSW OUT THR ;OUTPUT TO TRANSMITTER HOLDING REGISTER RET DIAL: ;AUTO DIAL/ANSWER SUPPORT ; ; UPON ENTRY, B=0 FOR DIALING, 1 FOR HANGING UP, ; OR 2 FOR ANSWERING ; ; IF B=0 (DIALING), HL POINTS TO THE DIALING STRING, ; TERMINATED BY A COMMA, CR, OR CONTROL-Z ; RET END