
;       COMPRN.COM :



;
;    RS-232C PRINTER    
;
;
;           v1.01
;     
;     
;  Copyright(c) 26-oct-1993 by
;       .. (AvE)


INCLUDE DRIVER.H  ;    
INCLUDE DEVICE.H  ;
INCLUDE BIOS.H    ;
INCLUDE CHARS.H   ;
INCLUDE DSPK.H    ;

;      

COMD      EQU  USR+6        ;  
COMD_VH   EQU  USR+8        ; GETVER,INIT,EXIT


DRCOMP EQU 1            ;   


    ASEG
    ORG 100H
    .Z80

;
;
;          


    LD   SP,STACK+200   ;  
    JP   INIT

STACK: DEFS 203,0

INIT:

    LD   D,LST          ;  
    LD   C,TBLDRIV      ;    BIOS
    LD   HL,DRBEGIN     ;    
    CALL DRVINSTALL     ;    

    
    LD   H,01011101B    ; 8-BITS,PARITY,1 STOP BIT
    LD   L,7            ;  = 9600 BPS

    LD   DE,0
    LD   BC,0

    LD   (8H),BC
    LD   (0AH),DE
    LD   (0CH),HL

    LD   D,COMD_VH      ;   INIT  
    CALL AENT1          ;   

    ...  ...

    CALL PRINT
    DB   CR,LF,'   v1.01 '
    DB   CR,LF,'      Copyright(c) 26-Oct-1993 by  ..'
    DB   CR,LF,EOT

    JP   0              ;  

.PRINT                  ;  

INCLUDE DRIVER.INC    ;   
                      ;  

;

DRBEGIN:

;
;
;      

    .PHASE LSTLOC

;
;       

DRMOUS:
    JP   PRNSTAT        ;   CONSTATE
    DB   0C9H,0,0       ;   
    JP   OUTPRN         ;   CONOUT

    DB   10,13          ; oct - 1993
    DW   LSTLOC,LSTCMRS
    DB   8              ;   = 1

;=============================
;          CONSTATE
;=============================

PRNSTAT:EI
        LD   C,4     ;  #4
        CALL REGIN   ;    
        LD   D,COMD  ;
        CALL AENT2   ;    RS-232C
        CALL REGOUT  ;     
        BIT  7,L     ; DSR ?
        JR   Z,NO    
        LD   A,0FFH  ;      
        RET
NO:     XOR  A       ;     
        RET

;============================
;          CONOUT
;============================

OUTPRN: EI
        LD   C,A
LOOP:   PUSH BC
LOOP1:  CALL PRNSTAT    ;      ?
        OR   A
        JR   Z,LOOP1    ; 
        POP  BC
        PUSH BC
        CALL REGIN      ;    
        LD   D,COMD     ;   SEND
        CALL AENT0      ;     C
        CALL REGOUT     ;     
        POP  BC
        JR   C,LOOP     ;   
        RET

;=================================
;   
;=================================

REGIN:
     LD   (0FH),A
     LD   (8H),BC
     LD   (0AH),DE
     LD   (0CH),HL
     RET


REGOUT:
    LD   BC,(0EH)
    PUSH BC
    POP  AF
    LD   BC,(8H)
    LD   DE,(0AH)
    LD   HL,(0CH)
    RET



    .DEPHASE

       END

YS
  :

           COMExxx

    .

                 