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.

LOC OBJ LINE SOURCE<br />

F2Al n08<br />

F2A3 80FC07<br />

f2Ab 7403<br />

FlAB E9F301<br />

flAB<br />

fZAB 53<br />

f2AC saCl<br />

FUE E83900<br />

F2Bl 7433<br />

F2:83 03FO<br />

F2:85 8AE6<br />

F287 2:AE3<br />

F2.89<br />

F289 E87500<br />

FZBC 03F5<br />

FZBE 03FO<br />

F2:CO FEee<br />

F2C2 7SFS<br />

F2:C4<br />

F2C4 58<br />

F2CS· B020<br />

F2C7<br />

F2C7 E87000<br />

F2eA 03FO<br />

Flee FEC8<br />

F2CE 75F7<br />

F200<br />

F200 884000<br />

F2:03 8ED8<br />

F205 803E490007<br />

F2DA 7407<br />

F2DC A06500<br />

FlOf SADeD3<br />

F2E2 EE<br />

FtE3<br />

F2f3 E9EIFE<br />

F2E6<br />

F2E6 SADE<br />

F2:E8 EeDA<br />

FlEA<br />

f2EA 803E490002<br />

FtEF 7219<br />

FtF 1 803E490003<br />

F2Fb 7712<br />

FHS 52<br />

F2F9 SADAa]<br />

F2FC 50<br />

F2FD<br />

F2FO EC<br />

FtFE A808<br />

F30D 74F8<br />

F302 B025<br />

F304 BA0803<br />

F307 EE<br />

noe 58<br />

n09 5A<br />

nOA ES7EFF<br />

noD 03064EOO<br />

F311 88f8<br />

FlU 8BFO<br />

Fl15 2801<br />

F3l7 fEe6<br />

F319 FEe2<br />

F318 32EO<br />

F310 882E4AOO<br />

F321 03EO<br />

F3Z3 8AC3<br />

F325 F6264AOO<br />

F3Z9 03eO<br />

3684 JC HI ; HANDLE SEPARATELY<br />

3685 CMP AH.7 ; TEST FOR BW CARD<br />

~8. JE HI<br />

3687 JMP<br />

3688 Nl: ; UP_CotnIHUE<br />

3689 PUSH ex j SAVE FILL ATTRIBUTE IN 8H<br />

3690 NOV AX.CX I UPPER lEFT POSITION<br />

3691 CAll SCROLL_POSITION i DO SETUP FOR SCROLL<br />

3692 JZ N7 I BLANK_FIELD<br />

3693 ADD SI,AX ; FROM ADDRESS<br />

3694 NOV AH,DH ; • ROWS IN BLOCK<br />

3695 SUB AH,Bl ; # ROWS TO BE MOVED<br />

3696<br />

3697 CAll HID ; MOVE ONE ROW<br />

3698 ADD SI.B?<br />

3699 ADD DI,B? ; POINT TO NEXT LINE IN BLOCK<br />

3700 DEC All ; COUNT OF LINES TO HOVE<br />

3701 JHZ<br />

H'<br />

3702 H3: ; CLEAR_ENTRY<br />

3703 pop AX J RECOVER ATTRIBUTE IN AH<br />

3704 NOV AL, • I FILL WITH BLANKS<br />

3705 J CLEAR_lOOP<br />

3706 CALL Nil ; CLEAR THE ROW<br />

3707 ADD DI,B? ; POINT TO NEXT LINE<br />

3708 DEC BL ; COUNTER OF LINES TO SCROLL<br />

3709 JNZ H4 ; CLEAR_lOOP<br />

3710 NS: ; SCROLL_END<br />

3711 MOV AX,OATA ; GET LOCATION<br />

3712 MOV OS,AX<br />

3713 CNP CRT_HODE,7 ; IS THIS THE BLACK AND WHITE CARD<br />

3714 JE ~16 ; IF SO, SKIP THE MODE RESET<br />

3715 NOV AL.CRT_tfODE_SET ~ GET THE VALUE OF THE MODE SET<br />

3716 NOV DX,0308H ; ALWAYS SET COLOR CARD PORT<br />

3717 OUT DX,AL<br />

3718<br />

3719 JMP<br />

3720 N7: ; BLANK_FIELD<br />

3721 NOV BL,OH GET ROW COUNT<br />

3722 JMP<br />

H'<br />

; GO CLEAR THAT AREA<br />

3723 ENDP<br />

3724<br />

3725 ; ----- HANllE COMMON SCROLL SET UP HERE<br />

3726<br />

3127 SCROll_POSITION PROC NEAR<br />

3128 CM? CRT_MOOE,2 I TEST FOR SPECIAL CASE HERE<br />

3129 J8 N9 ; HAVE TO HANDLE 80X25 SEPARATELY<br />

3730 CMP CRT_MODE, 3<br />

3731 JA N9<br />

3732<br />

3733 j -----­ 80X2S COLOR CARD SCROll<br />

3734<br />

3735 PUSH OX<br />

3736 MOV oX,30AH ; GUARANTEED TO BE COLOR CARD HERE<br />

3737 PUSH AX<br />

3738 i WAIT_DISP_ENABLE<br />

3739 IN AL,oX ; GET PORT<br />

3740 TEST AL.S ; WAIT FOR VERTICAL RETRACE<br />

3741 JZ H8 ; WAIT_DISP_ENABLE<br />

3742 NOV AL,25H<br />

3743 MOV OX , 030SH<br />

3744 OUT OX.Al ; TURN OFF VIDEO<br />

3745 POP AX i DURING VERTICAL RETRACE<br />

3746 POP OX<br />

3747 N9: CALL POSITION ; CONVERT TO REGEN POINTER<br />

3748 ADD AX.CRT_START ; OFFSET OF ACTIVE PAGE<br />

3749 HOV OI,AX ; TO ADDRESS FOR SCROll<br />

3750 HOV 5I,AX ; fROM ADDRESS fOR SCROLL<br />

3751 SUB OX,CX ; OX = #ROWS, WCOLS IN BLOCK<br />

3752 INC DH<br />

3753 INC Dl J INCREMENT FOR 0 ORIGIN<br />

3754 XOR CH,CH J SET HIGH BYTE OF COUNT TO ZERO<br />

3755 MOV BP,CRT_COLS ; GET NUMBER OF COLUMNS IN DISPLAY<br />

3756 AOO BP,BP ; TIMES 2 FOP ATTRIBUTE BYTE<br />

3757 MOV AL,Bl ; GET LINE COUNT<br />

3758 MUl BYTE PTR CRT_COLS ; DETERMINE OFFSET TO FROM ADDRESS<br />

3759 ADD AX,AX ; *2 FOR ATTRIBUTE BYTE<br />

A-51

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

Saved successfully!

Ooh no, something went wrong!