
PROGRAM LISTING: 83-10/DOSSECT.4TH
Scr # 5
( DOS TO FORTH )
0 VARIABLE DEST 2 ALLOT
: MOVEIT ( ADDR. -- ADDR.)
DUP DUP 127 + C@ DUP <ROT
DEST @ SWAP CMOVE
DEST +! ;
: NEXTSECTOR
( CURR.BLK.ADDR -- NXT.SECT)
DUP 125 + C@ 3 AND 256 *
SWAP 126 + C@ + 1- ;
-->
Scr # 6
( DOS TO FORTH )
: CHAIN ( FORTH.SECTOR.# -- )
BEGIN
BLOCK MOVEIT
NEXTSECTOR DUP -1 =
UNTIL DROP ;
: ?RETURN ." PRESS RETURN."
BEGIN KEY 155 = UNTIL ;
-->
Scr # 7
( DOS TO FORTH .. GETFONT)
: GETFONT
( DOS.SECT.# FORTH.SCREEN.# -- )
4 * SWAP 1- PAD DEST !
CR ." INSERT SOURCE DISK."
?RETURN
CHAIN
CR ." INSERT DEST. DISK."
?RETURN
1024 0 DO 1+ DUP 1- BLOCK
PAD I + SWAP 128 CMOVE
UPDATE 128 +LOOP DROP
FLUSH ;
-->
Scr # 8
( VERSAWRITER PICTURE FETCH )
: BLANKSCREEN ( -- )
0 0 0 SE. 1 0 0 SE.
2 0 0 SE. 4 0 0 SE. ;
: GR8CLRS ( ADDR. -- )
DUP 4 + C@ 1 0 ROT SE.
DUP 6 + C@
SWAP 5 + C@
2DUP 2 <ROT SE. 4 <ROT SE.
;
-->
Scr # 9
( VERSAWRITER PICTURE FETCH )
: GR7CLRS ( ADDR. -- )
DUP 4 + C@ OVER 7 + C@ 0
<ROT SE.
DUP 5 + C@ OVER 8 + C@ 0
<ROT SE.
DUP 6 + C@ OVER 9 + C@ 2
<ROT SE.
DUP 10 + C@ SWAP 11 + C@ 4
<ROT SE. ;
-->
Scr # 10
( VERSAWRITER PICTURE FETCH )
: VERSA@
( GR.MODE DOS.SECTOR.# -- )
1- SWAP GR. BLANKSCREEN
88 @ 14 - DEST !
CHAIN
( NOW GET COLORS )
88 @ 14 - DUP 3 + C@ 30 =
IF
GR8CLRS
ELSE
GR7CLRS
ENDIF ;
Back to previous page