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)
LaC OBJ LINE SOURCE 0004 0002: 0001 0018 11 0080 0040 OOZO 0010 0008 0019 ?? OOlA ???? ODIC ???? ODIE (16 ???'?) 003E 0045 0046 0038 0010 003A 002A 0036 0052 0053 003E ?? 0080 003f ?? 0040 ?? 0025 0041 ?? 0080 0040 0020 0010 0009 0008 0004 0003 0002 0001 0042 (7 ?? J 78 eTL_SHIFT EOU 04H ; CONTROL SHIFT KEY DEPRESSED 79 lEfT_SHIFT EOU 02H ; lEFT SHIFT KEY DEPRESSED 80 RIGHT_SHIFT EOU O1H ; RIGHT SHIFT KEY DEPRESSED 81 82 DB ; SECOND BYTE OF KEYBOARD STATUS 83 INS_SHIFT 84 EOU 80H ; INSERT KEY IS DEPRESSED 85 CAPS_SHIFT EOU 40H ; CAPS LOCK KEY IS DEPRESSED 8. HUH_SHIFT EOU 20H ; NUN LOCK KEY IS DEPRESSED 87 SCROLL_SHIFT EOU IOH SCROLL LOCK KEY IS DEPRESSEO 88 HOLD_STATE EOU 08H SUSPEND KEY HAS BEEN TOGGLED 89 90 ALT_INPUT DB STORAGE fOR ALTERNATE KEYPAD ENTRY 91 BUFFER_HEAD OW POINTER TO HEAD Of KEYBOARD BUFFER .2 BUFFER_TAIL OW POINTER TO TAIL OF KEYBOARD BUFFER 93 KB_BUFFER OW 16 Dupe? I j ROOM FOR 15 ENTRIES 94 KB_BUFFER_EHO LABEL WORD .5 96 j------ HEAD = TAIL INDICATES THAT THE BUFFER IS EMPTY .7 •• •• 98 NUMJEY EOU SCAN CODE FOR NUMBER LOCK SCROLL_KEY EOU 70 SCROLL LOCK KEY 100 ALTJEY EOU 5. ALTERNATE SHIFT KEY SCAN COOE 101 CTL_KEY EOU 2. SCAN CODE FOR CONTROL KEY 102 CAPS_KEY EOU 58 SCAN CODE FOR SHIFT LOCK 103 LEFT_KEY EOU 42 SCAN CODE FOR LEFT SHIFT 104 RIGHTJEY EOU 54 SCAN COOE FOR RIGHT SHIFT 105 INS_KEY EOU 82 SCAN CODE FOR UlSERT KEY 10. DEL_KEY EOU 83 SCAN CODE FOR DELETE KEY 107 108 j ------------------------------------------- 109 j DISKETTE DATA AREAS 110 j ------------------------------------------- 111 DB ; DRIVE RECALIBRATION STATUS 112 BIT 3-0 = DRIVE 3-0 NEEDS RECAL BEFORE 113 NEXT SEEK IF BIT IS = 0 114 INTJLAG EOU oaOH ; INTERRUPT OCCURRt:NCE FLAG 115 MOTOR_STATUS DB ; MOTOR STATUS 11. BIT 3-0 = DRIVE 3-0 IS CURRENTLY R\..INI'IIHG 117 I BIT 7 = CURRENT OPERATION IS A WRITE. REQUIRES DEU.Y 118 ttOTOR_COUNT DB ; TIME OUT COUNTER fOR DRIVE TURN OFF MOTOR_WAIT EQU 37 ; TWO SECONDS OF COUNTS FOR I1OTOR TURN OFF "' 120 121 122 DISKETTE_STATUS DB j SINGLE BYTE OF RETURN CooE INFO FOR STATUS 123 TIME_OUT EQU 80H ; ATTACHMENl rAILED TO RESPOND 124 BAD_SEEK EQU 40H ; SEEK OPERATION FAILED 125 BAD_NEC EQU 20H ; NEe CONTROLLER HAS FAILED 12' BAD_CRC EQU IOH j BAD CRC ON DISKETTE READ 127 DMA_BOUNDARY EqU 09H ; ATTEMPT TO DMA ACROSS 64K BOUNDARY 128 BAD_DMA EQU 08H ; DMA OVERRUN ON OPERATION 12' RECORD_NOTJND EQU 04H I REQUESTED SECTOR NOT FOUND 130 WRITE_PROTECT EQU OJH I WRITE ATTEMPTED ON WRITE PROT DISK 131 BAO ADDR_HARK EQU 02H ADDRESS MARK HOT FOUND 132 BAD_CHO EQU O1H BAD COMNAND PASSED TO DISKETTE I/O 133 134 DB 7 DUP(?) ; STATUS BYTES FROM NEC 135 0049 ?? 004A ???? 004C ???? 004E ???? ~ 0050 (8 ????I 0060 ???? 0062 ?? 0063 ?1?1 0065 ?? 0066 ?? 0067 '???? 0069 ???? 136 j ------------------------------------------- 137 ; VIDEO DISPLAY DATA AREA 138 ; ------------------------------------------- 139 CRT_MODE DB ; CURRENT CRT HOOE 140 CRT_COLS OW ; HUMBER OF COLUMNS ON SCREEN 141 CRT_LEN ow j LENGTH OF REGEN IN BYTES 142 CRT_START OW STARTING ADDRESS IN REGEN BUFFER 143 CURSOR_POSN ow 8 DUP{?) ; CURSOR FOR EACH OF UP TO a PAGES 144 CURSOR MODE OW CURRENT CURSOR MODE SETTING 145 ACTIVE_PAGE DB CURRENT PAGE BEING DISPLAYED 14. ADDR_684S OW BASE ADDRESS FOR ACTIVE DISPLAY CARD 147 CRT_MODE SET DB CURRENT SETTING Of 1liE 3X8 REGISTER 14B CRT_PALLETTE DB ; CURRENT PALLETTE SETTING COLOR CARD 14, 150 ; ------------------------------------------- 151 ; CASSETTE DATA AREA 152 j------------------------------------------- 153 OW ;TIME COUNT AT DATA EDGE 154 ow JCRC REGISTER A-3
LOC OBJ LINE SOURCE 0068 ?! 155 De ;LAST INPUT VALUE 156 157 1----------------------------________________ 158 ; TIMER DATA AR€A 159 -----------------___________________________ Ot6C ?1!'! 160 TlI1ER_LOW 0" j lOW WORD OF TIMER COUHT 006£ ???? 161 TIMER_HIGH ow ; HIGH WORD OF TIMER COUNT 0070 ?! 162 TINER_OFL De ; TIMER HAS ROllED OVER SINCE LAST READ 163 ;COUNTS.SEC lOU 18 16' ,COUNTS.NIH EQU 1092: 165 iCOUtlTS_HOUR lOU 65543 166 ; COUNTS_DA.Y EOU 1513040 = 1800BOH 167 168 i -------------------------________________• __ 169 ; SYSTEM DATA AREA 170 ; ---- - ----------_____________________________ 0071 ?? 171 BIOS_BREAK DB ; BIT 7 = 1 IF BREAK HY HAS BEEN DEPRESSED 0072 ???? 172 RESET_FLAG OW ; WORD = 1234H IF KEYBOARD RESET UNDERWAY 173 OATA WOS 174 175 ; -----~-':' _:.•.---._____________________________ 176 J EXTRA DATA AREA 177 1------------------------------------------- '0050 178 XXDATA SEGMENT AT 50H O~OO 11 179 STATUS_BYTE DB 18. XXOATA ENDS 181 18Z ; ------------------------------------------- 183 J VIDEO DISPUY BUFFER 184 ; ----------- --- - - - - - - - ---------------------- 8800 18S VIDEO_RAM SEGMENT AT OBaOOH '0000 186 REGEN LABEL BYTt 0000 187 REGENW LABEL WORD (1000 (16}84 ??) 188 DB 1638't DUPl?) 189 ENIlS 190 i ----------------------------------------- 191 ; ROM RESIDENT CODE 19' ; ---------------------- ------------------- - fOOD 193 CODE SEGMENT AT OFOOOH 0000 (51344 111 19. DB 57344 DUP(?) j FI LL LOWEST 56K , 195 :EOOO 35373030303531 196 08 '5700051 CDPR. IBM 1981' I COPYRIGHT NOTICE 20434F50522E20 49424020313938 31 197 198 ; ------------------------------------------- 199 j INITIAL RELIA8ILITY TESTS -- PHASE 1 200 ; --- - - - - - - --- - ------- -- - - - -- - --------------- 201 ASSUME CS:COOE,SS:COOE,ES:ABSO,OS:DATA 202 ; ------------------------------------------- 203 DATA DEfINITIONS 2.04 J - - ------------------ -------- ------------- -- E016 D8EO 205 Cl 0" Cll • RETURN ADDRESS E016 EDEI '06 C' 0" C" i PETlmtl ADDRESS FOR DUMMY STACK 207 ; ----------------------- ---------------- - --- lOS 209 OF STORGAGE. THIS SUBROUTINE PERFORMS A READ/WRITE STOOAGE TEST ON A 16K 8LOCK 210 ;ENTRY REQUIREMEtHS: 211 ES = ADDPESS OF STORAGE SEGt!EHT eEING TESTED 21Z Z13 OS = ADDRESS OF STORAGE SEGMENT BEING TESTED \oIHEH EHlERltIG AT STGTST_CHT. CX MUST BE LOADED WITH THE BYTE COUNT. Z14 .EXIT PARAtlETERS: ZIS ZERO HAG =
- Page 146 and 147: I TRANSMIT 'IACUIT I +5V ~ 4S-"l Tx
- Page 148 and 149: INS8250 Functional Pin Description
- Page 150 and 151: Data Set Ready (DSR), Pin 37: When
- Page 152 and 153: Input/Output Signals Data (D7-DO) B
- Page 154 and 155: Bit 3: This bit is the Parity Enabl
- Page 156 and 157: Table 23. BAUD RATE AT 1.843 Mhz De
- Page 158 and 159: Interrupt Identification Register T
- Page 160 and 161: Interrupt Enable Register This 8-bi
- Page 162 and 163: In the diagnostic mode, the receive
- Page 164 and 165: Transmitter Holding Register The T
- Page 166 and 167: Asynchronous Communications Adapter
- Page 168 and 169: SECTION 3. ROM and SYSTEM r", USAGE
- Page 170 and 171: MOV AH,l ;function is to set time o
- Page 172 and 173: Vectors With Special Meanings Inter
- Page 174 and 175: BIOS Memory Map STARTING ADDRESS H
- Page 176 and 177: The timer is set mode 3 which means
- Page 178 and 179: Keyboard Encoding and Usage Encodin
- Page 180 and 181: Keys 71-83 have meaning only in bas
- Page 182 and 183: ALT - Temporarily shifts keys 2-13,
- Page 184 and 185: Keyboard Usage This section is inte
- Page 186 and 187: Table 28. BASIC Screen Editor Speci
- Page 188 and 189: Low Memory Maps (O-'0600'x) Table 3
- Page 190 and 191: BASIC Workspace Variables If you do
- Page 192: APPENDICES Contents: Appendix A: RO
- Page 195: lOC OBJ LINE SOURCE STITlE( ROM BIO
- Page 199 and 200: LOC OBJ LINE SOURCE E09E BBf5 EOAO
- Page 201 and 202: lOC OBJ LINE SOURCE £179 E2FD 462
- Page 203 and 204: LOC OBJ LINE SOURCE E278 7408 612 J
- Page 205 and 206: lOC OBJ LINE SOURCE 755 ; ---------
- Page 207 and 208: LOC OSJ LINE SOU RCE E42B 7440 900
- Page 209 and 210: lOC OBJ LINE SOURCE ESIE 884000 E52
- Page 211 and 212: LaC OBJ LINE SOURCE E613 803E120001
- Page 213 and 214: LaC OSJ LINE SOURCE E6EC eSOAOE E6E
- Page 215 and 216: LaC OBJ LINE SOURCE E7SF 1505 .402:
- Page 217 and 218: LaC OBJ LINE SOURCE 1659 ASSUME CS:
- Page 219 and 220: LOC OBJ LINE SOURCE E994 8E08 1798
- Page 221 and 222: LOC 08J LINE SOURCE £"91 474849 EA
- Page 223 and 224: LaC OBJ LINE SOURCE E890 E99700 E89
- Page 225 and 226: LOC 08J LINE SOURCE 2255 ;-- INT 13
- Page 227 and 228: LOC OS! LINE SOURCE 2407 ;------ DI
- Page 229 and 230: lOC OBJ LINE SOURCE (Eol 7438 fE03
- Page 231 and 232: LOC OBJ LINE SOURCE Ef'tD £67200 2
- Page 233 and 234: LOC OBJ LINE SOURCE 2870 I ~- -----
- Page 235 and 236: LOC (lBJ LINE SOURCE 3007 j --- INT
- Page 237 and 238: laC OBJ LINE SOURCE 3157 (AH}=6 SCR
- Page 239 and 240: lOC OBJ LINE SOURt.:E FOA43828ZDOAI
- Page 241 and 242: lOC OBJ LINE SOURCE FtC7 3458 VIDEO
- Page 243 and 244: LOC OBJ LINE SOURCE F260 750E f2:62
- Page 245 and 246: LOC OBJ LINE SOURCE F32B 06 3760 PU
LaC OBJ LINE SOURCE<br />
0004<br />
0002:<br />
0001<br />
0018 11<br />
0080<br />
0040<br />
OOZO<br />
0010<br />
0008<br />
0019 ?? <br />
OOlA ???? <br />
ODIC ???? <br />
ODIE (16 ???'?) <br />
003E<br />
0045<br />
0046<br />
0038<br />
0010<br />
003A<br />
002A<br />
0036<br />
0052<br />
0053<br />
003E ??<br />
0080<br />
003f ??<br />
0040 ??<br />
0025<br />
0041 ??<br />
0080<br />
0040<br />
0020<br />
0010<br />
0009<br />
0008<br />
0004<br />
0003<br />
0002<br />
0001<br />
0042 (7 ?? J<br />
78 eTL_SHIFT EOU 04H ; CONTROL SHIFT KEY DEPRESSED <br />
79 lEfT_SHIFT EOU 02H ; lEFT SHIFT KEY DEPRESSED <br />
80 RIGHT_SHIFT EOU O1H ; RIGHT SHIFT KEY DEPRESSED <br />
81 <br />
82 DB ; SECOND BYTE OF KEYBOARD STATUS <br />
83 <br />
INS_SHIFT 84 EOU 80H ; INSERT KEY IS DEPRESSED <br />
85 CAPS_SHIFT EOU 40H ; CAPS LOCK KEY IS DEPRESSED <br />
8. HUH_SHIFT EOU 20H ; NUN LOCK KEY IS DEPRESSED <br />
87 SCROLL_SHIFT EOU IOH SCROLL LOCK KEY IS DEPRESSEO <br />
88 HOLD_STATE EOU 08H SUSPEND KEY HAS BEEN TOGGLED <br />
89 <br />
90 ALT_INPUT DB STORAGE fOR ALTERNATE KEYPAD ENTRY <br />
91 BUFFER_HEAD OW POINTER TO HEAD Of KEYBOARD BUFFER <br />
.2 BUFFER_TAIL OW POINTER TO TAIL OF KEYBOARD BUFFER <br />
93 KB_BUFFER OW 16 Dupe? I j ROOM FOR 15 ENTRIES <br />
94 KB_BUFFER_EHO LABEL WORD <br />
.5<br />
96 j------ HEAD = TAIL INDICATES THAT THE BUFFER IS EMPTY<br />
.7<br />
••<br />
••<br />
98 NUMJEY EOU SCAN CODE FOR NUMBER LOCK<br />
SCROLL_KEY EOU 70 SCROLL LOCK KEY<br />
100 ALTJEY EOU 5. ALTERNATE SHIFT KEY SCAN COOE<br />
101 CTL_KEY EOU 2. SCAN CODE FOR CONTROL KEY<br />
102 CAPS_KEY EOU 58 SCAN CODE FOR SHIFT LOCK<br />
103 LEFT_KEY EOU 42 SCAN CODE FOR LEFT SHIFT<br />
104 RIGHTJEY EOU 54 SCAN COOE FOR RIGHT SHIFT<br />
105 INS_KEY EOU 82 SCAN CODE FOR UlSERT KEY<br />
10. DEL_KEY EOU 83 SCAN CODE FOR DELETE KEY<br />
107<br />
108 j -------------------------------------------<br />
109 j DISKETTE DATA AREAS<br />
110 j -------------------------------------------<br />
111 DB ; DRIVE RECALIBRATION STATUS<br />
112 BIT 3-0 = DRIVE 3-0 NEEDS RECAL BEFORE<br />
113 NEXT SEEK IF BIT IS = 0<br />
114 INTJLAG EOU oaOH ; INTERRUPT OCCURRt:NCE FLAG<br />
115 MOTOR_STATUS DB ; MOTOR STATUS<br />
11. BIT 3-0 = DRIVE 3-0 IS CURRENTLY R\..INI'IIHG<br />
117 I BIT 7 = CURRENT OPERATION IS A WRITE. REQUIRES DEU.Y<br />
118 ttOTOR_COUNT DB ; TIME OUT COUNTER fOR DRIVE TURN OFF<br />
MOTOR_WAIT EQU 37 ; TWO SECONDS OF COUNTS FOR I1OTOR TURN OFF <br />
"' 120 <br />
121<br />
122 DISKETTE_STATUS DB j SINGLE BYTE OF RETURN CooE INFO FOR STATUS<br />
123 TIME_OUT EQU 80H ; ATTACHMENl rAILED TO RESPOND<br />
124 BAD_SEEK EQU 40H ; SEEK OPERATION FAILED<br />
125 BAD_NEC EQU 20H ; NEe CONTROLLER HAS FAILED<br />
12' BAD_CRC EQU IOH j BAD CRC ON DISKETTE READ<br />
127 DMA_BOUNDARY EqU 09H ; ATTEMPT TO DMA ACROSS 64K BOUNDARY<br />
128 BAD_DMA EQU 08H ; DMA OVERRUN ON OPERATION<br />
12' RECORD_NOTJND EQU 04H I REQUESTED SECTOR NOT FOUND<br />
130 WRITE_PROTECT EQU OJH I WRITE ATTEMPTED ON WRITE PROT DISK<br />
131 BAO ADDR_HARK EQU 02H ADDRESS MARK HOT FOUND<br />
132 BAD_CHO EQU O1H BAD COMNAND PASSED TO DISKETTE I/O<br />
133<br />
134 DB 7 DUP(?) ; STATUS BYTES FROM NEC<br />
135<br />
0049 ??<br />
004A ????<br />
004C ????<br />
004E ????<br />
~ 0050 (8 ????I<br />
0060 ????<br />
0062 ??<br />
0063 ?1?1<br />
0065 ??<br />
0066 ??<br />
0067 '????<br />
0069 ????<br />
136 j -------------------------------------------<br />
137 ; VIDEO DISPLAY DATA AREA<br />
138 ; -------------------------------------------<br />
139 CRT_MODE DB ; CURRENT CRT HOOE<br />
140 CRT_COLS OW ; HUMBER OF COLUMNS ON SCREEN<br />
141 CRT_LEN ow j LENGTH OF REGEN IN BYTES<br />
142 CRT_START OW STARTING ADDRESS IN REGEN BUFFER<br />
143 CURSOR_POSN ow 8 DUP{?) ; CURSOR FOR EACH OF UP TO a PAGES<br />
144 CURSOR MODE OW CURRENT CURSOR MODE SETTING<br />
145 ACTIVE_PAGE DB CURRENT PAGE BEING DISPLAYED<br />
14. ADDR_684S OW BASE ADDRESS FOR ACTIVE DISPLAY CARD<br />
147 CRT_MODE SET DB CURRENT SETTING Of 1liE 3X8 REGISTER<br />
14B CRT_PALLETTE DB ; CURRENT PALLETTE SETTING COLOR CARD<br />
14,<br />
150 ; -------------------------------------------<br />
151 ; CASSETTE DATA AREA<br />
152 j-------------------------------------------<br />
153 OW ;TIME COUNT AT DATA EDGE<br />
154 ow JCRC REGISTER<br />
A-3