; Assembly language functions for MODEM3.PAS ; for Intel 8080 processor. ; Written by Jack M. Wierda Chicago Illinois ; This software is in the public domain. ; ; Routines: STAT, INPUT, OUTPUT ; .FUNC STAT,3 ; POP HL ;GET RETURN ADDRESS POP DE ;GET ZERO POP BC ;GET ZERO POP BC ;GET MASK POP DE ;GET EXPECTED RESULT LD D,C POP BC ;GET PORT LD A,C ;PUT PORT IN A LD ($1+1),A ;STUFF PORT $1 IN A,(0) ;PORT LOADED ABOVE AND D ;AND DATA & MASK CP E ;COMPARE WITH EXPECTED RESULTS JP NZ,$2 LD DE,1 ;LOAD BOOLEAN TRUE PUSH DE ;RETURN RESULT ON STACK JP (HL) $2 LD DE,0 ;LOAD BOOLEAN FALSE PUSH DE ;RETURN RESULT ON STACK JP (HL) ;RETURN ; ; .FUNC INPUT,2 ; POP HL ;GET RETURN ADDRESS POP DE ;GET ZERO POP BC ;GET ZERO POP DE ;GET MASK POP BC ;GET INPUT PORT LD A,C ;PUT PORT IN A LD ($1+1),A ;STUFF PORT $1 IN A,(0) ;PORT LOADED ABOVE AND E ;MASK DATA LD E,A PUSH DE ;RETURN RESULT ON STACK JP (HL) ;RETURN ; ; .PROC OUTPUT,2 ; POP HL ;GET RETURN ADDRESS POP DE ;GET DATA POP BC ;GET OUTPUT PORT LD A,C ;PUT PORT IN A LD ($1+1),A ;STUFF PORT LD A,E ;PUT DATA IN A $1 OUT (0),A ;PORT LOADED ABOVE JP (HL) ;RETURN ; ; .END