DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC700 "Piccolo"

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC700 "Piccolo"

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦77e4fc87f⟧ TextFile

    Length: 2176 (0x880)
    Types: TextFile
    Names: »PIO.MAC«

Derivation

└─⟦72577d508⟧ Bits:30003297 Diverse BIOS typer til RC703
    └─ ⟦this⟧ »PIO.MAC« 

TextFile

        SUBTTL	Z-80 PIO DRIVER
;========================================================
;= Z80 PIO DRIVER                                       =
;========================================================

KEYFLG:DB      0               ; KEYBOARD BUSY FLAG (0=BUSY)
PARFLG:DB      0               ; CHANNEL B BUSY FLAG (0=BUSY)

;========================================================
;= CHANNEL A (KEYBOARD)                                 =
;========================================================

CONST:  LD      A,(KEYFLG)     ;
        RET
        
CONIN:  LD      A,(KEYFLG)     ;
        OR      A               ;
        JP      Z,CONIN         ; WHILE KEYBOARD_BUSY DO;
        DI                      ;
        XOR     A               ;
        LD      (KEYFLG),A     ; KEYBOARD_BUSY:=TRUE;
        EI                      ;
        IN      A,(PIOAD)       ; A := CONVERT(CHAR);
        LD      C,A             ;
        LD      HL,INCONV       ;
        CALL    CON1            ;
        RET                     ;
        
        PAGE
;========================================================
;= CHANNEL A (KEYBOARD) INTERRUPT ROUTINE               =
;========================================================
        
KEYIT:  LD	(SP_SAV),SP	; SAVE ACCUMULATOR AND FLAGS
	LD	SP,ISTACK	;
	PUSH	AF		;
        LD      A,0FFH          ;
        LD      (KEYFLG),A      ;
        POP     AF              ; RESTORE ACCUMULATOR AND FLAGS
	LD	SP,(SP_SAV)	;
        EI                      ;
        RETI                    ;

;========================================================
;= CHANNEL B INTERRUPT ROUTINE                          =
;========================================================
        
PARIN:  LD	(SP_SAV),SP     ; SAVE ACCUMULATOR AND FLAGS
	LD	SP,ISTACK	;
	PUSH	AF		;
        LD      A,0FFH          ;
        LD      (PARFLG),A      ;
        POP     AF              ; RESTORE ACCUMULATOR AND FLAGS
	LD	SP,(SP_SAV)	;
        EI                      ;
        RETI                    ;
        
	PAGE
«eof»