; GETA ; ; EINGABE-ROUTINE UEBER SIO-KANAL B ; ZEICHEN STEHT NACH EINGABE IM AKKUMULATOR ; MIT INTERRUPT ; CALL PRESS ;JR Z,GETA RET Z CALL GETAZ RET ; PRESS PUSH HL PUSH BC LD HL,APEIN LD B,A LD A,(APAUS) CP (HL) LD A,B POP BC POP HL RET GETAZ PUSH HL LD A,(APAUS) CALL PUFADR AND A LD (APAUS),A LD A,(HL) POP HL RET ; PUFADR PUSH DE LD D,0 LD E,A LD HL,0F00H ; ANFANGSADRESSE DES PUFFERS IST FESTGELEGT INC A JR NZ,PUFA1 ; NIEDERWERTIGER TEIL NUR VON E0H BIS FFH LD A,0E0H PUFA1 ADD HL,DE POP DE RET ; ISRZET PUSH AF PUSH HL IN A,(S0BD) LD HL,MCSQ BIT 0,(HL) JR NZ,OHNCSQ CP 13H JR Z,CTS CP 11H JR Z,CTQ CP 1BH JR Z,ESCEIN OHNCSQ PUSH AF LD A,(APEIN) CALL PUFADR LD (APEIN),A POP AF LD (HL),A ; ZEICHEN WIRD IN DEN RINGPUFFER EINGETRAGEN ENDIZ LD A,20H OUT (S0BC),A ; FREIGABE FUER DEN SIO (INTERRUPT NAECHSTES ZEICHEN) POP HL IBRT1 POP AF EI RETI ; CTS SET 6,(HL) JR ENDIZ ; CTQ RES 6,(HL) JR ENDIZ ; ESCEIN RES 4,(HL) JR ENDIZ ; ; ISR SONDERFALL DES EMPFANGS ; ISRSET PUSH AF LD A,1 OUT (S0BC),A IN A,(S0BC) LD A,30H ; RUECKSETZEN VON FEHLERN OUT (S0BC),A IN A,(S0BD) JR IBRT1 ; ;