DECLARE SUB changepalette (red%, blue%, green%, syscolor%)
SCREEN 13

TYPE rgbcolor              'Array to store color values
     red AS INTEGER   ' 0 to 63
     blue AS INTEGER  ' 0 to 63
     green AS INTEGER ' 0 to 63
END TYPE
filename$ = "test1"  ' Try test2 too
OPEN filename$ + ".dat" FOR INPUT AS #1 ' disk palette name
DO                             'Swap systems colors with colors on disk
INPUT #1, r%, g%, b%
changepalette r%, b%, g%, c%   ' Sub for doing all the work
c% = c% + 1                      'you can also use qbasic palette command to
LOOP UNTIL EOF(1) = -1
CLOSE #1




SIZE% = 4 + INT(((84 - 11 + 1) * (8) + 7) / 8) * 1 * ((179 - 116) + 1)

DIM loadbsv(1 TO SIZE%) '
DEF SEG = VARSEG(loadbsv(1))
BLOAD filename$ + ".bsv", VARPTR(loadbsv(1))
DEF SEG               ' Restore default BASIC segment.
PRINT "Use Keypad to move image around screen"
CLS



PUT (1, 1), loadbsv, PSET

'  LOOP
SYSTEM
END

SUB changepalette (red%, blue%, green%, syscolor%)

rgbcolor.red = red%
rgbcolor.blue = blue%
rgbcolor.green = green%
'Set port variables
palmask = &H3C6
palregrd = &H3CF
palregwr = &H3C8
paldata = &H3C9
'get port ready
OUT palmask, &HFF
' write to reg
OUT palregwr, syscolor%
OUT paldata, rgbcolor.red   'SENT VALUE OUT TO PORT
OUT paldata, rgbcolor.blue    '^
OUT paldata, rgbcolor.green   '^
END SUB

