IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF) IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

classiccomputers.info
from classiccomputers.info More from this publisher
25.03.2015 Views

LOC OBJ LINE SOURCE 97. ;--------------------------------------­ 97. ; INITIAL RELIABILITY TEST -- PHASE 4 97. ;--------------------------------------­ 977 ASSUME CS:COOE ,OS: DATA E4A7 20333031 97. '1 DB • 301' 0004 97. EQU $-FI J KEYBOARD MESSAGE E4A8 313331 980 DB '131' "L EOU t-F2 i CASSETTE MESSAGE E4AE 363031 982 F3 O' '601 ' ".......... 0003 9Bl " ••• 'IL 00Q3 9B3 F3L EOU $-F3 ; DISKETTE MESSAGE 98. E481 985 F. LABEL WORD ; PRINTER SOURCE TABLE E4Bl BC03 986 OW 38CH E483 7603 9B7 OW 378H E485 7602 9BB OW 278H E487 989 F'E LABEL WORD £487 30313233343536 9'0 ASCII.TBl DB '0123456789ABCDEF' 37383941424344 .546 991 .-------------------------------------------­ 9'2 HEST.12 9.J KEYBOARD TEST 99. ;DESCRIPTION E4C7 '.B TSTl2: 99. PESET THE KE'tBOARD AND CHECK THAT SCAN CODE AA.' IS RETURNED 99. TO THE CPU. CHECK FOR STUCK KEYS. 9.7 i -----------------------------------------.-­ E4C7 884000 MOV AX,DATA ;POINT OS TO DATA SEG E4CA 8E08 1000 MOV OS,AX E4CC 803E120001 1001 eMP ~:FG_TST ,I ;MANUFACTURING TEST HODE? E401 7439 1002 JE F7 ; YES - SKIP KEYBOARD TEST E4D3 E8B201 1003 CAll K8D_RESET ; ISSUE SOFTWARE RESET TO KEYBRD E4D6 E32B 1004 JCXZ '6 i PRINT ERR HSG IF NO INTERRUPT E4D8 B04D 1005 NOV AL,4DH ; ENABLE KEYBOARD E40A E661 1006 OUT PORT_B,Al E40C 80FBll 1007 CMP Bl,OAAH iSCAN CODE AS EXPECTED? ".......... 1009 E40F 7522 1006 JHE F. iNO - DISPLAY ERROR HSG 1010 CHECK FOR STUCK KEYS 1011 E4E1 BOCt 1012 tIOV Al,otCH ; e lR KBD. SET ClK lINE HIGH E4E3 E661 Ion OUT PORT_B,Al E4£5 B04C 1014 MOV Al.4CH IENABlE KBD,elK IN NEXT BYTE E4E7 E661 1015 OUT PORT_B,Al E4E9 2BC9 1016 SUB ex,cx E4EB 1017 F5: ; KBD_WAIT: E4EB E2FE 1018 lOOP '5 ;DELAY FOR A WHILE E4ED E460 1019 IN Al,KBD_IN ICHECK FOR STUCK KEYS E4EF 3COO 1020 CMP Al,o iSCAN CODE = O? E4Fl 7419 1021 JE '7 J YES - CONTINUE TESTING E4F3 8AE8 1022 MOV eH,Al .SAVE SCAN CODE E4F5 BI04 1023 MOV Cl,4 E4F7 02E8 1024 5H. Al,el iRIGHT-JUSTIFY HIGH BYTE E4F9 E89CFF 1025 CAll XlAT_PIHHT_CODE j CONVERT AND PRINT E4FC 8AC5 1026 MOV Al.CH JRECOVER SCAN CODE E4FE 240F 1027 AND Al.OFH iISOlATE LOW ORDER BYTE E500 E895FF 1028 CAll XlAT_PRINT_CODE I CONVERT ANO PRINT E503 BEA7E4 1029 F6: MDV 5I.OFFSET F 1 ;GET MSG AOOR E506 B90400 1030 MOV CX,F1l ;GET HSG BYTE COUNT E509 E86E01 1031 CAll P_HSG i PRINT MSG ON SCREEN 1032 1033 SETUP INTERRUPT VECTOR TABLE 1034 ESOC 1035 F7: ; SE1UP_lNT_TABlE: E50C 2BCO 1036 SUB AX,AX £50£ 8ECO 1037 MOV ES,AX ".......... £510 B93000 1038 MOV CX,24*Z: ;GET VECTOR CNT E513 OE 1039 PUSH CS iSETUP OS SEG REG E514 IF 1040 POP OS £515 BEnF£ 1041 MOV SI.OFEF3H ; OFFSET VECTOR_TABLE E518 BF2000 1042 MOV OI.OFFSET INT_PTR E51B FC 1043 CLD E5lC F3 1044 .EP HOV5W E51D AS A-IS

lOC OBJ LINE SOURCE ESIE 884000 E521 8E08 f523 B04t1 £525 E661 E527 BOFF E529 £621 f5za B086 £520 £643 ESZ' 860304 £532 (642 !534 8AC4 £536 £642 E538 £462 f53A 2410 f5X 1.26800 E53F E83E14 ESifZ £83814 ES45 E30C £547 81F84005 E54B 7306 £540 61F81004 E551 7309 E553 E553 BEABE4 E556 B90300 £559 £86EOI ESSC ESSC 80Ft ESSE £621 E560 1.01000 E563 1.801 E565 7503 E567 E98900 £56A E56A Boee E56C £621 E56£ 8400 £570 CDn f572 F6C4FF f575 7520 £577 BAF201 £57. eOIC f57C EE ES7D 28C9 E57F E51F E2FE E581 E581 ElFE E583 3302 1045 J-------------------------------------------­ 1046 ;TEST.Il 1047 CASSETTE DATA WRAP TEST 1048 .DESCRIPTION 1049 , TURN CASSETTE MOTOR OFF. WRITE A BIT OUT TO THE CASSETTE DATA BUS. 1050 VERIFY THAT CASSETTE DATA READ IS WITHIN A VALID RANGE. 1051 ; -------------------------------------------­ 1052 1053 TURN THE CASSETTE HOTOR OFf 1054 1055 NOV AX,DATA ;POINT OS REG TO DATA SEG 1056 HOV OS,AX 1057 HOV AL,04DH ; SET TIMER 2: SPK OUT, AND CASST 1058 OUT PORT_B.U jOur BITS ON. CASSETTE MOT OFf 1059 lObO 1061 WRITE A BIT 1062 I10V AL.OffH ;DISABLE TIHER INTERRUPTS 1063 OUT nlTMI,AL 1064 NOV AL.OB6H iSEL TIM 2, LSB, t1S8, l1D 3 106S OUT TltIER+3,AL jWRlTE 8253 CMD/MODE REG 1066 NOV AX, 1235 ;5ET TIMER 2 CNT fOR 1000 USEC 1067 OUT TIMEFh2.Al ;WRITE TIMER 2 COUHTER REG 106a HOV AL,AH ;WRITE HSB 1069 OUT TIMER+2,AL 1070 1071 READ CASSETTE INPUT 1072 1073 IN AL,PORT_C ;READ VAWE OF CASS IN BIT 1074 AND AL~ I OH ; ISOLATE FRctI OTHER BITS 107$ NOV LAST_VAl,AL 1076 CALL READ_HALF_BIT 1077 CALL READ_HALF_BIT 1078 JCXZ fa ; CAS_ERR 1079 CN" BX.MAX_PERIOD 1080 JNC fa i CAS_ERR 1081 CHP BX,MIN_PERIOD 1082 JNC f9 ;GO TO NEXT TEST IF OK 1083 Fa: ) CAS_ERR: I ... HOV SI.OfFSET F2 iCASSETTE WRAP FAIlED lOSS NOV CX,f2L 1086 CALL P_MSG ;GO PRINT ERROR MSG 1087 ; -------------------------------------------­ 1088 iTEST.14 1089 DISKEnE ATTACHMENT TEST 1090 lDESCRIPTION 1091 CHECK IF IPL DISKETTE DRIVE IS ATTACHED TO SYSTEM. IF ATTACHED. 1092 VERIFY STATUS OF NEC FDC AFTER A RESET. ISSUE A RECAL AHD SEEK 1093 CHO TO FDC AND CHECK STATUS. COI1PLETE SYSTEI1 INITIALIZATION THEN 1094 PASS CONTROL TO THE BOOT LOADER PROGRAJ1. 1095 l-------------------------------------------­ 1096 F9: 1097 MOV AL.OFCH ;ENABLE TIMeR AND KeD INTS 1098 OUT INTAOI,Al 1099 MOV AL.BYTE PTR EQUIPJLAG ;GET SENSE SWS INFO 1100 TEST AL.OIH ;IPL DISKETTE DRI .... E AHCH? 1101 JNZ fl. ;YES - TEST DISKETTE CONTR 1102 JNP ,.. .NO - SKIP THIS TEST 1103 FlO: ; DISK_TEST: 1104 MeV AL,OSCH ; ENABLE DISKETTE I KEYBOARD, 1105 OUT INTAOt,AL ; AND TINER INTERRUPTS 1106 HOV AH ,0 ;RESET flEC FOC 1107 INT BH iVERIfY STATUS AFTER RESET 1108 TEST AH.OFFH ;STATUS OK? 1109 JNZ fl' iNa - FDC FAILED 1110 1111 TURN DRIVE 0 MOTOR ON 1112 1113 NOV OX.OlF2H ; GET AODR OF FOC CARD 1114 HOV AL.ICH ;TURN MOTOR ON, EN DHA/IHT 1115 OUT DX,AL il,JRITE FOC CONTROL REG 1116 sua CX,CX 1117 F11: ; NOTOR_WAIT: 1118 LOOP fll ;WAIT FOR 1 SECOND 1119 F12: I HOTOICWAITl: 1120 lOOP fl2 1121 XOR DX,OX ;SELECT DRIVE 0 A-16

LOC OBJ LINE SOURCE<br />

97. ;--------------------------------------­<br />

97. ; INITIAL RELIABILITY TEST -- PHASE 4<br />

97. ;--------------------------------------­<br />

977 ASSUME CS:COOE ,OS: DATA <br />

E4A7 20333031 97. '1 DB • 301'<br />

0004 97. EQU $-FI J KEYBOARD MESSAGE<br />

E4A8 313331 980 DB '131'<br />

"L EOU t-F2 i CASSETTE MESSAGE<br />

E4AE 363031 982 F3 O' '601 '<br />

".......... 0003 9Bl "<br />

•••<br />

'IL<br />

00Q3 9B3 F3L EOU $-F3 ; DISKETTE MESSAGE <br />

98. <br />

E481 985 F. LABEL WORD ; PRINTER SOURCE TABLE <br />

E4Bl BC03 986 OW 38CH <br />

E483 7603 9B7 OW 378H <br />

E485 7602 9BB OW 278H <br />

E487 989 F'E LABEL WORD <br />

£487 30313233343536 9'0 ASCII.TBl DB '0123456789ABCDEF' <br />

37383941424344<br />

.546<br />

991 .-------------------------------------------­<br />

9'2 HEST.12<br />

9.J KEYBOARD TEST<br />

99. ;DESCRIPTION<br />

E4C7 '.B TSTl2:<br />

99. PESET THE KE'tBOARD AND CHECK THAT SCAN CODE AA.' IS RETURNED<br />

99. TO THE CPU. CHECK FOR STUCK KEYS.<br />

9.7 i -----------------------------------------.-­<br />

E4C7 884000 MOV AX,DATA ;POINT OS TO DATA SEG<br />

E4CA 8E08 1000 MOV OS,AX<br />

E4CC 803E120001 1001 eMP ~:FG_TST ,I ;MANUFACTURING TEST HODE?<br />

E401 7439 1002 JE F7 ; YES - SKIP KEYBOARD TEST<br />

E4D3 E8B201 1003 CAll K8D_RESET ; ISSUE SOFTWARE RESET TO KEYBRD<br />

E4D6 E32B 1004 JCXZ '6<br />

i PRINT ERR HSG IF NO INTERRUPT<br />

E4D8 B04D 1005 NOV AL,4DH ; ENABLE KEYBOARD<br />

E40A E661 1006 OUT PORT_B,Al<br />

E40C 80FBll 1007 CMP Bl,OAAH iSCAN CODE AS EXPECTED?<br />

"..........<br />

1009 <br />

E40F 7522 1006 JHE F. iNO - DISPLAY ERROR HSG<br />

1010 CHECK FOR STUCK KEYS<br />

1011<br />

E4E1 BOCt 1012 tIOV Al,otCH ; e lR KBD. SET ClK lINE HIGH <br />

E4E3 E661 Ion OUT PORT_B,Al <br />

E4£5 B04C 1014 MOV Al.4CH IENABlE KBD,elK IN NEXT BYTE <br />

E4E7 E661 1015 OUT PORT_B,Al <br />

E4E9 2BC9 1016 SUB ex,cx <br />

E4EB 1017 F5: ; KBD_WAIT: <br />

E4EB E2FE 1018 lOOP '5<br />

;DELAY FOR A WHILE <br />

E4ED E460 1019 IN Al,KBD_IN ICHECK FOR STUCK KEYS <br />

E4EF 3COO 1020 CMP Al,o iSCAN CODE = O? <br />

E4Fl 7419 1021 JE '7<br />

J YES - CONTINUE TESTING <br />

E4F3 8AE8 1022 MOV eH,Al .SAVE SCAN CODE<br />

E4F5 BI04 1023 MOV Cl,4<br />

E4F7 02E8 1024 5H. Al,el iRIGHT-JUSTIFY HIGH BYTE<br />

E4F9 E89CFF 1025 CAll XlAT_PIHHT_CODE j CONVERT AND PRINT<br />

E4FC 8AC5 1026 MOV Al.CH JRECOVER SCAN CODE<br />

E4FE 240F 1027 AND Al.OFH iISOlATE LOW ORDER BYTE<br />

E500 E895FF 1028 CAll XlAT_PRINT_CODE I CONVERT ANO PRINT<br />

E503 BEA7E4 1029 F6: MDV 5I.OFFSET F 1 ;GET MSG AOOR<br />

E506 B90400 1030 MOV CX,F1l ;GET HSG BYTE COUNT<br />

E509 E86E01 1031 CAll P_HSG i PRINT MSG ON SCREEN<br />

1032<br />

1033 SETUP INTERRUPT VECTOR TABLE<br />

1034<br />

ESOC 1035 F7: ; SE1UP_lNT_TABlE:<br />

E50C 2BCO 1036 SUB AX,AX<br />

£50£ 8ECO 1037 MOV ES,AX<br />

".......... £510 B93000 1038 MOV CX,24*Z: ;GET VECTOR CNT<br />

E513 OE 1039 PUSH CS iSETUP OS SEG REG<br />

E514 IF 1040 POP OS<br />

£515 BEnF£ 1041 MOV SI.OFEF3H ; OFFSET VECTOR_TABLE<br />

E518 BF2000 1042 MOV OI.OFFSET INT_PTR<br />

E51B FC 1043 CLD<br />

E5lC F3 1044 .EP HOV5W<br />

E51D AS<br />

A-IS

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!