home *** CD-ROM | disk | FTP | other *** search
- ' +----------------------------------------------------------------------+
- ' | |
- ' | BASWIZ Copyright (c) 1990-1993 Thomas G. Hanlin III |
- ' | |
- ' | The BASIC Wizard's Library |
- ' | |
- ' +----------------------------------------------------------------------+
-
- DEFINT A-Z
-
- SUB G2LoadMAC (File$, Array(), SRow)
- EndRow = SRow + 199
- IF SRow < 0 OR EndRow > 719 THEN
- EXIT SUB
- END IF
- DIM SByte AS STRING * 1
- FileNr = FREEFILE
- Index = LBOUND(Array)
- Array(Index) = 576
- Array(Index + 1) = 200
- Index = Index + 2
- IF INSTR(File$, ".") THEN
- MacFile$ = File$
- ELSE
- MacFile$ = File$ + ".MAC"
- END IF
- OPEN MacFile$ FOR BINARY ACCESS READ AS FileNr LEN = 1024
- GET FileNr, 640, SByte ' skip header info
-
- X = 0
- Y = 0
- ByteNr = 0
- DO
- GET FileNr, , SByte
- RepCount = ASC(SByte)
- IF RepCount < 128 THEN
- RepCount = RepCount + 1
- FOR Dupe = 1 TO RepCount
- GET FileNr, , SByte
- IF Y >= SRow THEN
- IF ByteNr AND 1 THEN
- Tmp$ = CHR$(Array(Index + ByteNr \ 2)) + SByte
- Array(Index + ByteNr \ 2) = CVI(Tmp$)
- ELSE
- Array(Index + ByteNr \ 2) = ASC(SByte)
- END IF
- ByteNr = ByteNr + 1
- END IF
- X = X + 1
- NEXT
- ELSE
- RepCount = 257 - RepCount
- GET FileNr, , SByte
- FOR Dupe = 1 TO RepCount
- IF Y >= SRow THEN
- IF ByteNr AND 1 THEN
- Tmp$ = CHR$(Array(Index + ByteNr \ 2)) + SByte
- Array(Index + ByteNr \ 2) = CVI(Tmp$)
- ELSE
- Array(Index + ByteNr \ 2) = ASC(SByte)
- END IF
- ByteNr = ByteNr + 1
- END IF
- X = X + 1
- NEXT
- END IF
- IF X > 71 THEN
- X = 0
- Y = Y + 1
- END IF
- LOOP UNTIL Y > EndRow
- CLOSE FileNr
- END SUB
-