DECLARE SUB drawPal (x AS INTEGER, y AS INTEGER, map AS STRING) DECLARE SUB drawPic (x AS INTEGER, y AS INTEGER, map AS STRING) DIM index AS STRING DIM palSwap(0 TO 2) AS STRING * 256 ' load swap indices (unmapped, grey, EGA) RESTORE sampleSwap FOR j% = 0 TO 2 FOR i% = 0 TO 255 READ index MID$(palSwap(j%), i% + 1, 1) = CHR$(VAL("&h" + index)) NEXT i% NEXT j% SCREEN 13 FOR j% = 0 TO 2 drawPic j% * 32, 0, palSwap(j%) drawPal j% * 32, 20, palSwap(j%) NEXT j% samplePic: ' Sample picture (unmapped colors - decimal) DATA 53,52,99,99,52,53,53,53,53,53,53,52,99,99,52,53 DATA 52,99,99,99,42,42,42,42,42,42,42,99,99,99,99,52 DATA 53,53,53,42,43,43,43,43,67,67,67,42,42,99,99,99 DATA 53,53,42,43,43,43,06,42,67,67,67,67,67,42,52,52 DATA 53,53,42,43,43,06,42,66,42,67,67,67,67,42,53,53 DATA 53,53,42,43,06,42,06,66,66,42,42,67,67,42,53,53 DATA 53,53,42,43,06,66,15,66,66,15,66,42,67,67,42,53 DATA 53,53,42,43,06,66,15,66,66,15,66,42,67,67,42,53 DATA 51,51,42,43,06,65,65,66,66,65,65,42,67,67,42,51 DATA 45,45,45,42,06,66,66,66,66,66,66,42,67,67,42,45 DATA 45,45,45,45,06,66,15,15,15,66,66,42,67,67,42,45 DATA 46,45,46,45,06,66,66,15,15,66,66,42,42,42,46,46 DATA 46,46,46,46,46,06,66,66,66,42,06,46,46,46,46,46 DATA 47,46,47,46,05,05,06,42,42,66,06,05,05,46,47,46 DATA 47,47,47,05,37,37,05,66,66,66,05,37,37,05,47,47 DATA 47,47,47,05,37,37,37,37,37,37,37,37,37,05,47,47 sampleSwap: ' Swap - unmapped (hex) DATA 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F DATA 10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F DATA 20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F DATA 30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,3F DATA 40,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F DATA 50,51,52,53,54,55,56,57,58,59,5A,5B,5C,5D,5E,5F DATA 60,61,62,63,64,65,66,67,68,69,6A,6B,6C,6D,6E,6F DATA 70,71,72,73,74,75,76,77,78,79,7A,7B,7C,7D,7E,7F DATA 80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F DATA 90,91,92,93,94,95,96,97,98,99,9A,9B,9C,9D,9E,9F DATA A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF DATA B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF DATA C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,CA,CB,CC,CD,CE,CF DATA D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF DATA E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,EA,EB,EC,ED,EE,EF DATA F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,FA,FB,FC,FD,FE,FF ' Swap - greyscale (hex) DATA 00,11,17,18,14,15,17,07,08,17,1C,1D,19,1A,1E,0F DATA 00,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,0F DATA 12,13,15,08,17,17,08,08,16,18,1A,1C,1E,1D,1C,07 DATA 1A,1B,07,07,1C,1A,17,15,1A,1A,1B,07,1C,07,07,07 DATA 07,1C,1D,1E,1E,1E,1E,1D,1D,1D,1D,1D,1D,1D,1C,1B DATA 1C,1D,1D,1D,1D,1D,1D,1D,1D,1D,1E,1E,0F,1E,1E,1E DATA 1E,1E,1E,1E,1E,1E,1D,1D,11,11,12,12,13,13,13,12 DATA 12,13,15,08,17,17,08,16,15,15,15,16,16,15,13,12 DATA 15,15,15,16,16,16,16,16,15,16,08,17,17,17,17,17 DATA 08,17,17,17,17,08,16,15,08,08,08,17,17,17,17,17 DATA 08,17,17,17,18,17,17,17,17,17,17,17,17,17,17,08 DATA 00,11,11,11,12,11,11,11,11,12,12,13,14,14,13,13 DATA 12,13,13,13,13,12,12,11,12,13,13,13,13,13,13,13 DATA 13,13,14,14,14,14,14,14,14,14,14,14,14,13,13,13 DATA 13,13,13,14,14,14,14,14,13,14,14,14,14,14,14,14 DATA 14,14,14,14,14,14,14,13,00,00,00,00,00,00,00,00 ' Swap - EGA (hex) DATA 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F DATA 00,00,00,08,08,08,08,08,08,07,07,07,07,07,0F,0F DATA 01,09,09,05,0D,05,0C,0C,04,06,06,0E,0E,0E,0A,0A DATA 02,0A,0A,03,0B,03,09,09,09,09,0D,0D,0D,0D,0D,0C DATA 0C,0C,0E,0E,0E,0E,0E,0A,0A,0A,0B,0B,0B,0B,0B,09 DATA 07,07,0F,0F,0F,0F,0F,07,07,07,0F,0F,0F,0F,0F,07 DATA 07,07,0F,0F,0F,0F,0F,07,01,01,01,08,05,08,04,04 DATA 04,04,06,06,06,06,02,02,02,02,02,08,03,08,01,01 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 00,00,00,00,08,00,00,00,00,00,00,00,06,00,00,00 DATA 00,00,00,00,08,00,00,00,08,08,08,08,08,08,08,08 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 08,08,08,08,08,08,08,08,00,00,00,00,00,00,00,00 SUB drawPal (x AS INTEGER, y AS INTEGER, map AS STRING) DIM index AS INTEGER FOR y2% = 0 TO 15 FOR x2% = 0 TO 15 PSET (x + x2%, y + y2%), ASC(MID$(map, 1 + (x2% + (y2% * 16)), 1)) NEXT x2% NEXT y2% END SUB SUB drawPic (x AS INTEGER, y AS INTEGER, map AS STRING) DIM index AS INTEGER RESTORE samplePic FOR y2% = 0 TO 15 FOR x2% = 0 TO 15 READ index PSET (x + x2%, y + y2%), ASC(MID$(map, 1 + index, 1)) NEXT x2% NEXT y2% END SUB