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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LaC OBJ LINE SOURCE<br />

E100 EBAO 38. JNP SHORT ERROl<br />

386<br />

387 INITIALIZE TINER 1 TO REFRESH MEMORY<br />

388<br />

EIOF 38. C15: ; WRAP_OMA_REG<br />

flOF 8054 3.0 MOV Al.54H ;SEl TIM I. LSB. MODE 2<br />

Ell1 E643 391 OUT TIMER+3.AL ;WRITE TIMER MODE REG<br />

E113 B012 392 MOV AL.IS ;SETUP DIVISOR FOR REFRESH<br />

EllS E641 393 OUT TIMER+l.Al iL-:RITE TIMER 1 CNT REG<br />

E1l7 E600 394 OUT OMA+ODH,Al iSH/O MASTER CLEAR TO DMA<br />

395<br />

396 WRAP oMA CHANNELS ADDRESS AND COUNT REGISTERS<br />

397<br />

E119 BOFF 3.8 MOV AL,OFFH ;WRITE PATTERN FFH TO ALL REGS<br />

EllB 8A08 39. C16: MOV BL,AL ;SAVE PATTERN FOR COMPARE<br />

EllD 8AF8 400 MOV BH,AL<br />

EllF 890800 401 MOV CX,B ;SETUP LOOP CNT<br />

E122 BAOOOO 402 MOV OX,DMA ; SETUP I/O PORT AD DR OF REG<br />

E125 EE 403 t17: O'JT DX,Al IWRITE PATTERN TO REG, LSB<br />

E126 EE 404 OUT OX,AL ;t1SB OF 16 BIT REG<br />

E127 B80101 405 110V AX,OIOIH ;AX TO ANOTHER PAT BEFORE RO<br />

E12A EC 406<br />

'"<br />

AL,oX<br />

;READ 16-BIT DMA eH REG, LSB<br />

E128 8AEO 407 tIDY AH,AL ;SAYE lSB OF 16~BIT REG<br />

E120 EC 408 IN AL,oX ;READ MSB OF DMA CH REG<br />

f12E 3808 40. CtlP 8X,AX ;PATTERN READ AS WRITTEN?<br />

EnD 7403 410 J' C18 ; YES - CHECK NEXT REG<br />

E 132 E97AFF 411 JMP ERROl ;NO - HALT THE SYSTEM<br />

E135 41. C18: I NXT_DI1A_CH<br />

E135 42 413 INC OX ;SET I/O PORT TO NEXT CH REG<br />

E136 ElED 414 LOOP CI7 iWRITE PATTERN TO NEXT REG<br />

E136 F6DO 41. NOT AL iSET PATTERN TO ZERO<br />

E13A 74DF 416 JZ C16 ;WRITE TO CHANNEL REGS<br />

417<br />

418 INITIALIZE AND START DMA FOR MEMORY REFRESH.<br />

419<br />

EBe BOFF 420 MOV At,OFFH ; SET CNT OF 64K FOR RAM REFRESH<br />

E13E E601 421 OUT DMA+l,Al<br />

E140 E601 422 OUT QMA+l,Al<br />

El42 B058 423 tlOV Al,058H ,SET OMA MODE.CH O,READ,AUOTIHT<br />

E144 E608 424 OUT DHA+OBH,AL ,WRITE oMA MODE REG<br />

E146 8000 425 MOV Al,O ; ENABLE OMA CONTROLLER<br />

E148 E606 426 OUT OMA+8,Al ; SETUP OMA COMMAND REG<br />

E14A E60A 427 OUT DMA+I0 ,At ;ENABLE CHANNEL 0 FOR REFRESH<br />

E14C B041 42. MOV AL,41H ,SET MODE FOR CHANNEL 1<br />

E14E E608 4•• OUT OMA+OBH,AL<br />

E150 8042 43D MOV AL,42H ;SET MODE FOR CHANNEL 2<br />

E152 E608 431 OUT DMA+OBH,AL<br />

E154 8043 432 MOV AL,43H ;SET MODE FOR CHANNEl 3<br />

E156 E608 433 OUT OMA+OBH .AL<br />

434 ;-------------------------------------------­<br />

435 ;TESr.04<br />

436 BASE 16K REAO/WRITE STORAGE TEST<br />

437<br />

438 ;DESCRIPTION<br />

439 WRITE/REAOIVERIFY DATA PATTERNS FF,55.AA.Ol, ANO 00 TO 1ST 16K OF<br />

440 STORAGE. VERIFY STORAGE AOORESSABIllTY.<br />

441 INITIALIZE THE 8259 INTERRUPT CONTROllER CHIP FOR CHECKING<br />

442 MANUFACTURING TEST 2 MODE.<br />

443 ; ----­---------------­---­-----------­- --­--­<br />

444 DETERMINE MENORY SIZE AND FILL MEMORY Wlrn DATA<br />

445<br />

E158 884000 446 MOV AX,OATA jPOINT OS TO DATA SEG<br />

E158 8E08 447 MOV OS,AX I<br />

EISC 681E7200 448 HOV BX,RESETJLAG ;SAVE RESET_FLAG' IN ax<br />

E161 28CO 449 SUB AX,AX ;SET ES MID OS TO 0<br />

E163 8EtO 450 NOV ES,AX ; SETUP ES SEGMENT REG<br />

f165 6E08 451 MOV oS,AX<br />

El67 2BFF 452 SUB 01,01<br />

E169 E460 453 IN Al.PORT_A IDETERMINE BASE RAM SIZE<br />

E168 240C 454 AHO AL,OCH jISQlATE RAM SIZE SWS<br />

E160 0404 455 ADO AL, 4 I CALCULATE MEMORY SIZE<br />

E16F BlOC 456 MOV CL, 12<br />

E171 03EO 457 SHL AX, CL<br />

EI73 88C8 458 MOV CX, AX<br />

E175 8AEO 45. MOV AH. AL<br />

fI77 Fe 460 CLD ISET DIR FLAG TO INCR<br />

E178 AA 461 C19: STOSB ;FIlL BASE RAM WITH DATA<br />

A-7

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

Saved successfully!

Ooh no, something went wrong!