* TESTF
*
ERORQQ MOV  R11,*S+
       MOV  @ERRORF,R0
       JNE  EROR10
       BL   @PASS00
       JMP  EROR99
EROR10 BL   @FAIL00
       LI   R0,13
       MOV  R0,@ERRORP
       BL   @LNKE00
       BL   @PRME00
       BL   @KBDE00
       BL   @ATDE00
       BL   @RECE00
       BL   @SYNE00
       BL   @NEXT00
EROR99 B    @START
*
LNKE00 MOV  R11,*S+
       MOV  @LINKEF,R0
       JEQ  LNKE99
       LI   R3,LNKET1
       LI   R4,NULLTX
       BL   @ELPT00
LNKE99 DECT S
       MOV  *S,R11
       RT
LNKET1 TEXT 'MBX COMMUNICATION FAILURE'
NULLTX BYTE 0
*
PRME00 MOV  R11,*S+
       MOVB @PRMTST,R0
       ANDI R0,>0100
       JEQ  PRME01
       LI   R3,PRMET1
       LI   R4,NULLTX
       BL   @ELPT00
PRME01 MOVB @PRMTST,R0
       ANDI R0,>0200
       JEQ  PRME02
       LI   R3,PRMET2
       LI   R4,NULLTX
       BL   @ELPT00
PRME02 MOVB @PRMTST,R0
       ANDI R0,>1000
       JEQ  PRME03
       LI   R3,PRMET3
       LI   R4,NULLTX
       BL   @ELPT00
PRME03 MOVB @PRMTST,R0
       ANDI R0,>800
       JEQ  PRME99
       LI   R3,PRMET4
       LI   R4,PRMET5
       BL   @ELPT00
PRME99 DECT S
       MOV  *S,R11
       RT
PRMET1 TEXT 'ROM CHECKSUM FAILURE'
       BYTE 0
PRMET2 TEXT 'RAM FAILURE'
       BYTE 0
PRMET3 TEXT 'PIA REGISTER FAILURE'
       BYTE 0
PRMET4 TEXT 'COMBO CHIP REGISTER'
       BYTE 0
PRMET5 TEXT 'FAILURE'
       BYTE 0
       EVEN
*
KBDE00 MOV  R11,*S+
       LI   R1,128
KBDE10 MOV  @KBFLGS-2(R1),R0
       JEQ  KBDE20
       DECT R1
       JNE  KBDE10
       LI   R3,KBDET1
       LI   R4,KBDET2
       BL   @ELPT00
       B    @KBDE99
KBDE20 CLR  R0
       LI   R1,8
KBDE21 MOV  R0,R2
       LI   R3,8
KBDE22 MOV  @KBFLGS(R2),R4
       JEQ  KBDE23
       INCT R2
       DEC  R3
       JNE  KBDE22
       MOV  R0,*S+
       MOV  R1,*S+
       LI   R3,KBDET3
       LI   R4,TEXTB1
       LI   R5,KBDET4
       LI   R6,TEXTB1
       BL   @MVTB00
       NEG  R1
       AI   R1,8+'1'
       SWPB R1
       MOVB R1,@TEXTB1+4
       BL   @ELPT00
       DECT S
       MOV  *S,R1
       DECT S
       MOV  *S,R0
       MOV  R0,R2
       LI   R3,8
KBDE24 CLR  @KBFLGS(R2)
       INCT R2
       DEC  R3
       JNE  KBDE24
KBDE23 AI   R0,16
       DEC  R1
       JNE  KBDE21
KBDE40 CLR  R0
       LI   R1,9
KBDE41 MOV  R0,R2
       LI   R3,8
KBDE42 MOV  @KBFLGS(R2),R4
       JEQ  KBDE43
       AI   R2,16
       DEC  R3
       JNE  KBDE42
       MOV  R0,*S+
       MOV  R1,*S+
       LI   R3,KBDET3
       LI   R4,TEXTB1
       LI   R5,KBDET5
       LI   R6,TEXTB1
       BL   @MVTB00
       NEG  R1
       AI   R1,8+'A'
       SWPB R1
       MOVB R1,@TEXTB1+7
       BL   @ELPT00
       DECT S
       MOV  *S,R1
       DECT S
       MOV  *S,R0
       MOV  R0,R2
       LI   R3,8
KBDE44 CLR  @KBFLGS(R2)
       AI   R2,16
       DEC  R3
       JNE  KBDE44
KBDE43 INCT R0
       DEC  R1
       JNE  KBDE41
       CLR  R1
       LI   R0,64
KBDE61 MOV  @KBFLGS(R1),R2
       JEQ  KBDE62
       LI   R3,KBDET6
       LI   R4,TEXTB1
       LI   R5,KBDET7
       LI   R6,TEXTB1
       BL   @MVTB00
       MOV  R0,*S+
       MOV  R1,*S+
       MOV  R1,R0
       SLA  R0,4
       AI   R0,>3100
       MOVB R0,@TEXTB1+11
       SLA  R1,7
       ANDI R1,>700
       AI   R1,'A'*>100
       MOVB R1,@TEXTB1+9
       BL   @ELPT00
       DECT S
       MOV  *S,R1
       DECT S
       MOV  *S,R0
KBDE62 INCT R1
       DEC  R0
       JNE  KBDE61
KBDE99 DECT S
       MOV  *S,R11
       RT
KBDET1 TEXT 'NO RESPONSE AT ANY'
       BYTE 0
KBDET2 TEXT 'KEYBOARD LOCATION'
       BYTE 0
KBDET3 TEXT 'NO RESPONSE ON KEYBOARD'
       BYTE 0
KBDET4 TEXT 'ROW N'
       BYTE 0
KBDET5 TEXT 'COLUMN X'
       BYTE 0
KBDET6 TEXT 'NO RESPONSE AT KEYBOARD'
       BYTE 0
KBDET7 TEXT 'LOCATION X-N'
       BYTE 0
