home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
basic
/
baswiz18.zip
/
BW$BAS.ZIP
/
G2LODMAC.BAS
< prev
next >
Wrap
BASIC Source File
|
1992-08-29
|
2KB
|
74 lines
' +----------------------------------------------------------------------+
' | |
' | BASWIZ Copyright (c) 1990-1992 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