Classic Computer Magazine Archive 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