' It is recommended that you download this from the FTP site instead of ' the WWW site. DECLARE SUB ModeX () DECLARE SUB OutPort (PortAddr&, vh%, vl%) DECLARE SUB Standard () DECLARE SUB SetVOffset (Offset&) '$DYNAMIC DEFINT A-Z SCREEN 13 DEF SEG = &HA000: CALL ModeX FOR Offset& = 0 TO 15999 rgbbase% = Offset& MOD 64 POKE Offset&, rgbbase% POKE Offset& + 16000, rgbbase% + 64 POKE Offset& + 32000, rgbbase% + 128 POKE Offset& + 48000, rgbbase% + 192 NEXT Offset& Offset& = 0: OffsetInc% = 80: Frame% = 0 DO Offset& = Offset& + OffsetInc% CALL SetVOffset(Offset&): WAIT &H3DA, 8 Frame% = Frame% + 1 IF Frame% = 99 THEN OffsetInc% = 81 IF Frame% = 199 THEN OffsetInc% = 79 IF Frame% = 299 THEN OffsetInc% = 80 IF Frame% = 499 THEN OffsetInc% = -80 IF Frame% = 599 THEN OffsetInc% = -79 IF Frame% = 699 THEN OffsetInc% = -81 IF Frame% = 799 THEN OffsetInc% = -80 IF Frame% = 899 THEN CLS : PALETTE CALL SetVOffset(0): CALL Standard END END IF FOR Delay% = 1 TO 1000: NEXT LOOP REM $STATIC DEFSNG A-Z SUB ModeX CALL OutPort(&H3C4, 6, 4): CLS CALL OutPort(&H3D4, 227, 23) CALL OutPort(&H3D4, 0, 20) CALL OutPort(&H3C4, 15, 2) END SUB SUB OutPort (PortAddr&, vh%, vl%) OUT PortAddr&, vl%: OUT PortAddr& + 1, vh% END SUB'
SUB SetVOffset (Offset&) V& = Offset& CALL OutPort(&H3D4, V& \ 256, 12) CALL OutPort(&H3D4, V& AND 255, 13) END SUB'
SUB Standard CALL OutPort(&H3C4, 14, 4) CALL OutPort(&H3D4, 163, &H17) CALL OutPort(&H3D4, 64, &H14) CALL OutPort(&H3C4, 15, &H2) END SUB