|ãMDPORT+ COM�èMDPORT+ DOC xMMDPORT+ MACãm;************************************************************************ ;* * ;* 09/16/86 BY RONALD E. JACOBS/JACOBS COMPUTER SERVICES * ;* MAKE THE COMPUTER TRANSPARENT- CONNECT THE CONSOLE AND SERIAL * ;* PRINTER PORTS TOGETHER. FOR THE MORROW MD2/MD3 SERIES. * ;* * ;************************************************************************ .Z80 ;USE Z80 MNEMONICS CONDAT EQU 0FCH CONST EQU 0FDH LSTDAT EQU 0FEH LSTST EQU 0FFH RXFULL EQU 1 ;RECEIVER BUFFER FULL BIT TXEMTY EQU 2 ;TRANSMITTER BUFFER EMPTY BIT INITIAL:LD HL,BUFFER ;POINTER TO BASE OF BUFFER LD DE,BUFFER ;POINTER TO BASE OF BUFFER RDCON: IN A,(CONST) ;CHECK FOR CHARACTER FROM CONSOLE BIT RXFULL,A JP Z,RDLST ;IF NO CHARACTER IS READY AT CONSOLE PORT IN A,(CONDAT) ;GET THE CHARACTER FROM THE CONSOLE CP 0 ;WAS IT THE BREAK CHARACTER? JP Z,0 ;WARM BOOT IF SO LD B,A ;SAVE CONTENTS OF A LSTMTY: IN A,(LSTST) BIT TXEMTY,A ;IS LIST PORT TRANSMITTER BUFFER EMPTY? JP Z,LSTMTY LD A,B ;GET CHARACTER THAT WAS STORED IN B OUT (LSTDAT),A ;SEND CHARACTER OUT PRINTER PORT RDLST: IN A,(LSTST) ;CHECK FOR CHARACTER FROM PRINTER PORT BIT RXFULL,A JP Z,LSTBUF ;IF NO CHARACTER IS READY AT LIST PORT IN A,(LSTDAT) ;GET THE CHARACTER FROM THE LIST SERIAL PORT LD (DE),A ;SAVE CONTENTS OF A INC DE ;STORAGE POINTER <-- STORAGE POINTER + 1 JP RDLST ;IMMEDIATELY CHECK FOR ANOTHER CHARACTER LSTBUF: LD A,E CP L JP NZ,CONMTY ;IF CHARACTERS ARE IN BUFFER LD A,D CP H JP Z,INITIAL ;IF NO CHARACTERS IN BUFFER, RESET POINTERS CONMTY: IN A,(CONST) ;IS CONSOLE PORT TRANSMITTER BUFFER EMPTY? BIT TXEMTY,A JP Z,RDLST ;IF NOT YET EMPTY, CHECK FOR INCOMING CHARACTER LD A,(HL) ;RETRIEVE CHARACTER THAT WAS STORED IN BUFFER OUT (CONDAT),A ;SEND CHARACTER TO CONSOLE INC HL ;RETRIEVE POINTER = RETRIEVE POINTER + 1 JP RDCON ;LOOP BACK, DO IT ALL OVER AGAIN BUFFER: END !HHÛýËOÊ"ÛüþÊGÛÿËWÊxÓþÛÿËOÊ0ÛþÃ"{½Â:z¼ÊÛýËWÊ"~Óü#à ·ë,®Ê£àæ›ðFàÀ€žMDPORT« ió bù Ronalä E® Jacobs¬ whï oî Augusô 11¬ 198· ió � enterinç iô intï thå publiã domaiî foò non-comerciaì use® � Ronalä E® Jacobó reserveó tï himselæ thå righô tï makå � commercial use of this program. MDPORT« essentiallù connectó thå twï seriaì portó togetheò oî � á floppù disë MicroDecision® Uså thå setuð prograí firsô tï � seô thå seriaì porô bauä rateó oî á Revisioî ² board® Wheî � yoõ ruî MDPORT« datá comminç iî wilì displaù aó ió oî youò � terminal¬ withouô passinç througè thå BIOS® Datá froí thå � terminaì wilì bå senô ouô oæ thå seconä seriaì porô witè nï � changes¬ withouô passinç througè thå BIOS® Tï exiô froí � MDPORT+ type the BREAK key. MDPORT« haó á buffeò iî iô whicè bufferó characteró comminç � intï thå computeò froí thå seconä seriaì porô beforå theù arå � senô ouô thå firsô seriaì port® Thå buffeò wilì bå usefuì iæ � characteró arå beinç receiveä fasteò thaî theù caî bå � displayeä oî thå terminal® Thå capacitù oæ thå buffeò ió � abouô 63k¬ althougè iæ thaô mucè ió useä thå operatinç systeí � wilì bå wipeä ouô anä iô wilì bå necessarù tï colä booô tï geô � bacë tï CP/M® Iæ thå capacitù oæ thå buffeò ió exceedeä � MDPORT« wilì writå oveò itself® Iô isn'ô likelù thaô thå � buffer will ever get anywhere near to filling up.