IBM 5150 Hardware Reference Manual page 252

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

lOC OBJ
LINE
SOURCE
FS6B F3
4287
REP
MOVSB
; MOVE THE ODD FIELD
FS6C A4
FS6D SF
4288
POP
or
FS6E SE
4289
rop
5r
; POINTERS BACK
FS6F
C3
4290
RET
; RETURN TO CALLER
4291
R17
ENOP
4292
~
4293
;------ CLEAR A SINGLE ROW
4294
F570
4295
R18
PROC
NEAR
F570 6ACA
4296
MOV
Cl,Dt
; NUMBER OF BYTES IN FIELD
F572 57
4297
PUSH
or
SAVE POINTER
F573 F3
4298
REP
STOSB
STORE THE
~lEW
VALUE
F574 AA
FS7S SF
4299
POP
or
POINTER BACK
F576 61C70020
4300
ADO
OI.2000H
i
POINT TO 000 FIELD
F57A 57
4301
PUSH
or
FS7B 6ACA
4302
MOV
Cl,DL
F57D F3
4303
REP
STOSB
FILL THE ODD
FIlElD
FS7E AA
F57F SF
4304
POP
or
FS80
C3
4305
RET
; RETURN TO CALLER
4306
Ria
ENOP
4307
; -----------------­ -­ -­ ----­ ----------------­
4308
; GRAPHICS WRITE
4309
THIS ROUTINE WRITES THE ASCII CHARACTER TO THE CURRENT
4310
POSITION ON THE SCREEN.
4311
ENTRY -­
4312
Al
=
CHARACTER TO WRITE
4313
Bl
=
COLOR ATTRIBUTE TO BE USED FOR FOREGROUND COLOR
4314
IF BIT
7 IS SET
I
THE CHJ\R IS XOR
'0
INTO THE REGEN BUFFER
4315
(0 IS USED FOR THE BACKGROUND COLOR)
4316
CX
=
NUMBER OF CHARS TO WRITE
4317
OS
=
DATA SEGMENT
4318
ES
=
REGEN SEGMENT
4319
EXIT -­
4320
NOTHING IS RETURNED
4321
4322
GRAPHICS READ
4323
THIS ROUTINE READS THE ASCII CHARACTER AT TIiE CURRENT ClrnSOR
4324
POSITION ON THE SCREEN BY MATCHING THE DOTS
ON
THE SCREEN TO THE
4325
CHARACTER GENERATOR CODE POINTS
4326
ENTRY -­
4327
NONE
(0 IS ASSUMED AS THE BACKGROUNO COLOR
4326
; EXIT -­
4329
Al ; CHARACTER READ AT THAT POSITION (0 RETURNED IF NONE FOUND)
4330
4331
I
FOR BOTH ROUTINES, THE IMAGES USED TO FORM CHARS ARE CONTAINED IN ROM
4332
FOR THE 1ST 128 CHARS.
TO ACCESS CHARS IN THE SECOND HALF, THE USER
4333
MUST INITIALIZE THE VECTOR AT INTERRUPT lFH (LOCATION 0007CH) TO
4334
POItn TO THE USER SUPPLIED HBlE OF GRAPHIC IMAGES (6X6 BOXESL
4335
FAILURE TO 00 SO WILL CAUSE IN STRANGE RESULTS
4336
; ----------­ ------­ ---­ -----­ - - -­ -----------­
4337
ASSUME
CS: CODE ,DS:DATA. ES : DATA
FS81
4338
GRAPHICS_~?ITE
PROC
NEAR
F581 B400
4339
MOV
AH,O
; ZERO TO HIGH Of CODE POINT
F583 50
4340
PUSH
AX
i
SAVE CODE POINT VALUE
4341
4342
;------ DETERMINE POSITION IN REGEN BUFFER TO PUT CODE POINTS
4343
FS84 E88501
4344
CALL
S26
; FINO LOCATION IN REGEN BUFFER
F587 8BF8
4345
MOV
DI,AX
i
REGEN POINTER IN 01
4346
4347
;------ DETERMINE REGION TO GET CODE POINTS FROM
4348
~
FS8958
4349
pOP
AX
RECOVER CODE POINT
F58A 3C80
4350
eMP
AL,80H
IS IT IN SECOND HALF
F58C 7306
4351
JAE
51
YES
4352
4353
j------
IMAGE IS IN FIRST HALF, CONTAINED IN ROM
4354
F58E BE6EFA
4355
MOV
SI,OFA6EH
OFFSET CRT_CHAR_GEN-OFFSET OF IMAGES
F591 OE
4356
PUSH
e5
; SAVE SEGMENT ON STACK
F592 EBOF
4357
JMP
SHORT S2
; DETERMINE_NODE
4358
A-59

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents