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

5866 ;.*.-••••._•••*.******.*************.**•••if••<br />

5867 THE LOOP FROM PRIlO TO THE INSTRUCTION PRIOR TO PA120<br />

5868 IS THE LOOP TO READ EACH CURSOR POSITION FROl1 THE SCREEN<br />

5869 AND PR INT •<br />

5870 ,•••**.*••**_.*************.*.***************<br />

'='F7F 8402 5871 PRIlO: MOV AH,2 iTO INDICATE CURSOR SET REQUEST<br />

=F81 COlO 5872 INT 10H iHEW CURSOR POSITION ESTABLISHED<br />

:F83 8408 5873 MaY AH.8 ;TO INDICATE READ CHARACTER<br />

=F85 COlO 5874 INT 10H ,CtiARACTER NOW IN (All<br />

FF87 OACO 5875 OR AL .... L iSEE IF VALID CHAR<br />

FF89 7502 5876 Jt~Z PRIIS jJUMP IF VALID CHAR<br />

FFSB BOZO 5877 MOV IMAKE A BLANK<br />

ffan 5878 PRIIS:<br />

FfSO 52 5879 PUSH OX iSAVE CURSOR POSITION<br />

fFSE 3302 5880 XOR DX,DX jINDICATE PRINTER 1<br />

FF90 32E"t 5881 XOR AH,AH ;TO INDICATE PRINT CHAR IN [All<br />

FF92 C017 5M2 INT 17H j PRINT THE CHARACTER<br />

FF94 SA 5883 POP OX JRECALL CURSOR POSITION<br />

FF95 F6C425 5884 TEST AH. 25H ; TEST FOR PRINTER ERROR<br />

FF98 7521 5885 JNZ ERRtO ; JUMP IF ERROR DETECTED<br />

FF9A fEtz 5886 INC OL ; ADVANCE TO NEXT COLUNN<br />

FF9C lACA 5887 CMP CL,DL ;SEE IF AT END OF LINE<br />

FF9E 750F 5888 JNZ PRIIO ; IF NOT PROCEED<br />

HAD 3202 58139 XOR DL,Dl ;BACK TO COLlR1N 0<br />

FFAe 84£2 5890 MOV AH,DL j[AHJ=O<br />

FFA4 52 5891 PUSH OX ; SAVE NEW CURSOR POSITION<br />

FFAS E82300 5892 CALL tRLF ; LINE FEED CARRIAGE RETURN<br />

FFAS SA 5893 POP OX jRECALL CUI?SOR POSITION<br />

FFA9 FECb 5894 WC OH jAOVAHCE TO NEXT LINE<br />

FFA8 3AEE 5895 eMP CH.DH ;FINISHED?<br />

HAD 7500 5896 JNZ PRIIO ; IF NOT COHTlNUE<br />

FFAF SA 5897 PR120: POP OX jRECALl CURSOR POSITION<br />

FFBD 8402 5898 MaY AH,Z ;TO INDICATE CURSOR SET REQUEST<br />

FFB2 COlO 5899 INT lOH ,CURSOR POSITION RESTORED<br />

FFB4 C606000000 5900 tlOV STATUS_BYTE, a jINDICATE FINISHED<br />

Ff59 EBOA 5901 JMP SHORT EXIT ; EXIT THE ROUTIt~E<br />

FFBB SA 5902 ERRIO: POP ox ;GET CURSOR POSITION<br />

FFec 8402 5903 MOV AH.2 ;TO REQUEST CURSOR SET<br />

FFBE COlO 5904 INT 10H ;CURSOR POSITIOtl RESTORED<br />

FFCO C6060000FF 5905 ERR20: MOV STATUS_BYTE,OfFH IINDICATE ERROR<br />

5906<br />

fFes SA 5907 EXIT: pop ox jRESTORE ALL THE REGISTERS USED<br />

FFCb 59 5908 POP ex<br />

FFC7 sa 5909 POP ex<br />

Ffce 58 5910 pop AX<br />

FFC9 IF 5911 POP as<br />

FFCA CF 5912 IRET<br />

5913<br />

5914<br />

5915 1------ C...RRI... GE RETURN. LINE FEED SUBROUTINE<br />

5916<br />

FFCB 5917 C~lF PRot NEAR<br />

FFCB 3302 5918 XOR OX,OX ;PRINTER a<br />

FFCD 32E4 5919 XOR AH.AH iioULL NOW SEND INITIAL IF,CR TO PRINTER<br />

FFCF BOOA 5920 MOY AL.12Q ; IF<br />

FFOI C017 5921 INT 17H ; SEND THE LINE FEED<br />

H03 32E4 sn2 XOR AH,AH ;NOW FOR THE CR<br />

FFOS BODO 5923 MOV Al.t5Q iCR<br />

FF07 CD17 5924 INT 17H jSENO THE CARRIAGE RETURN<br />

fF09 C3 5925 RET<br />

5926 CRLF ENOP<br />

5927 CODE ENDS<br />

5928<br />

5929 ; ----------­----------------------­<br />

5930 i POIolER ON RESET VECTOR<br />

5931 1---------------------------------­<br />

FFH 5932 VECTOR SEGMWT AT OFFf"FH<br />

5933<br />

5934 ; -----­ POWER Ot-l RESET<br />

5935<br />

0000 EA580000FO 5936 JMP RESET<br />

5937<br />

0005 30342F32342F38 5938 DB • 04/24/81' RELEASE MARKER<br />

31<br />

A-80 • <br />

5939 VECTOR ENOS<br />

5940 END

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

Saved successfully!

Ooh no, something went wrong!