0100 ;SAVE#D:SNOW.PT3 0110 ; 0120 ;----------------- 0130 ; screen data file 0140 ; & uncompacter 0150 ; for snowplow 0160 ; 0170 ; by: Barry Kolbe 0180 ; 0190 ;----------------- 0200 ; 0210 ;uncompact screen data 0220 ; 0230 ;set up pointers & 0240 ;end of memory 0250 ; 0260 UNCOM LDA #$90 0270 STA BFL+1 0280 LDA #0 0290 STA BFL 0300 LDA # MAPDATA 0330 STA TL+1 0340 LDA #1 0350 STA EDM 0360 LDA #$9A 0370 STA EDM+1 0380 ; 0390 ;test for unique or 0400 ;repeated data 0410 ; 0420 LDY #0 0430 UC1 STY UNIQUE 0440 STY COUNT+1 0450 JSR GETAB ;in A 0460 CLC 0470 ROL A 0480 ROL UNIQUE ;bit 7 test 0490 LSR A 0500 STA COUNT ;lsb 0510 BNE CKU ;if 0 long count 0520 JSR GETAB ;msb 0530 STA COUNT+1 0540 JSR GETAB 0550 STA COUNT ;lsb of long cnt 0560 CKU LDA UNIQUE 0570 BEQ UC2 0580 UC3 JSR GETAB ;unique data 0590 STA (BFL),Y 0600 JSR NXBFL 0610 DEC COUNT 0620 BNE UC3 0630 LDA COUNT+1 0640 BEQ UC1 0650 DEC COUNT+1 0660 JMP UC3 0670 ; 0680 ;repeated data 0690 ; 0700 UC2 JSR GETAB 0710 STA DATA 0720 UC4 LDA DATA 0730 STA (BFL),Y 0740 JSR NXBFL 0750 DEC COUNT 0760 BNE UC4 0770 LDA COUNT+1 0780 BEQ UC1 ;next 0790 DEC COUNT+1 0800 JMP UC4 0810 ; 0820 ;increment dest. ptr & 0830 ;check for end of screen 0840 ;memory 0850 ; 0860 NXBFL INC BFL 0870 BNE NIN 0880 INC BFL+1 0890 NIN LDA BFL+1 0900 CMP EDM+1 0910 BNE NRT 0920 LDA BFL 0930 CMP EDM 0940 BNE NRT 0950 PLA ;done so get out 0960 PLA 0970 NRT RTS 0980 ; 0990 GETAB LDA (TL),Y ;get 1 byte 1000 INC TL ;&inc. ptr of 1010 BNE GTZ ;source 1020 INC TL+1 1030 GTZ RTS 1040 ; 1050 ;the actual screen compacted 1060 ; 1070 MAPDATA .BYTE 4,0,30,96,130,108 1080 .BYTE 110,14,96,130,108,116 1090 .BYTE 6,7,130,114,110,28 1100 .BYTE 96,130,27,28,12,96 1110 .BYTE 130,108,110,22,96,130 1120 .BYTE 108,116,4,0,130,14 1130 .BYTE 15,3,7,135,1,2 1140 .BYTE 3,4,7,5,6,2 1150 .BYTE 7,130,5,6,3,7 1160 .BYTE 130,5,6,9,7,130 1170 .BYTE 98,100,2,7,130,5 1180 .BYTE 6,2,7,130,5,6 1190 .BYTE 6,7,130,98,100,6 1200 .BYTE 7,130,98,100,2,7 1210 .BYTE 137,13,7,1,2,3 1220 .BYTE 4,7,5,6,27,7 1230 .BYTE 130,5,6,2,7,130 1240 .BYTE 98,100,5,7,130,14 1250 .BYTE 15,15,7,130,98,100 1260 .BYTE 4,0,2,7,130,114 1270 .BYTE 110,12,96,130,108,116 1280 .BYTE 6,7,130,5,6,4 1290 .BYTE 7,130,98,100,4,7 1300 .BYTE 130,5,6,2,7,130 1310 .BYTE 5,6,4,7,132,98 1320 .BYTE 100,5,6,2,7,132 1330 .BYTE 5,6,98,104,10,96 1340 .BYTE 130,108,116,6,7,135 1350 .BYTE 1,2,3,4,7,5 1360 .BYTE 6,5,7,130,5,6 1370 .BYTE 8,7,132,5,6,98 1380 .BYTE 100,2,7,130,114,110 1390 .BYTE 14,96,130,108,116,2 1400 .BYTE 7,130,98,100,4,0 1410 .BYTE 135,5,6,98,100,7 1420 .BYTE 5,6,9,7,133,98 1430 .BYTE 100,7,5,6,5,7 1440 .BYTE 130,5,6,2,7,130 1450 .BYTE 98,100,14,7,130,98 1460 .BYTE 100,2,7,130,5,6 1470 .BYTE 2,7,130,98,100,10 1480 .BYTE 7,133,98,100,7,5 1490 .BYTE 6,5,7,4,96,130 1500 .BYTE 108,116,2,7,130,14 1510 .BYTE 15,11,7,131,13,98 1520 .BYTE 100,2,7,130,98,100 1530 .BYTE 14,7,130,98,100,2 1540 .BYTE 7,130,98,100,4,0 1550 .BYTE 2,7,130,98,100,7 1560 .BYTE 7,135,1,2,3,4 1570 .BYTE 7,120,112,12,96,130 1580 .BYTE 106,118,14,7,130,98 1590 .BYTE 104,6,96,130,102,100 1600 .BYTE 8,7,135,1,2,3 1610 .BYTE 4,7,5,6,4,7 1620 .BYTE 130,5,6,3,7,130 1630 .BYTE 120,112,12,96,130,108 1640 .BYTE 110,2,96,130,106,118 1650 .BYTE 2,7,130,98,100,2 1660 .BYTE 7,130,114,110,6,96 1670 .BYTE 130,108,116,2,7,130 1680 .BYTE 98,100,2,7,130,98 1690 .BYTE 100,4,0,2,7,130 1700 .BYTE 98,100,4,7,130,5 1710 .BYTE 6,3,7,130,5,6 1720 .BYTE 5,7,130,5,6,2 1730 .BYTE 7,130,5,6,6,7 1740 .BYTE 130,5,6,2,7,130 1750 .BYTE 5,6,8,7,130,98 1760 .BYTE 100,6,7,130,98,100 1770 .BYTE 2,7,130,5,6,3 1780 .BYTE 7,130,5,6,4,7 1790 .BYTE 133,5,6,7,5,6 1800 .BYTE 16,7,130,8,10,2 1810 .BYTE 7,130,98,100,2,7 1820 .BYTE 130,5,6,2,7,130 1830 .BYTE 98,100,2,7,138,98 1840 .BYTE 100,13,7,1,2,3 1850 .BYTE 4,98,100,2,7,130 1860 .BYTE 98,100,2,7,130,98 1870 .BYTE 100,4,0,2,7,130 1880 .BYTE 120,112,30,96,130,27 1890 .BYTE 28,4,96,130,108,116 1900 .BYTE 4,7,130,98,100,6 1910 .BYTE 7,130,98,100,4,7 1920 .BYTE 130,114,110,2,96,130 1930 .BYTE 108,116,4,7,130,114 1940 .BYTE 110,2,96,130,108,116 1950 .BYTE 4,7,130,114,110,4 1960 .BYTE 96,130,108,116,6,7 1970 .BYTE 130,98,100,4,7,132 1980 .BYTE 5,6,98,100,2,7 1990 .BYTE 130,120,112,4,96,2 2000 .BYTE 7,130,98,100,2,7 2010 .BYTE 130,98,100,2,7,130 2020 .BYTE 98,100,4,0,13,7 2030 .BYTE 130,5,6,21,7,130 2040 .BYTE 5,6,2,7,130,98 2050 .BYTE 100,4,7,132,98,100 2060 .BYTE 8,10,4,7,130,98 2070 .BYTE 100,4,7,134,98,100 2080 .BYTE 5,6,98,100,4,7 2090 .BYTE 134,98,100,5,6,98 2100 .BYTE 100,4,7,130,98,100 2110 .BYTE 2,7,132,14,15,98 2120 .BYTE 100,6,7,130,98,100 2130 .BYTE 6,7,130,98,100,10 2140 .BYTE 7,130,98,100,2,7 2150 .BYTE 130,98,100,2,7,130 2160 .BYTE 98,100,4,0,130,114 2170 .BYTE 110,28,96,130,108,116 2180 .BYTE 6,7,134,14,15,98 2190 .BYTE 100,5,6,2,7,130 2200 .BYTE 98,100,6,7,130,120 2210 .BYTE 112,4,96,130,106,118 2220 .BYTE 2,7,130,120,112,4 2230 .BYTE 96,130,106,118,2,7 2240 .BYTE 130,120,112,4,96,130 2250 .BYTE 106,118,4,7,130,120 2260 .BYTE 112,2,96,130,108,110 2270 .BYTE 2,96,130,106,118,6 2280 .BYTE 7,130,120,112,10,96 2290 .BYTE 130,106,118,2,7,130 2300 .BYTE 98,100,2,7,130,98 2310 .BYTE 100,4,0,139,98,100 2320 .BYTE 7,5,6,5,6,5 2330 .BYTE 6,5,6,7,7,130 2340 .BYTE 5,6,3,7,130,5 2350 .BYTE 6,5,7,130,98,100 2360 .BYTE 4,7,130,114,110,2 2370 .BYTE 96,130,106,118,4,7 2380 .BYTE 130,98,100,6,7,137 2390 .BYTE 13,7,1,2,3,4 2400 .BYTE 7,5,6,27,7,131 2410 .BYTE 98,100,13,25,7,130 2420 .BYTE 98,100,2,7,130,98 2430 .BYTE 100,4,0,130,120,112 2440 .BYTE 10,96,130,8,10,6 2450 .BYTE 7,130,5,6,8,7 2460 .BYTE 130,98,100,4,7,130 2470 .BYTE 98,100,8,7,130,98 2480 .BYTE 100,8,7,130,114,110 2490 .BYTE 18,96,130,108,116,4 2500 .BYTE 7,130,114,110,6,96 2510 .BYTE 130,106,112,4,96,130 2520 .BYTE 27,28,20,96,130,102 2530 .BYTE 100,2,7,130,98,100 2540 .BYTE 4,0,5,7,130,5 2550 .BYTE 6,16,7,130,5,6 2560 .BYTE 5,7,130,98,100,4 2570 .BYTE 7,130,98,100,8,7 2580 .BYTE 132,98,100,5,6,2 2590 .BYTE 7,130,5,6,2,7 2600 .BYTE 130,98,100,6,7,138 2610 .BYTE 5,6,7,1,2,3 2620 .BYTE 4,7,5,6,2,7 2630 .BYTE 130,98,100,4,7,130 2640 .BYTE 98,100,24,7,130,5 2650 .BYTE 6,8,7,130,98,100 2660 .BYTE 2,7,130,98,100,4 2670 .BYTE 0,130,114,110,6,96 2680 .BYTE 130,108,116,4,7,130 2690 .BYTE 114,110,6,96,130,108 2700 .BYTE 116,6,7,130,98,100 2710 .BYTE 4,7,130,120,112,2 2720 .BYTE 96,130,108,116,4,7 2730 .BYTE 130,98,100,2,7,130 2740 .BYTE 5,6,2,7,132,5 2750 .BYTE 6,98,100,2,7,130 2760 .BYTE 5,6,4,7,130,5 2770 .BYTE 6,8,7,132,98,100 2780 .BYTE 8,10,2,7,130,98 2790 .BYTE 104,10,96,130,108,116 2800 .BYTE 2,7,136,13,7,1 2810 .BYTE 2,3,4,1,2,3 2820 .BYTE 7,132,5,6,5,6 2830 .BYTE 5,7,130,98,100,2 2840 .BYTE 7,130,98,100,4,0 2850 .BYTE 130,98,100,6,7,130 2860 .BYTE 98,100,2,7,132,5 2870 .BYTE 6,98,100,6,7,130 2880 .BYTE 98,100,6,7,130,98 2890 .BYTE 100,8,7,130,98,100 2900 .BYTE 4,7,130,98,100,8 2910 .BYTE 7,130,98,100,4,7 2920 .BYTE 130,5,6,12,7,130 2930 .BYTE 98,100,4,7,130,98 2940 .BYTE 100,2,7,130,5,6 2950 .BYTE 6,7,130,98,100,6 2960 .BYTE 7,130,98,100,2,7 2970 .BYTE 130,5,6,10,7,130 2980 .BYTE 98,100,2,7,130,98 2990 .BYTE 100,4,0,130,98,100 3000 .BYTE 2,7,130,5,6,2 3010 .BYTE 7,130,120,112,4,96 3020 .BYTE 132,106,118,5,6,2 3030 .BYTE 7,134,5,6,98,100 3040 .BYTE 5,6,2,7,135,5 3050 .BYTE 6,98,100,7,5,6 3060 .BYTE 5,7,130,98,100,4 3070 .BYTE 7,130,98,100,8,7 3080 .BYTE 130,120,112,8,96,130 3090 .BYTE 108,110,8,96,130,106 3100 .BYTE 118,4,7,130,98,100 3110 .BYTE 5,7,130,5,6,3 3120 .BYTE 7,130,120,112,6,96 3130 .BYTE 130,106,118,5,7,130 3140 .BYTE 5,6,7,7,134,98 3150 .BYTE 100,14,15,98,100,4 3160 .BYTE 0,130,98,100,4,7 3170 .BYTE 130,5,6,10,7,130 3180 .BYTE 5,6,2,7,130,98 3190 .BYTE 100,2,7,130,5,6 3200 .BYTE 2,7,130,120,112,8 3210 .BYTE 96,130,106,112,4,96 3220 .BYTE 130,102,100,4,7,130 3230 .BYTE 5,6,3,7,130,5 3240 .BYTE 6,2,7,130,5,6 3250 .BYTE 3,7,130,98,100,2 3260 .BYTE 7,130,5,6,3,7 3270 .BYTE 130,5,6,5,7,130 3280 .BYTE 98,104,4,96,130,108 3290 .BYTE 116,11,7,130,5,6 3300 .BYTE 14,7,131,13,98,100 3310 .BYTE 2,7,130,98,100,4 3320 .BYTE 0,130,98,100,6,7 3330 .BYTE 130,114,110,6,96,132 3340 .BYTE 1,2,3,4,2,7 3350 .BYTE 130,98,100,9,7,130 3360 .BYTE 5,6,11,7,130,98 3370 .BYTE 100,6,7,130,5,6 3380 .BYTE 10,7,130,98,100,4 3390 .BYTE 7,130,5,6,8,7 3400 .BYTE 130,98,100,2,7,132 3410 .BYTE 3,4,98,100,2,7 3420 .BYTE 130,8,10,24,96,130 3430 .BYTE 106,118,2,7,130,98 3440 .BYTE 100,4,0,130,98,100 3450 .BYTE 3,7,133,5,6,7 3460 .BYTE 98,100,12,7,130,98 3470 .BYTE 100,13,7,130,14,15 3480 .BYTE 7,7,130,98,100,9 3490 .BYTE 7,130,5,6,2,7 3500 .BYTE 130,5,6,3,7,130 3510 .BYTE 98,100,7,7,130,5 3520 .BYTE 6,5,7,130,98,100 3530 .BYTE 5,7,130,14,15,23 3540 .BYTE 7,132,1,2,3,4 3550 .BYTE 4,7,130,98,100,4 3560 .BYTE 0,132,1,2,3,4 3570 .BYTE 4,7,130,120,112,12 3580 .BYTE 96,130,106,112,12,96 3590 .BYTE 130,27,28,8,96,130 3600 .BYTE 106,112,18,96,132,106 3610 .BYTE 118,14,15,2,7,134 3620 .BYTE 1,2,3,4,3,4 3630 .BYTE 4,96,130,106,112,38 3640 .BYTE 96,130,106,118