25.03.2015 Views

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)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LaC OBJ LINE SOURCE<br />

E890 E99700<br />

E893<br />

E693 BBlFE9<br />

E896 E840<br />

E898<br />

EMS F606170020<br />

EB9D 7520<br />

EB9F F606170003<br />

EBA4 7520<br />

EBA6<br />

EBA6 3C4A<br />

EBA8 7408<br />

EBAA 3C4E<br />

EBAC 740C<br />

EBAE 2C47<br />

Eeao BB7AE9<br />

EBBl EBn<br />

EBBS 882D4"<br />

EBB8 E822<br />

EBBA B82B4E<br />

EBBD E~lD<br />

EBBF<br />

EBBF F606170003<br />

EBC4 75EO<br />

EBC6<br />

EBC6 2C46<br />

EBce BB6DE9<br />

EBce EBOB<br />

EBCD<br />

EBCD 3e38<br />

EeCF 7204<br />

EBDI BODO<br />

EBD3 EB07<br />

E8DS<br />

EBDS BBE5E8<br />

EBD8<br />

EBDB FEee<br />

EBDA 2ED7<br />

EBDC<br />

EBDC 3eFF<br />

EBDE 741F<br />

EBED 80FCFF<br />

EeE3<br />

EBES<br />

741A<br />

EBES F606170040<br />

EBEA 7420<br />

EBEC F606170003<br />

2103 JMP K63 I TRANSLATE_SCAN<br />

2104<br />

2105 K47: ; NOT-UPPER-FUNCTION<br />

2106 MOV BX,OFFSET K11 ; POINT TO UPPER CASE TABLE<br />

2107 JMP SHORT K56 ; OK. TRANSLATE TlIE CHAR<br />

2108<br />

2109 ;------ KEYPAD KEYS, HUST TEST HUM LOCK FOR DETERMINATION<br />

2110<br />

2111 K48: ; KEYPAD-REGION<br />

2112 ; ARE WE IN ,,"'UH_LOCK<br />

2113 JNZ KS2 ; TEST FOR SURE<br />

2114 TEST KB_FLAG.LEFT_SHIFT+RIGHT_SHIFT; ARE WE IN SHIFT STATE<br />

2115 JHZ K53 j IF SHIFTED, REALLY HUM STATE<br />

2116<br />

2117 j ------ BASE CASE FOR KEYPAD<br />

2118<br />

2119 K49: j BASE-CASE<br />

2120<br />

2121 eHP AL,74 j SPECIAL CASE FOR A COUPLE OF KEYS<br />

l122 JE K50 ; MINUS<br />

2123 eMP AL,78<br />

2124 JE K51<br />

2125 SUB AL,71 j CONVERT ORIGIN<br />

2126 HOV BX.OFFSET K15 J BASE CASE TABLE<br />

2127 JMP SHORT K64 , CONVERT TO PSEUDO SCAN<br />

2128<br />

2129 K50: HOV AX. 74*256+ '-' j MINUS<br />

2130 JMP SHORT K57 J BUFFERJILl<br />

2131<br />

2132 K51: MOV AX. 781f256+' +' I PLUS<br />

2133 JMP SHORT K57 1 BUFFER_FILL<br />

2134<br />

tllS 1------ MIGHT BE N\.I1 LOCK, TEST SHIFT STATUS<br />

t136<br />

2137 K5t: ; ALMOST-NUt1-STATE<br />

2138 TEST KBJLAG.LEFT_SHIFT+RIGHT_SHIfT<br />

2119 JHZ K4. ; SHIFTED TEMP OUT OF NUt1 STATE<br />

2140<br />

2141 K53: j REALLY_NUr"LSTATE<br />

2142 SUB AL,70 I CONVERT ORIGIN<br />

2143 MOV BX,OFFSET K14 ; NUM STATE TABLE<br />

2144 JMP SHORT K56 , TRANSLATE_CHAR<br />

2145<br />

2146 j------ PLAIN OLD LOWER CASE<br />

2147<br />

2148 K54: ; NOT-SHIFT<br />

2149 eMP AL.59 j TEST FOR FUNCTION KEYS<br />

2150 JB K55 ; NOT-LOWER-FUNCTION<br />

2151 MOV AL.O ; SCAN CODE IN AH ALREADY<br />

2152 JHP SHORT K57 I BUFFER_FILL<br />

2153<br />

2154 K55: j NOT-LOWER-FUNCTION<br />

2155 MOV BX.OFFSET KID j LC TABLE<br />

2156<br />

2157 j------ TRANSLATE THE CHARAC-rER<br />

2158<br />

2159 K56: ; TRANSLATE-CHAR<br />

2160 DEC AL ; CONVERT ORIGIN<br />

2161 XLAT CS:K11 ; CONVERT THE SCAN CODE TO ASCII<br />

2162<br />

2163 ;------ PUT CHARACTER INTO BUFFER<br />

Z164<br />

2165 K57: ; BUFFER-FILL<br />

2166 eMP AL.-l IS THIS AN IGNORE CHAR<br />

2167 JE K5. j YES. DO NOTHING WITH IT<br />

2168 eMP ; LOOK FOR -1 PSEUDO SCAN<br />

2169 JE ; NEAR_INTERRUPT_RETURN<br />

2170<br />

2171 ;------ HANDLE THE CAPS LOCK PROBLEM<br />

2172<br />

2173 K58: I BUFFER-FILL-NOTEST<br />

2174 TEST KBJLAG.CAPS_STATE ; ARE WE IN CAPS LOCK STATE<br />

2175 JZ K61 ; SKIP IF NOT<br />

2176<br />

2177 ; ------ IN CAPS LOCK STATE<br />

2178<br />

2179 TEST KBJLAG. LEFT_SHIFT+RIGHT_SHIFT TEST FOR SHIFT STATE<br />

A-30

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

Saved successfully!

Ooh no, something went wrong!