10 ; SYNTAX ERROR 20 ; ------------ 30 SYNERR 40 PRINT T13 ; "Syntax:" 50 RTS 60 ; 70 ; CLEAR WINDOWS 80 ; ------------- 90 ; What Happens window 0100 ; 0110 CLWH 0120 LDX #9 0130 JSR ERASE 0140 INX 0150 JSR ERASE 0160 LDY #9 0170 JMP POSIT13 0180 ; 0190 ; Inventory window 0200 ; 0210 CLINV 0220 LDX #13 0230 CLINV1 0240 JSR ERASE 0250 INX 0260 CPX #19 0270 BCC CLINV1 0280 RTS 0290 ; 0300 ; DISPLAY ROOM VECTORS 0310 ; -------------------- 0320 SHOWVECTS 0330 LDX #2 0340 JSR ERASE 0350 LDY #0 0360 LDX #0 0370 STX ANY? 0380 SVL 0390 LDA CURVECT,X 0400 BMI VSKIP 0410 LDA VNAMES,X 0420 STA SCREEN+93,Y 0430 INC ANY? 0440 INY 0450 INY 0460 VSKIP 0470 INX 0480 CPX #6 0490 BCC SVL 0500 LDA ANY? 0510 BNE VECTEX 0520 POSITION 13,2 0530 PRINT T87 ; "None" 0540 VECTEX 0550 RTS 0560 ; 0570 ; Vector initials 0580 ; 0590 VNAMES 0600 .SBYTE "NSEWUD" 0610 ; 0620 ; DISPLAY ROOM OBJECTS 0630 ; -------------------- 0640 SHOWVIS 0650 LDX #3 0660 CLVIS 0670 JSR ERASE 0680 INX 0690 CPX #9 0700 BCC CLVIS 0710 POSITION 13,3 0720 LDX #0 0730 STX ANY? 0740 SHV1 0750 STX PDEX 0760 LDA CUROBJS,X 0770 BMI SHV2 0780 INC ANY? 0790 TAX 0800 LDA OBDLS,X 0810 LDY OBDHS,X 0820 JSR EPRINT 0830 SHV2 0840 LDX PDEX 0850 INX 0860 CPX #6 0870 BCC SHV1 0880 LDA ANY? 0890 BNE SHEXIT 0900 PRINT T28 ; "Nothing" 0910 SHEXIT 0920 RTS 0930 ; 0940 ; DISPLAY INVENTORY 0950 ; ----------------- 0960 SHOWINV 0970 JSR CLINV 0980 POSITION 13,13 0990 LDX #0 1000 STX ANY? 1010 SHI1 1020 STX PDEX 1030 LDA HOLDINGS,X 1040 BMI SHI2 1050 INC ANY? 1060 TAX 1070 LDA OBDLS,X 1080 LDY OBDHS,X 1090 JSR EPRINT 1100 SHI2 1110 LDX PDEX 1120 INX 1130 CPX #6 1140 BCC SHI1 1150 LDA ANY? 1160 BNE SIEXIT 1170 PRINT T28 ; "Nothing" 1180 SIEXIT 1190 RTS 1200 ; 1210 ; "OKAY" PROMPT 1220 ; ------------- 1230 POKAY 1240 JSR CLWH 1250 PRINT T20 ; "Okay" 1260 JMP GOODPARSE 1270 ; 1280 ; SEARCH INVENTORY 1290 ; ---------------- 1300 INVSPACE? 1310 LDA #$FF 1320 OWNIT? 1330 LDX #5 1340 OLOOP 1350 CMP HOLDINGS,X 1360 BEQ FOUND 1370 DEX 1380 BPL OLOOP 1390 TXA 1400 RTS 1410 FOUND 1420 STX INVPOS 1430 LDA #0 1440 RTS 1450 ; 1460 ; SEARCH ROOM 1470 ; ----------- 1480 ROOMSPACE? 1490 LDA #$FF 1500 INROOM? 1510 LDX #5 1520 IRLOOP 1530 CMP CUROBJS,X 1540 BEQ FOUND2 1550 DEX 1560 BPL IRLOOP 1570 TXA 1580 RTS 1590 FOUND2 1600 STX ROOMPOS 1610 LDA #0 1620 RTS 1630 ; 1640 ; PRINT INTEGER IN FR0 1650 ; -------------------- 1660 VPRINT 1670 JSR IFP 1680 JSR FASC 1690 CLD 1700 LDY #$FF 1710 VLOOP 1720 INY 1730 LDA (INBUFF),Y 1740 BPL VLOOP 1750 AND #$7F 1760 STA (INBUFF),Y 1770 INY 1780 LDA #EOL 1790 STA (INBUFF),Y 1800 LDA INBUFF 1810 LDY INBUFF+1 1820 JMP EPRINT 1830 ; 1840 ; DEATH 1850 ; ----- 1860 KILLS 1870 POSITION 14,5 1880 PRINT T63 ; "does you in!" 1890 DEATH 1900 POSITION 24,7 1910 PRINT T66 ; "YOU ARE DEAD" 1920 JMP STARTOP 1930 ; 1940 ; CLOSE IOCB #1 1950 ; ------------- 1960 CLOSE1 1970 LDX #$10 1980 LDA #12 1990 STA ICCOM,X 2000 JMP CIOV 2010 ; 2020 ; POINT TO FILENAMES 2030 ; ------------------ 2040 DPOINT 2050 LDA # FILE 2070 JMP POINT 2080 TPOINT 2090 LDA # CADR 2110 POINT 2120 LDX #$10 2130 STA ICBADR,X 2140 TYA 2150 STA ICBADR+1,X 2160 RTS 2170 ; 2180 ; INIT DATABASE 2190 ; ------------- 2200 ; 2210 INITDATA 2220 ; 2230 ; Set status flags 2240 ; 2250 LDX #28 2260 LDA #0 2270 ID0 2280 STA EVENT,X 2290 DEX 2300 BPL ID0 2310 ; 2320 ; Clear vector/object matrix 2330 ; 2340 LDX #0 2350 LDA #$FF 2360 ID1 2370 STA OBJECTS,X 2380 STA VECTORS,X 2390 INX 2400 CPX #132 2410 BCC ID1 2420 ; 2430 ; Clear working arrays 2440 ; 2450 LDX #5 2460 ID2 2470 STA HOLDINGS,X 2480 STA CUROBJS,X 2490 STA CURVECT,X 2500 DEX 2510 BPL ID2 2520 LDA #17 ; wallet 2530 STA HOLDINGS ; put in inv 2540 LDA #3 2550 STA MATCNT ; 3 matches 2560 LDA #30 ; # of turns till chest appears 2570 STA CHECNT 2580 LDA #15 ; # of turns till hit rocks 2590 STA ROCKCNT 2600 LDA #0 2610 STA PLACE ; start in cabin 2620 ; 2630 ; Init tranlation table 2640 ; 2650 LDX #37 2660 ID3 2670 LDA TRANS,X 2680 STA NTRANS,X 2690 DEX 2700 BPL ID3 2710 ; 2720 ; Init vector matrix 2730 ; 2740 LDX #43 2750 ID4 2760 LDA VDATA,X 2770 LDY VSETS,X 2780 STA VECTORS,Y 2790 DEX 2800 BPL ID4 2810 ; 2820 ; Init object matrix 2830 ; 2840 LDX #25 2850 ID5 2860 LDA ODATA,X 2870 LDY OSETS,X 2880 STA OBJECTS,Y 2890 DEX 2900 BPL ID5 2910 RTS 2920 ; 2930 ; Translator data 2940 ; 2950 TRANS 2960 .BYTE 0,1,2,3,3,4,5,5 2970 .BYTE 6,7,7,8,9,9,10,11 2980 .BYTE 11,12,13,13,14,14,15,16 2990 .BYTE 17,18,19,19,20,21,22,22 3000 .BYTE 23,24,25,26,27,28 3010 ; 3020 ; Vector data 3030 ; 3040 VDATA 3050 .BYTE 1,0,2,7,5,4,6,3 3060 .BYTE 4,8,5,3,4,6,7,6 3070 .BYTE 3,7,8,6,5,9,7 3080 .BYTE 8,11,9,10,21,13,15,14 3090 .BYTE 12,13,16,12,17,15,18,19 3100 .BYTE 15,16,17,19,12 3110 VSETS 3120 .BYTE 2,9,11,19,20,21,25,26 3130 .BYTE 27,31,32,33,36,37,38,39 3140 .BYTE 42,43,44,45,48,49,51 3150 .BYTE 54,61,62,66,73,74,75,80 3160 .BYTE 81,87,91,92,93,96,97,103 3170 .BYTE 104,108,114,120,126 3180 ; 3190 ; Object data 3200 ; 3210 ODATA 3220 .BYTE 1,26,24,18,22,3,3,3 3230 .BYTE 4,5,6,11,6,7,10,14 3240 .BYTE 16,8,9,10,19,12,21,14 3250 .BYTE 15,28 3260 OSETS 3270 .BYTE 0,1,6,12,18,36,42,48 3280 .BYTE 49,54,66,72,73,78,84,85 3290 .BYTE 86,90,91,96,97,114,115,120 3300 .BYTE 126,127 3310 ; 3320 ; DICTIONARY 3330 ; ---------- 3340 ; 3350 ; SINGLE-CHAR COMMANDS 3360 ; -------------------- 3370 SCOMS 3380 .BYTE "N" ; 0 - North 3390 .BYTE "S" ; 1 - South 3400 .BYTE "E" ; 2 - East 3410 .BYTE "W" ; 3 - West 3420 .BYTE "U" ; 4 - Up 3430 .BYTE "D" ; 5 - Down 3440 .BYTE "Q" ; 6 - Quit 3450 .BYTE "X" ; 7 - Save 3460 .BYTE "A" ; 8 - Again 3470 ; 3480 ; COMPOUND VERBS 3490 ; -------------- 3500 VERBS 3510 .BYTE "TAK" ; 0 - take 3520 .BYTE "GET" ; 1 - get 3530 .BYTE "PUL" ; 2 - pull 3540 .BYTE "DRO" ; 3 - drop 3550 .BYTE "KIC" ; 4 - kick 3560 .BYTE "LOO" ; 5 - look 3570 .BYTE "EXA" ; 6 - examine 3580 .BYTE "SEA" ; 7 - search 3590 .BYTE "REA" ; 8 - read 3600 .BYTE "PUS" ; 9 - push 3610 .BYTE "PRE" ; 10 - press 3620 .BYTE "OPE" ; 11 - open 3630 .BYTE "CLO" ; 12 - close 3640 .BYTE "WIT" ; 13 - with 3650 .BYTE "KIL" ; 14 - kill 3660 .BYTE "HIT" ; 15 - hit 3670 .BYTE "LIG" ; 16 - light 3680 .BYTE "PUL" ; 17 - pull 3690 .BYTE "CLI" ; 18 - climb 3700 .BYTE "SCA" ; 19 - scale 3710 .BYTE "INS" ; 20 - insert 3720 .BYTE "DRI" ; 21 - drink 3730 .BYTE "SWA" ; 22 - swallow 3740 .BYTE "ROW" ; 23 - row 3750 .BYTE "POU" ; 24 - pour 3760 .BYTE "THR" ; 25 - throw 3770 .BYTE "HEA" ; 26 - heave 3780 .BYTE "WEA" ; 27 - wear 3790 .BYTE "LAS" ; 28 - lasso 3800 .BYTE "MOV" ; 29 - move 3820 ; 3830 NV = 30 ; total # of verbs 3840 ; 3850 ; VERB VECTOR TABLE 3860 ; ----------------- 3870 VVECTS 3880 .WORD DOTAKE ; 0 3890 .WORD DOTAKE ; 1 3900 .WORD DOPULL ; 2 3910 .WORD DODROP ; 3 3920 .WORD DOKICK ; 4 3930 .WORD DOLOOK ; 5 3940 .WORD DOLOOK ; 6 3950 .WORD DOLOOK ; 7 3960 .WORD DOREAD ; 8 3970 .WORD DOPUSH ; 9 3980 .WORD DOPUSH ; 10 3990 .WORD DOOPEN ; 11 4000 .WORD WHYBOTH ; 12 4010 .WORD DOWITH ; 13 4020 .WORD DOKILL ; 14 4030 .WORD DOKILL ; 15 4040 .WORD DOLIGHT ; 16 4050 .WORD DOPULL ; 17 4060 .WORD DOCLIMB ; 18 4070 .WORD DOCLIMB ; 19 4080 .WORD DOINSERT ; 20 4090 .WORD DODRINK ; 21 4100 .WORD DODRINK ; 22 4110 .WORD DOROW ; 23 4120 .WORD DOPOUR ; 24 4130 .WORD DOTHROW ; 25 4140 .WORD DOTHROW ; 26 4150 .WORD DOWEAR ; 27 4160 .WORD DOLASSO ; 28 4170 .WORD DOMOVE ; 29 4180 ; 4190 ; COMPOUND NOUNS 4200 ; -------------- 4210 NOUNS 4220 .BYTE "CAV" ; 0 - cave 4230 .BYTE "CAB" ; 1 - cabinet 4240 .BYTE "CHE" ; 2 - chest 4250 .BYTE "PAL" ; 3 - palm 4260 .BYTE "TRE" ; 4 - trees 4270 .BYTE "SNA" ; 5 - snake 4280 .BYTE "PIL" ; 6 - pile 4290 .BYTE "RUB" ; 7 - rubble 4300 .BYTE "GAT" ; 8 - gate 4310 .BYTE "STO" ; 9 - stone 4320 .BYTE "HOU" ; 10 - house 4330 .BYTE "TEM" ; 11 - temple 4340 .BYTE "MAR" ; 12 - marble 4350 .BYTE "BUI" ; 13 - building 4360 .BYTE "PAI" ; 14 - painting 4370 .BYTE "SHO" ; 15 - shop 4380 .BYTE "ABA" ; 16 - abandoned 4390 .BYTE "SHE" ; 17 - shelves 4400 .BYTE "DOO" ; 18 - doorway 4410 .BYTE "SEC" ; 19 - secret 4420 .BYTE "MAC" ; 20 - machine 4430 .BYTE "STR" ; 21 - strange 4440 .BYTE "JUG" ; 22 - jug 4450 .BYTE "KNI" ; 23 - knife 4460 .BYTE "WAL" ; 24 - wallet 4470 .BYTE "OAR" ; 25 - oars 4480 .BYTE "CER" ; 26 - ceremonial 4490 .BYTE "ROB" ; 27 - robe 4500 .BYTE "PHO" ; 28 - photo 4510 .BYTE "PAP" ; 29 - paper 4520 .BYTE "RAF" ; 30 - raft 4530 .BYTE "INF" ; 31 - inflatable 4540 .BYTE "CAR" ; 32 - carcass 4550 .BYTE "ROP" ; 33 - rope 4560 .BYTE "DYN" ; 34 - dynamite 4570 .BYTE "MAT" ; 35 - matches 4580 .BYTE "COC" ; 36 - coconut 4590 .BYTE "GOB" ; 37 - goblet 4600 .BYTE "spa" ; 38 - spare 4610 .BYTE "BUT" ; 39 - button 4620 .BYTE "INV" ; 40 - inventory 4630 .BYTE "COR" ; 41 - cord 4640 .BYTE "OIL" ; 42 - oil 4650 .BYTE "LIQ" ; 43 - liquid 4660 ; 4670 NN = 44 ; total # of nouns 4680 ; 4690 ; ROOM DESCRIPTIONS 4700 ; ----------------- 4710 ; 4720 RD0 4730 TEXT "Your cabin" 4740 RD1 4750 TEXT "On deck" 4760 RD2 4770 TEXT "In the raft" 4780 RD3 4790 TEXT "Beach" 4800 RD4 4810 TEXT "West beach" 4820 RD5 4830 TEXT "East beach" 4840 RD6 4850 TEXT "Jungle" 4860 RD7 4870 TEXT "Jungle" 4880 RD8 4890 TEXT "Jungle" 4900 RD9 4910 TEXT "Beside a cliff wall" 4920 RD10 4930 TEXT "In the cave" 4940 RD11 4950 TEXT "Gate to lost city" 4960 RD12 4970 TEXT "Ancient street" 4980 RD13 4990 TEXT "Alleyway" 5000 RD14 5010 TEXT "Stone house" 5020 RD15 5030 TEXT "Brick road" 5040 RD16 5050 TEXT "Temple" 5060 RD17 5070 TEXT "Marble building" 5080 RD18 5090 TEXT "Beside an altar" 5100 RD19 5110 TEXT "Storage room" 5120 RD20 5130 TEXT "Secret room" 5140 RD21 5150 TEXT "Abandoned shop" 5160 ; 5170 ; ROOM DESC. ADDRESS TABLES 5180 ; ------------------------- 5190 RDLS 5200 .BYTE RD0, >RD1, >RD2, >RD3, >RD4, >RD5 5270 .BYTE >RD6, >RD7, >RD8, >RD9, >RD10, >RD11 5280 .BYTE >RD12, >RD13, >RD14, >RD15, >RD16, >RD17 5290 .BYTE >RD18, >RD19, >RD20, >RD21 5300 ; 5310 ; OBJECT DESCRIPTIONS 5320 ; ------------------- 5330 ; 5340 OBD0 5350 TEXT "Cave" 5360 OBD1 5370 TEXT "Cabinet" 5380 OBD2 5390 TEXT "Chest" 5400 OBD3 5410 TEXT "Palm trees" 5420 OBD4 5430 TEXT "Snake" 5440 OBD5 5450 TEXT "Pile of rubble" 5460 OBD6 5470 TEXT "Gate" 5480 OBD7 5490 TEXT "Stone house" 5500 OBD8 5510 TEXT "Temple" 5520 OBD9 5530 TEXT "Marble building" 5540 OBD10 5550 TEXT "Painting" 5560 OBD11 5570 TEXT "Abandoned shop" 5580 OBD12 5590 TEXT "Shelves" 5600 OBD13 5610 TEXT "Secret doorway" 5620 OBD14 5630 TEXT "Strange machine" 5640 OBD15 5650 TEXT "Jug" 5660 OBD16 5670 TEXT "Knife" 5680 OBD17 5690 TEXT "Wallet" 5700 OBD18 5710 TEXT "Oars" 5720 OBD19 5730 TEXT "Ceremonial robe" 5740 OBD20 5750 TEXT "Photo" 5760 OBD21 5770 TEXT "Paper" 5780 OBD22 5790 TEXT "Inflatable raft" 5800 OBD23 5810 TEXT "Carcass" 5820 OBD24 5830 TEXT "Rope" 5840 OBD25 5850 TEXT "Dynamite" 5860 OBD26 5870 TEXT "Matchbook" 5880 OBD27 5890 TEXT "Coconut" 5900 OBD28 5910 TEXT "Goblet" 5920 ; 5930 ; DESCRIPTION ADDR TABLES 5940 ; ----------------------- 5950 OBDLS 5960 .BYTE OBD0, >OBD1, >OBD2, >OBD3 6070 .BYTE >OBD4, >OBD5, >OBD6, >OBD7 6080 .BYTE >OBD8, >OBD9, >OBD10, >OBD11 6090 .BYTE >OBD12, >OBD13, >OBD14, >OBD15 6100 .BYTE >OBD16, >OBD17, >OBD18, >OBD19 6110 .BYTE >OBD20, >OBD21, >OBD22, >OBD23 6120 .BYTE >OBD24, >OBD25, >OBD26, >OBD27 6130 .BYTE >OBD28 6140 ; 6150 ; TEXT 6160 ; ---- 6170 ; 6180 EADR 6190 TEXT "E:" 6200 CADR 6210 TEXT "C:" 6220 FILE 6230 TEXT "D1:ROAD.DAT" 6240 T0 6250 TEXT "Clayton Walnum's" 6260 T1 6270 TEXT "ONE FOR THE ROAD" 6280 T2 6290 TEXT "(C)1985 ANALOG Computing" 6300 T3 6310 TEXT "Press START to play new game" 6320 T4 6330 TEXT "Press OPTION to restore old game" 6340 T5 6350 TEXT "Restore from Disk or Cassette?" 6360 T6 6370 TEXT " ONE FOR THE ROAD EVENT # " 6380 T7 6390 TEXT " LOCATION EXITS " 6400 T8 6410 TEXT " VISIBLE ITEMS " 6420 T9 6430 TEXT " " 6440 T10 6450 TEXT " WHAT " 6460 T11 6470 TEXT " HAPPENS YOUR RESPONSE " 6480 T12 6490 TEXT " YOU ARE CARRYING " 6500 T13 6510 TEXT "Syntax:" 6520 T14 6530 TEXT "Bad command" 6540 T15 6550 TEXT "Bad verb" 6560 T16 6570 TEXT "Bad noun" 6580 T17 6590 TEXT "That's impossible" 6600 T18 6610 TEXT "Can't go that way" 6620 T19 6630 TEXT "Type Y to quit game:" 6640 T20 6650 TEXT "Okay" 6660 T21 6670 TEXT "Already holding it" 6680 T22 6690 TEXT "Isn't here" 6700 T23 6710 TEXT "Can't do that yet" 6720 T24 6730 TEXT "Your arms are full!" 6740 T25 6750 TEXT "No room here" 6760 T26 6770 TEXT "It's stuck" 6780 T27 6790 TEXT "You don't have it" 6800 T28 6810 TEXT "Nothing" 6811 T29 6812 TEXT "Match goes out" 6880 T32 6890 TEXT "The strange liquid" 6900 T33 6910 TEXT "Why bother?" 6920 T34 6930 TEXT "Seems ordinary" 6940 T35 6950 TEXT "You found something!" 6960 T36 6970 TEXT "It has a cord" 6980 T37 6990 TEXT "The raft inflates!" 7000 T38 7010 TEXT "Raft's too big" 7020 T39 7030 TEXT "Into the ocean" 7040 T40 7050 TEXT "They're too high" 7060 T41 7070 TEXT "There's coconuts" 7080 T42 7090 TEXT "It's from your boat!" 7100 T43 7110 TEXT "Ouch! But it opens." 7120 T44 7130 TEXT "Liquid spills over floor" 7140 T45 7150 TEXT "It's got a fuse" 7160 T46 7170 TEXT "Snake won't let you!" 7180 T47 7190 TEXT "The coconut clobbers him" 7200 T48 7210 TEXT "Boooooooommmmm!!!" 7220 T49 7230 TEXT "It's pretty high..." 7240 T50 7250 TEXT "There's a button" 7260 T51 7270 TEXT "It's tightly corked" 7280 T52 7290 TEXT "Sacrifice being performed" 7300 T53 7310 TEXT "With what?" 7320 T54 7330 TEXT "There's oil in it" 7340 T55 7350 TEXT "A fiery sacrifice!" 7360 T56 7370 TEXT "Nothing happens" 7372 T57 7373 TEXT "Into the slot" 7374 T58 7375 TEXT "You open it" 7380 T59 7390 TEXT "Liquid fills the goblet" 7400 T60 7410 TEXT "It shows a stone house" 7420 T61 7430 TEXT "A secret doorway!" 7440 T62 7450 TEXT "A button and a slot" 7460 T63 7470 TEXT "does you in!" 7480 T64 7490 TEXT "One for the road!" 7500 T65 7510 TEXT "Already open" 7520 T66 7530 TEXT "you are DEAD" 7560 T68 7570 TEXT "It's your house" 7573 T70 7574 TEXT "You put the robe on" 7580 T71 7590 TEXT "The storm tossed ocean" 7620 T73 7630 TEXT "A huge explosion" 7631 T74 7632 TEXT "On the carcass" 7640 T75 7650 TEXT "Blasphemy! A lightning bolt" 7660 T76 7670 TEXT "A blast of divine energy" 7680 T77 7690 TEXT "Crashing into the rocks" 7700 T78 7710 TEXT "A snake bite" 7720 T79 7730 TEXT "There's none left!" 7740 T80 7750 TEXT "You already did that!" 7780 T82 7790 TEXT "Save to Disk or Cassette?" 7800 T83 7810 TEXT "It looks deadly!" 7820 T84 7830 TEXT "Don't look very heavy" 7840 T85 7850 TEXT "Don't do that here!" 7860 T86 7870 TEXT "You are home!" 7880 T87 7881 TEXT "None" 7882 T88 7883 TEXT "Don't get burned!" 7900 ; 7910 ; REDEFINE CHARACTER SET 7920 ; ---------------------- 7930 ; 7940 ; MOVE ROM SET 7950 ; ------------ 7960 ; 7970 MOVESET 7980 LDA # NEWSET 8010 STA $CC ; hi byte of new set 8020 LDA # ROMSET ; hi byte of ROM set 8050 STA $CE 8060 LDX #4 ; # of pages to move 8070 MR1 8080 LDY #0 ; reset index 8090 MR2 8100 LDA ($CD),Y ; get ROM byte 8110 STA ($CB),Y ; move to new location 8120 INY ; add 1 to index 8130 BNE MR2 ; go move next byte 8140 INC $CE ; point to next page 8150 INC $CC 8160 DEX ; -1 from # of pages 8170 BNE MR1 ; go move next 256 bytes 8180 ; 8190 ; MOVE NEW SET 8200 ; ------------ 8210 ; 8220 LDA #0 ; init counter 8230 STA OFFCNT 8240 LDA # CHSET ; move char set adr hi 8270 STA SETPNT+1 ; to temp work space 8280 MS1 8290 LDY OFFCNT ; use y to index tables 8300 LDX CHARCNT,Y ; # of chars to move 8310 LDA CHARADRL,Y ; get offset adr lo 8320 STA $CB ; and store it 8330 LDA CHARADRH,Y ; get offset adr hi 8340 STA $CC ; and store it 8350 INC OFFCNT ; add 1 to counter 8360 MS2 8370 LDY #0 ; reset index 8380 MS3 8390 LDA (SETPNT),Y ; get char data and 8400 STA ($CB),Y ; move to new set 8410 INY ; add 1 to index 8420 CPY #8 ; done with char? 8430 BNE MS3 ; no, get next byte 8440 ; 8450 DEX ; yes, -1 from number of chars 8460 BEQ MS5 ; go check if done 8470 JSR MS7 8480 CLC 8490 LDA #8 8500 ADC $CB 8510 STA $CB 8520 BCC MS2 8530 INC $CC 8540 JMP MS2 8550 MS5 8560 LDA OFFCNT 8570 CMP #3 8580 BEQ MS6 8590 JSR MS7 8600 JMP MS1 8610 MS6 8620 RTS 8630 MS7 8640 CLC 8650 LDA #8 8660 ADC SETPNT 8670 STA SETPNT 8680 BCC MS8 8690 INC SETPNT+1 8700 MS8 8710 RTS 8720 ; 8730 ; character offset tables 8740 ; ----------------------- 8750 ; 8760 CHARCNT 8770 .BYTE 10,26,26 8780 CHARADRL 8790 .BYTE $80,$08,$08 8800 CHARADRH 8810 .BYTE $44,$45,$47 8820 ; 8830 ; CHARACTER SET DATA 8840 ; ------------------ 8850 ; 8860 CHSET 8870 .BYTE 0,126,102,110,118,118,126,0 8880 .BYTE 0,120,120,24,24,24,126,0 8890 .BYTE 0,126,102,12,56,112,126,0 8900 .BYTE 0,126,14,24,12,118,126,0 8910 .BYTE 0,28,60,124,108,126,14,0 8920 .BYTE 0,126,96,126,6,118,126,0 8930 .BYTE 0,124,96,126,102,118,126,0 8940 .BYTE 0,126,6,14,14,14,14,0 8950 .BYTE 0,126,102,60,102,118,126,0 8960 .BYTE 0,126,102,126,6,14,14,0 8970 .BYTE 0,124,108,108,254,198,198,0 8980 .BYTE 0,124,108,126,102,102,126,0 8990 .BYTE 0,126,102,96,112,118,126,0 9000 .BYTE 0,124,102,102,118,118,126,0 9010 .BYTE 0,126,96,126,112,112,126,0 9020 .BYTE 0,126,96,126,112,112,112,0 9030 .BYTE 0,126,102,96,110,118,126,0 9040 .BYTE 0,102,102,126,230,230,230,0 9050 .BYTE 0,48,48,48,56,56,56,0 9060 .BYTE 0,12,12,14,14,110,126,0 9070 .BYTE 0,108,108,124,126,102,102,0 9080 .BYTE 0,96,96,112,112,112,126,0 9090 .BYTE 0,119,119,127,107,99,99,0 9100 .BYTE 0,126,102,102,102,102,102,0 9110 .BYTE 0,126,110,110,102,102,126,0 9120 .BYTE 0,126,102,118,126,96,96,0 9130 .BYTE 0,126,102,102,102,126,28,0 9140 .BYTE 0,124,108,108,126,118,118,0 9150 .BYTE 0,126,96,126,6,102,126,0 9160 .BYTE 0,126,24,24,28,28,28,0 9170 .BYTE 0,102,102,102,102,118,126,0 9180 .BYTE 0,102,102,118,126,60,24,0 9190 .BYTE 0,99,99,107,127,119,119,0 9200 .BYTE 0,118,118,60,60,118,118,0 9210 .BYTE 0,102,102,126,24,24,24,0 9220 .BYTE 0,126,14,24,112,112,126,0 9230 .BYTE 0,0,62,6,62,102,126,0 9240 .BYTE 0,96,96,126,118,118,126,0 9250 .BYTE 0,0,124,96,96,112,124,0 9260 .BYTE 0,6,6,126,102,110,126,0 9270 .BYTE 0,0,126,102,126,112,126,0 9280 .BYTE 0,30,24,126,56,56,56,0 9290 .BYTE 0,0,126,102,110,126,6,126 9300 .BYTE 0,96,96,126,102,118,118,0 9310 .BYTE 0,24,0,24,24,28,28,0 9320 .BYTE 0,14,0,14,14,14,14,126 9330 .BYTE 0,96,108,108,120,110,110,0 9340 .BYTE 0,56,24,24,24,28,60,0 9350 .BYTE 0,0,119,127,127,107,99,0 9360 .BYTE 0,0,126,102,102,102,102,0 9370 .BYTE 0,0,126,102,118,118,126,0 9380 .BYTE 0,0,126,102,102,126,112,112 9390 .BYTE 0,0,126,102,102,126,14,14 9400 .BYTE 0,0,126,102,96,112,112,0 9410 .BYTE 0,0,126,96,126,6,126,0 9420 .BYTE 0,24,126,24,24,28,28,0 9430 .BYTE 0,0,102,102,118,118,126,0 9440 .BYTE 0,0,102,102,118,126,24,0 9450 .BYTE 0,0,99,107,127,127,119,0 9460 .BYTE 0,0,102,126,24,126,102,0 9470 .BYTE 0,0,102,102,102,126,6,126 9480 .BYTE 0,0,126,12,56,112,126,0