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 />

FZ16 E8CIFF 3533 CALL 1116 ; OUTPUT THE VALUE TO THE 6845<br />

F219 C3 3534 RET<br />

3535 H18 WOP<br />

3536 ;---------------------------_ ...--------------­<br />

3537 ; READ_CURSOR<br />

3538 THIS ROUTINE READS THE CURRENT CURSOR VALUE FROM THE<br />

3539 6B45, FORHATS IT, AND SENDS IT BACK TO THE CALLER<br />

354. i INPUT<br />

3541 BH - PAGE OF CURSOR<br />

3542 ; OUTPUT<br />

3543 OX - ROW, COLUMN OF THE CURRENT CURSOR POSITION<br />

3544 CX - CURREHT CURSOR MODE<br />

3545 ;------------------------------------------­<br />

Fl1A 3546 READ_CURSOR PROC HEAR<br />

F21A SADF 3547 MOV Bl.BH<br />

FZIC 3ZFF 3548 XOR SH,BH<br />

F2IE DIEl 3549 SAL eX,l ; WORD OFFSET<br />

FZ2:0 88975000 3550 HOV DX,(BX+OFFSET CURSOR_POSH]<br />

F2:24 880E6000 3551 HOV eX.CURSOR_MODE<br />

F228 SF 3552 POP 01<br />

F229 SE 3553 POP SI<br />

F22'" 58 3554 POP BX<br />

F22:8 58 3555 POP AX ; DISCARD SAVED CX AND ox<br />

F2:2:C 58 3556 POP AX<br />

F22:0 IF 3557 POP OS<br />

F22:E 07 3558 POP ES<br />

F22:F Cf 3559 IRET<br />

3560 READ_CURSOR WOP<br />

3561 ;------------------- - -----------------------­<br />

356Z ; ACT_DISF_PAGE<br />

3563 THIS ROUTINE SETS THE ACTIVE DISPLAY PAGE. ALLOWING<br />

3564 THE FULL USE Of THE RAM SET ASIDE FOR THE VIDEO ATTACHMENT<br />

3565 INPUT<br />

3566 AL HAS THE NEW ACTIVE DISPLAY PAGE<br />

3567 ; OUTPUT<br />

3568 J THE 6845 IS RESET TO DISPLAY THAT PAGE<br />

3569 1-------------------------------------------­<br />

F230 3570 ACT_DISP_PAGE PROC NEAR<br />

F2;30 A2:6200 3571 MOV ACTlVE_PAGE,AL J SAVE ACTIVE PAGE VALUE<br />

F233 8BOE4COO 3572 MOV CX.CRT_LEN ; GET SAVED LENGTH OF REGEN BUFFER<br />

F237 98 3573 CBW I CONVERT AL TO WORD<br />

F238 SO 3574 PUSH AX ; SAVE PAGE VALUE<br />

F239 F7Et 3575 NUL ex ; DISPLAY PAGE TII1ES REGEtl LENGTH<br />

F2:38 A34EOO 3576 HOV CRT_START ,AX ; SAVE START ADDRESS FOR LATER REQUIREMENTS<br />

F23E 8BC8 3571 HOV eX.AX ; START ADDRESS TO ex<br />

f240 01F9 3578 SAR ex ,I ; DIVIDE BY Z FOR 6845 HANDLING<br />

F242 B40C 3579 MOV AH,lZ ~ 6845 REGISTER FOR START ADDRESS<br />

F244 E893FF 3580 CALL M16<br />

F2:47 58 3581 POP 8X ; RECOVER PAGE VALUE<br />

F248 aIE3 358Z SAL BX.l f *2 FOR WORD OFFSET<br />

F2it" 88875000 3583 MOV AX,lBX + OFFSET CURSOR_paStil ; GET CURSOR FOR THIS PAGE<br />

F2:4E EBBSFF 3584 CALL NlB f SET THE CURSOR POSITION<br />

F251 E973FF 3585 JMP VIDEO_RETURN<br />

3587 ; -------------------------------------------­<br />

3588 , SET COLOR<br />

3589 THIS ROUTINE WILL ESTABLISH THE BACKGROUND COLOR, THE OVERSCAN COLOR,<br />

3590 AND THE FOREGROUND COLOR SET FOR MEOIlIt1 RESOLUTION GRAPHICS<br />

3591 INPUT<br />

3592 (BH 1 HAS COLOR ID<br />

3593 IF BH=O, THE BACKGROUND COLOR VALUE IS SET<br />

3594 FROl1 THE LOW BITS OF BL (0-31)<br />

3595 IF BH=l, THE PALLETTE SELECTION IS MADE<br />

3596 BASED ON THE LOW BIT OF st:<br />

3597 0 = GREEN. RED, YEllOW FOR COLORS l,Z.:S<br />

3598 1 = BLUE, CYAN. MAGENTA FOR COLORS 1.2.3<br />

3599 {Bll HAS THE COLOR VALUE TO BE USED<br />

3600 ; OUTPUT<br />

3601 THE COLOR SELECTION IS UPDATED<br />

3602 ; -------------------------------------------­<br />

F254 3603 SET_COLOR !',we NEAR<br />

F254: 88166300 3604 HOV ; 1/0 PORT FOR PALETTE<br />

F25B 83C205 3605 ADD DX.S ; OVERSCAN PORT<br />

F2:58 A06600 3606 HOV AL.CRT]ALLETTE ; GET THE CURRENT PAllETTE VALUE<br />

F2:5E OAFF 3607 OR BH.BH ; IS THIS COLOR O?<br />

A-49

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

Saved successfully!

Ooh no, something went wrong!