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.

LOC OBJ LINE SOURCE<br />

F6E5 DIE 1 4586 5Hl eX.l ; SHIFT ONLY MASK NOW. MOVING TO NEXT BASE<br />

F6E7 73fC 4587 JNe 522 ; USE MASK BIT COMING OUT TO TERMINATE<br />

F6E9 8BC2 4588 MOV AX.OX ; RESULT TO PARM REGISTER<br />

F6EB 5B 4589 POP BX<br />

F6EC 59 4590 POP ex j RECOVER REGISTERS<br />

F6ED SA 4591 POP ox<br />

F6EE C3 4592 RET I ALL DONE<br />

4593 521 ENDP<br />

4594 l------------ - - - ------- - - -------------------­<br />

4595 J HED_READ_BYTE<br />

4596 f THIS ROUTINE WILL TAKE 2 BYTES FROM rtfE REGEN BUFFER.<br />

4597 I COMPARE AGAINST THE CURRENT fOREGROUND COLOR. AND PLACE<br />

4598 ; THE CQRRESPQtmING ONIOFF BIT PATTERN INTO THE CURRENT<br />

4599 POSITION IN THE SAVE AREA<br />

4600 ENTRY -­<br />

4601 SI,OS :: POINTER TO REGEN AREA OF INTEREST<br />

4602 ,BX = EXPANDED FOREGROUND COLOR<br />

4603 BP = POINTER TO SAVE AREA<br />

4604 , EXIT -­<br />

4605 ; SP IS INCPEMENT AFTER SAVE<br />

4606 1-------------------------------------------­<br />

F6EF 4607 S23 PRoe NEAR<br />

F6EF 8A24 4608 HOV AH. [SI 1 ; GET FIRST BYTE<br />

F6Fl 844401 4609 MOV AL.[SI+l1 ; GET SECOND BYTE<br />

F6F4 6900CO 461D HOV eX.DCODDH ; 2: BIT MASK TO TEST THE ENTRIES<br />

F6F7 B200 4611 HOV DL.O ; RESULT REGISTER<br />

F6F9 4612 S24:<br />

F6F9 85Cl 4613 TEST AX.CX ; IS THIS SECTION BACKGROUHD?<br />

F6FB F8 4614 eLe ; CLEAR CARRY IN HOPES THAT IT IS<br />

F6FC 7401 4615 JZ 525 ; IF ZERO. IT IS BACKGROUND<br />

F6FE '9 4616 5Te , WASN'T, so SET CARRY<br />

F6FF 0002 4617 S25: ReL DL,! ; MOVE THAT BIT INTO THE RESULT<br />

F701 DlE9 4618 SHR CXol<br />

F703 DJE9 4619 5HR CX,! , MOVE THE MASK TO THE RIGHT BY 2 BITS<br />

F705 73F2 462. JNe 52. ; DO IT AGAm IF MASK DIDN'T FALL OUT<br />

F707 885600 4621 MOV [BPl,DL ; STORE RESULT IN SAVE AREA<br />

nOA 45 4622 It~C BP ; ADJUST POINTER<br />

F70B C3 4623 RET ; ALL DONE<br />

4624 S23 ENOP<br />

4625 ; - - ----- - - ------------------------------ -­<br />

4626 ; V4_POSITION<br />

4627 ; THIS ROUTINE TAKES THE CURSOR POSITION CONTAINED IN<br />

4626 THE MEMORY LOCATION. AND COtNERTS IT INTO AN OFFSET<br />

4629 I INTO THE REGEN BUFFER, ASSUMING ONE BYTE/CHAR.<br />

4630 FOR MEDIUM RESOLUTION GRAPHICS, THE NUMBER MUST<br />

4631 BE DOUBLED.<br />

4632 ENTRY -- NO REGISTERS,MEMORY LOCATION CURSOR_POSH IS USED<br />

4633 EXIT-­<br />

4634 AX CONTAINS OFFSET INTO REGEN BUFFER<br />

4635 ; --------------------------------- -------­<br />

F70C 4636 52. PROC NEAR<br />

FlOC A15000 4637 HOV AX.CURSOR_POSN ; GET CURRENT CURSOR<br />

F70F 4638 GRAPH_POSH LABEL NEAR<br />

F70F 53 4639 PU5H BX I SAVE REGISTER<br />

F710 8808 4640 HOV BX,AX ; SAVE A COpy OF CURRENT CURSOR<br />

F712 8AC4 4641 HOV AL.AH I GET ROWS TO AL<br />

F714 F6264AOO 4642 HUl BYTE PTR CRT_COLS ; NULTIPLY BY BYTES/COLUMN<br />

F7l8 DIED 4643 5HL AX'! ; MULTIPLY * 4 SINCE 4 ROWS/BYTE<br />

F7lA DIED 4644 SHl AXd<br />

F71C 2AFF 4645 SUB BH,BH ; ISOLATE COLUMN VALUE<br />

F7lE 03C3 4646 ADO AX,BX ; DETERMINE OFFsET<br />

F720 56 4647 POP BX ; RECOVER POINTER<br />

F721 C3 464& RET ; ALL DONE<br />

4649 526 ENDP<br />

4650 ;-------------------------------------------­<br />

4651<br />

4652 , THIS INTERFACE PROVIDES A TElETYPE LIKE INTERFACE TO THE<br />

4653 VIDEO CARD. THE INPUT CHARACTER IS WRITTEN TO THE CURRENT<br />

4654 ClJ;!SOR POSITION. AND THE CURSOR IS MOVED TO THE NEXT POSITION.<br />

4655 IF THE CURSOR LEAVES THE LAST COLUMN OF THE FIELD, THE COLUMN<br />

4656 IS SET TO ZERO. AND THE ROW VALUE IS INCREMENTED. IF THE ROW<br />

4657 ROW VALUE LEAVES THE FIELD. THE CURSOR IS PLACED ON THE LAST ROW.<br />

4658 FIRST COLUMN, AND THE ENTIRE SCREEN IS SCROLLED UP ONE LIUE.<br />

4659 WHEN THE SCREEN IS SCROLLED UP. THE ATTRIBUTE FOR FILLING THE<br />

4660 NEWLY BLANKED LINE IS READ FROM THE CURSOR POSITION ON THE PREVIOUS<br />

4661 LINE BEFORE THE SCROLL. lH CHARACTER MODE. IN GRAPHICS MODE,<br />

A-63

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

Saved successfully!

Ooh no, something went wrong!