Home » Archimedes archive » Micro User » MU 1990-08.adf » July\BBC/L-3
July\BBC/L-3
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Micro User » MU 1990-08.adf |
Filename: | July\BBC/L-3 |
Read OK: | ✔ |
File size: | 5E9B bytes |
Load address: | FFFFFF43 |
Exec address: | 6D392ED3 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Micro User » MU 1990-08.adf » July\BBC/L-3
- AEW website » mu » mu_5_25_discs_Micro_User_08_05_D-MU08_05.ssd » L-3
File contents
*BASIC 10 REM Listing I 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&2100 THEN END 70 IF A%=0 THEN MODE 3:PROCfirst_run 80 IF A%=1 THEN PROCsecond_run 90 END 110 DEFPROCfirst_run 120 *LOAD "DESK-MC" 130 PROCmc_variables 140 CALL desktop 150 A%=1 160 IF ?icon=1 THEN PROCload_calculator 170 IF ?icon=2 THEN PROCload_calendar 180 ENDPROC 200 DEFPROCsecond_run 210 PROCmc_variables 220 *FX3 230 CALL desktop_loop 240 IF ?icon=1 THEN PROCload_calculator 250 IF ?icon=2 THEN PROCload_calendar 260 ENDPROC 280 DEFPROCload_calculator 290 *FX3,6 300 *LOAD "CALC-MC" 310 CHAIN "CALC-BA" 320 ENDPROC 340 DEFPROCload_calendar 350 *FX3,6 360 *LOAD "CALE-MC" 370 CHAIN "CALE-BA" 380 ENDPROC 400 DEFPROCmc_variables 410 desktop=&1D7A 420 desktop_loop=&1D92 430 icon=&63 440 ENDPROC SAVE"L-3-I" NEW 10 REM Listing II 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&2100 THEN END 70 dropped_box=&1B2A 80 restore_dropped_box=&1B84 90 box=&1AC9 100 inverse_text=&1B8E 110 normal_text=&1BA3 120 get_icon_shape=&1AAF 140 xlb=&50:xhb=&51 150 ylb=&52:yhb=&53 160 X1=&54:X2=&55 170 Y1=&56:Y2=&57 180 color=&58 190 stl=&59:sth=&5A 200 pass=&5B 210 coll=&5C:colh=&5D 220 memory=&5E 230 pwl=&5F:pwh=&60 240 windows=&61 250 icon=&63 260 icons=&64 270 iconY=&65 280 iconX=&66 290 box1=&67 300 box2=&68 310 box3=&69 320 box4=&6A 330 dbox1=&6B 340 dbox2=&6C 350 dbox3=&6D 360 gpl=&6E 370 gph=&6F 380 gp2l=&72 390 gp2h=&73 410 FOR code=0 TO 2 STEP 2 420 P%=&1ED8 430 [OPT code 450 .calculator 460 JSR draw_calculator_shape 470 JSR draw_calc_display 480 JSR calculator_icons_data 490 JSR display_calc_keys 500 RTS 520 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 530 \\\\ CALCULATOR ROUTINES \\\\ 540 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 550 .draw_calculator_shape 560 LDA &2:STA stl 570 LDA &3:CLC:ADC #2:STA sth 580 LDA #0:STA windows 590 LDA #28:STA X1:LDA #45:STA Y1 600 LDA #22:STA X2:LDA #130:STA Y2 610 LDA #238:STA dbox1 620 LDA #0:STA dbox2:STA dbox3 630 LDA #1:STA pass 640 JSR dropped_box 650 rts 670 .erase_calculator 680 JSR restore_dropped_box 690 rts 710 .draw_calc_display 720 LDA Y1:CLC:ADC #4:STA Y1 730 DEC X2:DEC X2:INC X1 740 LDA #21:STA Y2 750 LDA #0:STA box1 760 LDA #255:STA box2 770 LDA #127:STA box3 780 LDA #252:STA box4 790 LDA #3:STA pass 800 JSR box 810 rts 830 .calculator_icons_data 840 LDA #26:STA icons 850 LDA #calculator_key_pos MOD 256 860 STA gpl 870 LDA #calculator_key_pos DIV 256 880 STA gph 890 LDA #calculator_key_data MOD 256 900 STA gp2l 910 LDA #calculator_key_data DIV 256 920 STA gp2h 930 rts 950 .display_calc_keys 960 JSR inverse_text 970 LDX icons 980 .display_calc_keys_loop 990 JSR get_icon_shape 1000 JSR box 1010 LDA #31:JSR &FFEE 1020 LDA X1:CLC:ADC #1:JSR &FFEE 1030 LDA Y1:LSR A:LSR A:LSR A 1040 CLC:ADC #1:JSR &FFEE 1050 LDY #0 1060 LDA (gp2l),Y:JSR &FFEE:INY 1070 LDA (gp2l),Y:JSR &FFEE:INY 1080 LDA (gp2l),Y:JSR &FFEE 1090 LDA gpl:CLC:ADC #4:STA gpl:LDA gph:ADC #0:STA gph 1100 LDA gp2l:CLC:ADC #3:STA gp2l:LDA gp2h:ADC #0:STA gp2h 1110 DEX:BNE display_calc_keys_loop 1120 JSR normal_text 1130 rts 1150 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 1160 \\\\ DATA SECTION - CALC \\\\ 1170 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 1180 .calculator_key_pos 1190 EQUD &0D054D1D 1210 EQUD &0D035D1D 1220 EQUD &0D035D21 1230 EQUD &0D035D25 1240 EQUD &0D035D29 1250 EQUD &0D045D2D 1270 EQUD &0D036D1D 1280 EQUD &0D036D21 1290 EQUD &0D036D25 1300 EQUD &0D036D29 1310 EQUD &0D046D2D 1330 EQUD &0D037D1D 1340 EQUD &0D037D21 1350 EQUD &0D037D25 1360 EQUD &0D037D29 1370 EQUD &0D047D2D 1390 EQUD &0D038D1D 1400 EQUD &0D038D21 1410 EQUD &0D038D25 1420 EQUD &0D038D29 1430 EQUD &0D048D2D 1450 EQUD &0D039D1D 1460 EQUD &0D039D21 1470 EQUD &0D039D25 1480 EQUD &0D039D29 1490 EQUD &0D049D2D 1510 .calculator_key_data 1520 EQUB ASC"O":EQUB ASC"F" 1530 EQUB ASC"F" 1550 EQUB 0:EQUB 0:EQUB ASC"%" 1560 EQUB 0:EQUB 0:EQUB ASC"N" 1570 EQUB 0:EQUB 0:EQUB ASC"^" 1580 EQUB 0:EQUB 0:EQUB ASC"/" 1590 EQUB 0:EQUB ASC"P":EQUB ASC"I" 1610 EQUB 0:EQUB 0:EQUB ASC"7" 1620 EQUB 0:EQUB 0:EQUB ASC"8" 1630 EQUB 0:EQUB 0:EQUB ASC"9" 1640 EQUB 0:EQUB 0:EQUB ASC"*" 1650 EQUB 0:EQUB ASC"M":EQUB ASC"C" 1670 EQUB 0:EQUB 0:EQUB ASC"4" 1680 EQUB 0:EQUB 0:EQUB ASC"5" 1690 EQUB 0:EQUB 0:EQUB ASC"6" 1700 EQUB 0:EQUB 0:EQUB ASC"-" 1710 EQUB 0:EQUB ASC"M":EQUB ASC"R" 1730 EQUB 0:EQUB 0:EQUB ASC"1" 1740 EQUB 0:EQUB 0:EQUB ASC"2" 1750 EQUB 0:EQUB 0:EQUB ASC"3" 1760 EQUB 0:EQUB 0:EQUB ASC"+" 1770 EQUB 0:EQUB ASC"M":EQUB ASC"S" 1790 EQUB 0:EQUB 0:EQUB ASC"0" 1800 EQUB 0:EQUB 0:EQUB ASC"." 1810 EQUB 0:EQUB 0:EQUB ASC"=" 1820 EQUB 0:EQUB 0:EQUB ASC"C" 1830 EQUB 0:EQUB ASC"A":EQUB ASC"C" 1850 .code_end 1870 ] 1880 NEXT SAVE"L-3-II" NEW 10 REM Listing III 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&2100 THEN END 70 *FX3 80 PROCbasic_variables 90 PROCmc_variables 100 CALL calculator 110 ON ERROR PROCerror 120 PROCdisplay(store$) 140 REPEAT 150 CALL calc_icon_data 160 CALL pointer 170 PROCdecode 180 UNTIL exit=on 200 CALL erase_calculator 210 *FX210,1 220 *FX3,6 230 *FX210,0 250 : 260 CHAIN "DESKTOP" 280 : 290 DEFPROCbasic_variables 300 store$="0" 310 total$="" 320 memory$="" 330 on=1 340 off=0 350 decimal=off 360 operation=on 370 digits=8 380 xpos=38 390 ypos=7 400 symbols$="+*/-^=" 410 exit=off 420 ENDPROC 440 DEFPROCdisplay(string$) 450 COLOUR 129:COLOUR 0 460 PRINT TAB(xpos-8,ypos);STRING$(18," ") 470 PRINT TAB(xpos-LEN(string$)+10,ypos);string$ 480 ENDPROC 500 DEFPROCdecode 510 LOCAL key$,loop 520 IF ?icon=255 ENDPROC 530 RESTORE 710 540 FOR loop=1 TO ?icon 550 READ key$ 560 NEXT loop 570 IF key$="E" exit=on 580 IF key$="A" PROCac 590 IF key$="C" AND operation=off THEN PROCc 600 IF key$="M" PROCmc 610 IF key$=">" PROCms 620 IF key$="<" PROCmr 630 IF key$="N" PROCinverse 640 IF key$="P" PROCpi 650 IF key$="%" PROCpercent 660 IF INSTR(symbols$,key$)<>0 PROCdo_operation(key$) 670 IF LEN(store$)>=digits ENDPROC 680 IF key$>="0" AND key$<="9" PROCnumber(key$) 690 IF key$="." AND digits<14 PROCput_decimal 700 ENDPROC 710 DATA E,%,N,^,/,P,7,8,9,*,M,4,5,6,-,<,1,2,3,+,>,0,.,=,C,A 730 DEFPROCnumber(key$) 740 IF store$="0" store$="" 750 store$=store$+key$ 760 PROCdisplay(store$) 770 operation=off 780 ENDPROC 800 DEFPROCdo_operation(key$) 810 IF operation=on total$=LEFT$(total$,LEN(total$)-1) 820 total$=total$+store$ 830 total$=STR$(EVAL(total$)) 840 PROCdisplay(total$) 850 total$=total$+key$ 860 PRINT TAB(30,ypos);key$ 870 store$="" 880 operation=on 890 decimal=off 900 digits=8 910 ENDPROC 930 DEFPROCc 940 store$="0" 950 decimal=off 960 digits=8 970 PROCdisplay(store$) 980 ENDPROC 1000 DEFPROCpercent 1010 IF total$="" OR store$="" OR operation=on THEN ENDPROC 1020 IF RIGHT$(total$,1)="*" store$=store$+"/100" 1030 IF RIGHT$(total$,1)="+" total$="("+total$:store$=store$+")/("+store$+"/100)" 1040 IF RIGHT$(total$,1)="/" store$=store$+"*100" 1050 IF RIGHT$(total$,1)="/" total$="(("+total$:total$=LEFT$(total$,(LEN(total$)-1)):store$="/"+store$+")*100)-100" 1060 PRINT TAB(30,ypos);key$ 1070 PROCdo_operation("=") 1080 ENDPROC 1100 DEFPROCpi 1110 store$=STR$(PI) 1120 PROCdisplay(store$) 1130 operation=off 1140 decimal=on 1150 ENDPROC 1170 DEFPROCput_decimal 1180 store$=store$+"." 1190 decimal=on 1200 digits=9 1210 PROCdisplay(store$) 1220 ENDPROC 1240 DEFPROCac 1250 store$="0" 1260 total$="" 1270 decimal=off 1280 digits=8 1290 PROCdisplay(store$) 1300 ENDPROC 1320 DEFPROCmc 1330 memory$="" 1340 ENDPROC 1360 DEFPROCmr 1370 IF memory$="" PROCdisplay("0"):store$="":ENDPROC 1380 store$=memory$ 1390 PROCdisplay(store$) 1400 operation=off 1410 ENDPROC 1430 DEFPROCms 1440 IF operation=off memory$=store$ 1450 IF operation=on mem$=LEFT$(total$,LEN(total$)-1) 1460 ENDPROC 1480 DEFPROCinverse 1490 IF operation=on PROCinv_total 1500 IF operation=off PROCinv_store 1510 ENDPROC 1530 DEFPROCinv_total 1540 IF total$="" PROCdisplay("0"):ENDPROC 1550 IF LEFT$(total$,1)="-" total$=MID$(total$,2,LEN(total$)):PROCdisplay(LEFT$(total$,LEN(total$)-1)):ENDPROC 1560 total$="-"+total$ 1570 PROCdisplay(LEFT$(total$,LEN(total$)-1)) 1580 ENDPROC 1600 DEFPROCinv_store 1610 IF store$="" PROCdisplay("0"):ENDPROC 1620 IF LEFT$(store$,1)="-" store$=MID$(store$,2,LEN(store$)):PROCdisplay(store$):ENDPROC 1630 store$="-"+store$ 1640 PROCdisplay(store$) 1650 ENDPROC 1670 DEFPROCerror 1680 IF ERR=17 THEN END 1690 store$="Error" 1700 PROCdisplay(store$) 1710 VDU 7 1720 FOR delay=0 TO 500:NEXT 1730 store$="0" 1740 total$="" 1750 operation=off 1760 decimal=off 1770 digits=7 1780 ENDPROC 1800 DEFPROCmc_variables 1810 calculator=&1ED8 1820 calc_icon_data=&1F43 1830 erase_calculator=&1F16 1840 pointer=&1900 1850 icon=&63 1860 ENDPROC SAVE"L-3-III" NEW 10 REM Listing IV 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&2100 THEN END 70 display_icons=&1A96 80 get_icon_shape=&1AAF 90 box=&1AC9 100 inverse_text=&1B8E 110 restore_box=&1B1D 120 dropped_box=&1B2A 130 restore_dropped_box=&1B84 140 sprite_save=&1BB8 150 string=&1D65 170 xlb=&50:xhb=&51 180 ylb=&52:yhb=&53 190 X1=&54:X2=&55 200 Y1=&56:Y2=&57 210 color=&58 220 stl=&59:sth=&5A 230 pass=&5B 240 coll=&5C:colh=&5D 250 memory=&5E 260 pwl=&5F:pwh=&60 270 windows=&61 280 icons=&64 290 box1=&67 300 box2=&68 310 box3=&69 320 box4=&6A 330 dbox1=&6B 340 dbox2=&6C 350 dbox3=&6D 360 gpl=&6E 370 gph=&6F 380 mesl=&70 390 mesh=&71 410 FOR code=0 TO 2 STEP 2 420 P%=&1ED8 430 [OPT code 450 .calendar 460 JSR calendar_box 470 JSR calendar_icons_data 480 JSR display_calendar_icons 490 JSR calendar_days 500 rts 520 \\\\\\\\\\\\\\\\\\\\\\\\\\\\ 530 \\\\ CALENDAR ROUTINES \\\\\ 540 \\\\\\\\\\\\\\\\\\\\\\\\\\\\ 550 .input_box 560 LDA &2:STA stl 570 LDA &3:CLC:ADC #2:STA sth 580 LDA #33:STA X1:LDA #13:STA X2 590 LDA #99:STA Y1:LDA #17:STA Y2 600 LDA #0:STA windows 610 LDA #1:STA pass 620 LDA #255:STA box1 630 LDA #0:STA box2 640 LDA #224:STA box3 650 LDA #3:STA box4 660 JSR box 670 rts 690 .erase_input_box 700 JSR restore_box 710 rts 730 .calendar_box 740 LDA #22:STA X1:LDA #35:STA X2 750 LDA #62:STA Y1:LDA #94:STA Y2 760 LDA #1:STA pass 770 LDA #255:STA dbox1 780 LDA #0:STA dbox2:STA dbox3 790 JSR dropped_box 800 rts 820 .calendar_icons_data 830 LDA #4:STA icons 840 LDA #calend_icons_pos MOD 256 850 STA gpl 860 LDA #calend_icons_pos DIV 256 870 STA gph 880 LDA #calend_icons_data MOD 256 890 STA coll 900 LDA #calend_icons_data DIV 256 910 STA colh 920 rts 940 .display_calendar_icons 950 LDA #2:STA pass:JSR display_icons 960 JSR get_icon_shape 970 LDA #3:STA pass 980 LDA #0:STA box1 990 LDA #255:STA box2 1000 LDA #63:STA box3 1010 LDA #252:STA box4 1020 JSR box 1030 rts 1050 .calendar_days 1060 JSR inverse_text 1070 LDA #days_text MOD 256:STA mesl 1080 LDA #days_text DIV 256:STA mesh 1090 JSR string 1100 rts 1120 .erase_calendar 1130 JSR restore_dropped_box 1140 rts 1160 .calendar_icon_positions 1170 LDA #5:STA icons 1180 LDA #calend_icons_pos MOD 256 1190 STA gpl 1200 LDA #calend_icons_pos DIV 256 1210 STA gph 1220 rts 1240 .white_box 1250 LDA X1:PHA:LDA Y1:PHA 1260 LDA #23:STA X1:LDA #33:STA X2 1270 LDA #100:STA Y1:LDA #52:STA Y2 1280 LDA #255:STA color 1290 LDA #3:STA pass 1300 JSR sprite_save 1310 PLA:STA Y1:PLA:STA X1 1320 rts 1340 .calend_icons_pos 1350 EQUD &08024A17 1360 EQUD &08024A1A 1370 EQUD &08024A33 1380 EQUD &08024A36 1400 EQUD &0D0A4523 1420 .calend_icons_data 1430 EQUD &3FFC7FFE:EQUD &0FF01FF8 1440 EQUD &03C007E0:EQUD &00000180 1460 EQUD &01800000:EQUD &07E003C0 1470 EQUD &1FF80FF0:EQUD &7FFE3FFC 1490 EQUD &3FFC7FFE:EQUD &0FF01FF8 1500 EQUD &03C007E0:EQUD &00000180 1520 EQUD &01800000:EQUD &07E003C0 1530 EQUD &1FF80FF0:EQUD &7FFE3FFC 1550 .days_text 1560 EQUS CHR$(31)+CHR$(36)+CHR$(9)+"CALENDAR" 1570 EQUS CHR$(31)+CHR$(23)+CHR$(11)+"Sun Mon Tue Wed Thu Fri Sat" 1580 EQUB &FF 1600 .code_end 1620 ] 1630 NEXT code SAVE"L-3-IV" NEW 10 REM Listing V 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&2100 THEN END 70 *FX3 80 PROCmachine_variables 90 PROCglobal_variables 100 PROCenter_date 110 PROCset_up_days 120 PROCset_up_months 130 PROCcalender_box 150 ?icon%=0 160 REPEAT 170 IF ?icon%<>255 THEN PROCdisplay(FNdays_gone_by) 180 CALL calender_icon_positions 190 CALL pointer 200 IF ?icon%=1 THEN PROCadd_month 210 IF ?icon%=2 THEN PROCsub_month 220 IF ?icon%=3 THEN PROCadd_year 230 IF ?icon%=4 THEN PROCsub_year 240 IF ?icon%<5 THEN PROCcheck 250 UNTIL ?icon%=5 270 CALL erase_calender 280 *FX210,1 290 *FX3,6 300 *FX210,0 320 CHAIN "DESKTOP" 340 END 360 DEFPROCadd_month 370 month%=month%+1 380 ENDPROC 400 DEFPROCadd_year 410 year%=year%+1 420 ENDPROC 440 DEFPROCsub_year 450 year%=year%-1 460 ENDPROC 480 DEFPROCsub_month 490 month%=month%-1 500 ENDPROC 520 DEFPROCcheck 530 IF month%>12 THEN month%=1:year%=year%+1 540 IF month%<1 THEN month%=12:year%=year%-1 550 IF year%=1752 THEN year%=1753 560 IF year%=10000 THEN year%=9999 570 ENDPROC 590 DEFPROCenter_date 600 LOCAL enter$,key1$,key2$,key3$,key4$ 610 CALL input_box 620 COLOUR 1:COLOUR 128 630 REPEAT 640 PRINT TAB(34,13);"Year = " 650 VDU 31,41,13 660 key1$=GET$:PRINT key1$; 670 key2$=GET$:PRINT key2$; 680 key3$=GET$:PRINT key3$; 690 key4$=GET$:PRINT key4$; 700 year%=(VAL(key1$+key2$+key3$+key4$)) 710 UNTIL (year%<10000) AND (year%>1752) 730 REPEAT 740 PRINT TAB(34,13);"Month = " 750 VDU 31,42,13 760 key1$=GET$:PRINT key1$; 770 key2$=GET$:PRINT key2$; 780 month%=VAL(key1$+key2$) 790 UNTIL (month%>0) AND (month%<13) 800 CALL erase_input_box 810 ENDPROC 830 DEFPROCset_up_days 840 LOCAL L% 850 RESTORE 900 860 FOR L%=1 TO 12 870 READ total%(0,L%) 880 total%(1,L%)=total%(1,L%-1)+total%(0,L%) 890 NEXT 900 DATA 31,28,31,30,31,30,31,31,30,31,30,31 910 ENDPROC 930 DEFPROCset_up_months 940 LOCAL L% 950 RESTORE 990 960 FOR L%=1 TO 12 970 READ month$(L%) 980 NEXT 990 DATA January,February,March,April,May,June,July,August,September,October,November,December 1000 ENDPROC 1020 DEF FNdays_gone_by 1030 LOCAL start%,base%,gone_year%,gone_month%,gone%,leap% 1040 Badleap%=FALSE 1050 start%=1756 1060 base%=1753 1070 gone_year%=(year%-base%)*365 1080 gone_month%=total%(1,month%-1) 1090 leap%=0 1100 IF year%<=start% GOTO 1180 1110 FOR loop%=start% TO year% STEP 4 1120 Badleap%=FALSE 1130 leap%=leap%+1 1140 IF (loop% MOD 100=0) AND ((loop% DIV 100)MOD 4<>0) THEN leap%=leap%-1:Badleap%=TRUE 1150 NEXT 1160 IF (month%<3) AND (year% MOD 4=0) AND (year% MOD 100<>0) THEN leap%=leap%-1 1170 IF (month%<3) AND (year% MOD 100=0) AND (Badleap%=FALSE) THEN leap%=leap%-1 1180 gone%=gone_year%+gone_month%+leap%+1 1190 =gone% MOD 7 1210 DEFPROCdisplay(start%) 1220 LOCAL X%,Y%,L%,E% 1230 Y%=13 1240 X%=(start%*5)+24 1250 E%=total%(0,month%) 1260 IF (month%=2) AND (Badleap%=FALSE) AND (year% MOD 4=0) THEN E%=E%+1 1270 CALL white_box 1280 PRINT TAB(23,8);" " 1290 PRINT TAB(23,8);month$(month%) 1300 PRINT TAB(52,8);year% 1310 FOR L%=1 TO E% 1320 IF L%<10 THEN PRINT TAB(X%,Y%);" ";L%; ELSE PRINT TAB(X%,Y%);L%; 1330 X%=X%+5 1340 IF X%>55 THEN Y%=Y%+1:X%=24 1350 NEXT 1360 ENDPROC 1380 DEFPROCcalender_box 1390 CALL calender 1400 ENDPROC 1420 DEFPROCglobal_variables 1430 year%=0 1440 month%=0 1450 BadLeap%=FALSE 1460 ?icon%=0 1470 DIM total%(1,12) 1480 DIM month$(12) 1490 ENDPROC 1510 DEFPROCmachine_variables 1520 icon%=&63 1530 input_box=&1EE5 1540 erase_input_box=&1F1C 1550 calender=&1ED8 1560 erase_calender=&1F88 1570 calender_icon_positions=&1F8C 1580 pointer=&1900 1590 white_box=&1F99 1600 ENDPROC SAVE"L-3-V" NEW 10 REM Listing VI 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&1E00 THEN END 70 xlb=&50:xhb=&51 80 ylb=&52:yhb=&53 90 X1=&54:X2=&55 100 Y1=&56:Y2=&57 110 color=&58 120 stl=&59:sth=&5A 130 pass=&5B 140 coll=&5C:colh=&5D 150 memory=&5E 160 pwl=&5F:pwh=&60 170 windows=&61 180 box1=&67 190 box2=&68 200 box3=&69 210 box4=&6A 230 params=&72 240 point600l=&73 250 point600h=&74 260 blockl=&75 270 blockh=&76 280 length=&77 290 xchar=&78 300 ychar=&79 310 clicked=&7A 320 line=&7B 330 head_length=&7C 350 FOR code=0 TO 2 STEP 2 360 P%=&1900 370 [OPT code 390 .initialise_menu 400 LDA &2:STA stl 410 LDA &3:CLC:ADC #1:STA sth 420 LDA #0:STA windows 430 rts 450 .menu_down 460 JSR read_block 470 JSR menu_box_size 480 JSR draw_menu_box 490 JSR title 500 JSR write_text 510 JSR restore_box 520 rts 540 .read_block 550 LDA &600:SEC:SBC #7:STA params 560 LDA &601:STA box1 570 LDA &604:STA box2 580 LDA &607:STA box3 590 LDA &60A:STA box4 600 LDA &60D:STA xchar 610 LDA &610:STA ychar 620 rts 640 .menu_box_size 650 .x1_value 660 LDA xchar:SEC:SBC #1:STA X1 670 .y1_value 680 LDA ychar:ASL A:ASL A:ASL A 690 SEC:SBC #12:STA Y1 700 .y2_value 710 LDA params:CLC:ADC #2:ASL A 720 ASL A:ASL A:CLC:ADC #8:STA Y2 730 JSR x2_value 740 rts 760 .x2_value 770 LDA #0:STA length 780 LDA #&13:STA point600l 790 LDA #&06:STA point600h 800 LDX params 810 .length_loop 820 JSR point_600 830 LDA (blockl),Y 840 CMP length:BCC smaller 850 STA length 860 .smaller 870 JSR inc_600 880 DEX:BNE length_loop 890 LDA length:CLC:ADC #2:STA X2 900 rts 920 .title 930 LDA X1:PHA:LDA Y1:PHA 940 LDA X2:PHA:LDA Y2:PHA 950 LDA ychar:PHA:LDA xchar:PHA 960 LDA #&13:STA point600l 970 LDA #&06:STA point600h 980 JSR point_600 990 LDA box1:BNE white_back1 1000 JSR inverse_text:JMP past_colour 1010 .white_back1 1020 JSR normal_text 1030 .past_colour 1040 LDA (blockl),Y 1050 TAX:STA head_length 1060 LDA length:SEC:SBC head_length 1070 LSR A:ADC xchar:STA xchar 1080 DEC ychar 1090 LDA #31:JSR &FFEE:LDA xchar 1100 JSR &FFEE:LDA ychar:JSR &FFEE 1110 .title_loop 1120 INY:LDA (blockl),Y:JSR &FFEE 1130 DEX:BNE title_loop 1140 LDA xchar:STA X1 1150 LDA ychar:ASL A:ASL A:ASL A 1160 CLC:ADC #8:STA Y1:INC Y1 1170 LDA head_length:STA X2 1180 LDA #1:STA Y2 1190 LDA #3:STA pass:LDA box2:EOR #&FF 1200 STA color:JSR sprite_save 1210 PLA:STA xchar:PLA:STA ychar 1220 INC ychar 1230 PLA:STA Y2:PLA:STA X2 1240 PLA:STA Y1:PLA:STA X1 1250 rts 1270 .write_text 1280 LDA params:STA line 1290 .write_loop 1300 LDA params:PHA 1310 LDA ychar:PHA 1320 LDA #&16:STA point600l 1330 LDA #&06:STA point600h 1340 LDA #&FF:STA clicked 1350 .write_loop2 1360 JSR point_600 1370 LDA (blockl),Y:TAX 1380 LDA box1:BNE black_back 1390 JSR white_background 1400 JMP past_colour2 1410 .black_back 1420 JSR black_background 1430 .past_colour2 1440 LDA #31:JSR &FFEE:LDA xchar 1450 JSR &FFEE:LDA ychar:JSR &FFEE 1460 .line_loop 1470 INY:LDA (blockl),Y:JSR &FFEE 1480 DEX:BNE line_loop 1490 INC ychar:JSR inc_600 1500 DEC params:BNE write_loop2 1510 PLA:STA ychar 1520 PLA:STA params 1530 JSR check_keys 1540 LDA clicked:BNE write_loop 1550 LDA params:SEC:SBC line:CLC 1560 ADC #1:STA clicked 1570 rts 1590 .white_background 1600 LDA line:CMP params:BEQ black2 1610 JSR inverse_text:JMP white2 1620 .black2 1630 JSR normal_text 1640 .white2 1650 rts 1670 .black_background 1680 LDA line:CMP params:BEQ white3 1690 JSR normal_text:JMP black3 1700 .white3 1710 JSR inverse_text 1720 .black3 1730 rts 1750 .check_keys 1760 TYA:PHA:TXA:PHA 1770 LDA #21:LDX #0:LDY #0:JSR &FFF4 1780 LDA #4:LDX #1:LDY #0:JSR &FFF4 1790 JSR &FFE0 1800 CMP #139:BNE down 1810 INC line:LDA params:CMP line 1820 BCS down:LDA #1:STA line 1830 .down 1840 CMP #138:BNE click 1850 DEC line:LDA line:CMP #1 1860 BCS click:LDA params:STA line 1870 .click 1880 CMP #13:BNE not_clicked 1890 LDA #0:STA clicked 1900 LDA #4:LDX #0:LDY #0:JSR &FFF4 1910 .not_clicked 1920 PLA:TAX:PLA:TAY 1930 rts 1950 .inc_600 1960 LDA point600l:CLC 1970 ADC #3:STA point600l 1980 LDA point600h:ADC #0 1990 STA point600h 2000 rts 2020 .point_600 2030 LDY #0 2040 LDA (point600l),Y:STA blockl 2050 INY 2060 LDA (point600l),Y:STA blockh 2070 LDY #3 2080 rts 2100 .draw_menu_box 2110 LDA #1:STA pass 2120 JSR box 2130 rts 2150 .box 2160 LDA X1:PHA:LDA Y1:PHA 2170 LDA X2:PHA:LDA Y2:PHA 2180 LDA box1:STA color 2190 JSR sprite_save 2200 INC Y1:DEC Y2:DEC Y2:INC X1 2210 DEC X2:DEC X2 2220 LDA box2:STA color 2230 JSR sprite_save 2240 LDA X1:CLC:ADC X2:PHA:DEC X1 2250 LDA #1:STA X2 2260 LDA box3:STA color 2270 JSR sprite_save 2280 PLA:STA X1:LDA #1:STA X2 2290 LDA box4:STA color 2300 JSR sprite_save 2310 PLA:STA Y2:PLA:STA X2 2320 PLA:STA Y1:PLA:STA X1 2330 rts 2350 .restore_box 2360 JSR sprite_restore 2370 JSR sprite_restore 2380 JSR sprite_restore 2390 JSR sprite_restore 2400 rts 2420 .inverse_text 2430 LDA #&11:JSR &FFEE 2440 LDA #0:JSR &FFEE 2450 LDA #&11:JSR &FFEE 2460 LDA #129:JSR &FFEE 2470 rts 2490 .normal_text 2500 LDA #&11:JSR &FFEE 2510 LDA #1:JSR &FFEE 2520 LDA #&11:JSR &FFEE 2530 LDA #128:JSR &FFEE 2540 rts 2560 .sprite_save 2570 LDA pass:CMP #2:BCC saving 2580 JSR sprite 2590 rts 2600 .saving 2610 TYA:PHA 2620 INC windows 2630 LDA pass:PHA 2640 LDA #1:STA memory 2650 LDA stl:STA pwl 2660 LDA sth:STA pwh 2670 JSR sprite 2680 LDA memory:BEQ not_enough_memory 2690 LDY #0 2700 LDA X1:STA (stl),Y:INY 2710 LDA Y1:STA (stl),Y:INY 2720 LDA X2:STA (stl),Y:INY 2730 LDA Y2:STA (stl),Y:INY 2740 LDA pwl:STA (stl),Y:INY 2750 LDA pwh:STA (stl),Y 2760 LDA stl:CLC:ADC #6:STA stl 2770 LDA sth:ADC #0:STA sth 2780 PLA:STA pass 2790 PLA:TAY 2800 rts 2820 .not_enough_memory 2830 LDA pwl:PHA:STA stl 2840 LDA pwh:PHA:STA sth 2850 DEC windows 2860 LDA #128:STA pass:JSR sprite 2870 LDA #7:JSR &FFEE 2880 PLA:STA sth:PLA:STA stl 2890 PLA:STA pass 2900 PLA:TAY 2910 rts 2930 .sprite_restore 2940 LDA X1:PHA:LDA Y1:PHA 2950 LDA X2:PHA:LDA Y2:PHA 2960 LDA windows 2970 BEQ sprite_restore_exit 2980 DEC windows 2990 TYA:PHA 3000 LDA stl:SEC:SBC #6:STA stl 3010 LDA sth:SBC #0:STA sth 3020 LDY #0 3030 LDA (stl),Y:STA X1:INY 3040 LDA (stl),Y:STA Y1:INY 3050 LDA (stl),Y:STA X2:INY 3060 LDA (stl),Y:STA Y2:INY 3070 LDA (stl),Y:PHA:STA pwl:INY 3080 LDA (stl),Y:STA sth:STA pwh 3090 PLA:STA stl 3100 LDA #128:STA pass:JSR sprite 3110 LDA pwl:STA stl 3120 LDA pwh:STA sth 3130 PLA:TAY 3140 .sprite_restore_exit 3150 PLA:STA Y2:PLA:STA X2 3160 PLA:STA Y1:PLA:STA X1 3170 rts 3190 .sprite 3200 TYA:PHA:TXA:PHA 3210 LDA Y1:PHA 3220 LDY Y2 3240 .sprite_yloop 3250 JSR position 3260 TYA:PHA 3270 LDX X2 3280 LDY #0 3300 .sprite_xloop 3310 LDA pass:BMI restore 3320 CMP #2:BEQ draw_pointer 3330 BCS draw_fixed 3340 CMP #1:BEQ draw_save_fixed 3360 .draw_save_pointer 3370 LDA (ylb),Y:STA (stl),Y 3380 LDA (coll),Y:AND (ylb),Y 3390 EOR (ylb),Y:STA (ylb),Y 3400 JMP inc_colour_pointer 3420 .draw_save_fixed 3430 LDA (ylb),Y:STA (stl),Y 3440 LDA color:STA (ylb),Y 3450 JMP inc_store_mem 3470 .draw_pointer 3480 LDA (coll),Y:STA (ylb),Y 3490 INC coll:BNE no_colour_carry1 3500 INC colh:.no_colour_carry1 3510 JMP no_store_mem_carry 3530 .draw_fixed 3540 LDA color:STA (ylb),Y 3550 JMP no_store_mem_carry 3570 .restore 3580 LDA (stl),Y:STA (ylb),Y 3590 JMP inc_store_mem 3610 .inc_colour_pointer 3620 INC coll:BNE inc_store_mem 3630 INC colh 3650 .inc_store_mem 3660 INC stl:BNE no_store_mem_carry 3670 INC sth 3680 LDA sth:CMP &7 3690 BEQ past_memory_bound 3700 .no_store_mem_carry 3720 LDA ylb:CLC:ADC #8:STA ylb 3730 LDA yhb:ADC #0:STA yhb 3740 DEX:BNE sprite_xloop 3750 INC Y1:PLA:TAY 3760 DEY:BNE sprite_yloop 3770 JMP sprite_exit 3780 .past_memory_bound 3790 LDA #0:STA memory 3800 PLA 3820 .sprite_exit 3830 PLA:STA Y1 3840 PLA:TAX:PLA:TAY 3850 rts 3870 .position 3880 LDA #0:STA xhb 3890 LDA X1:ASL A:ROL xhb:ASL A 3900 ROL xhb:ASL A:ROL xhb:STA xlb 3910 LDA &7:CLC:ADC xhb:STA xhb 3920 LDA #0:STA ylb 3930 LDA Y1:AND #&F8 3940 LSR A:LSR A:STA yhb 3950 LSR A:LSR A:ROR ylb:CLC:ADC yhb 3960 ADC xhb:STA yhb 3970 LDA Y1:AND #7:CLC:ADC ylb:ADC xlb 3980 STA ylb:LDA #0:ADC yhb:STA yhb 3990 rts 4010 .code_end 4030 ] 4040 NEXT code 4050 PRINT" *SAVE popCode 1900 ";~P% SAVE"L-3-VI" NEW 10 REM Listing VII 20 REM By Glenn Marshall 30 REM (C) The Micro User 50 IF PAGE<>&1E00 THEN END 70 MODE 0 80 VDU 23;8202;0;0;0; 100 x=30:y=12 120 A$="CUSTOMER MENU" 130 B$="Amend Customer File" 140 C$="Print File" 150 D$="Display Customer" 160 E$="Exit" 180 col1=255:col2=0:col3=192:col4=3 200 initialise_menu=&1900 210 menu_down=&1910 220 choice=&7A 240 CALL initialise_menu 250 CALL menu_down,?col1,?col2,?col3,?col4,?x,?y,A$,B$,C$,D$,E$ 260 PRINT "selected = ";?choice 280 PRINT "waiting - PRESS A KEY" 290 A=GET 300 COLOUR 129:CLS 310 col1=0:col2=255:col3=127:col4=254 320 F$="Extra option" 330 CALL menu_down,?col1,?col2,?col3,?col4,?x,?y,A$,B$,C$,D$,E$,F$ 340 PRINT "selected = ";?choice 360 col1=0:col2=255:col3=127:col4=252 370 PRINT "waiting ":A=GET 380 ?&358=170:CLS 390 CALL menu_down,?col1,?col2,?col3,?col4,?x,?y,A$,B$,C$,D$,E$,E$,F$ 400 PRINT "selected = ";?choice SAVE"L-3-VII"
00000000 2a 42 41 53 49 43 0d 31 30 20 52 45 4d 20 4c 69 |*BASIC.10 REM Li| 00000010 73 74 69 6e 67 20 49 0d 32 30 20 52 45 4d 20 42 |sting I.20 REM B| 00000020 79 20 47 6c 65 6e 6e 20 4d 61 72 73 68 61 6c 6c |y Glenn Marshall| 00000030 0d 33 30 20 52 45 4d 20 28 43 29 20 54 68 65 20 |.30 REM (C) The | 00000040 4d 69 63 72 6f 20 55 73 65 72 0d 35 30 20 49 46 |Micro User.50 IF| 00000050 20 50 41 47 45 3c 3e 26 32 31 30 30 20 54 48 45 | PAGE<>&2100 THE| 00000060 4e 20 45 4e 44 0d 37 30 20 49 46 20 41 25 3d 30 |N END.70 IF A%=0| 00000070 20 54 48 45 4e 20 4d 4f 44 45 20 33 3a 50 52 4f | THEN MODE 3:PRO| 00000080 43 66 69 72 73 74 5f 72 75 6e 0d 38 30 20 49 46 |Cfirst_run.80 IF| 00000090 20 41 25 3d 31 20 54 48 45 4e 20 50 52 4f 43 73 | A%=1 THEN PROCs| 000000a0 65 63 6f 6e 64 5f 72 75 6e 0d 39 30 20 45 4e 44 |econd_run.90 END| 000000b0 0d 31 31 30 20 44 45 46 50 52 4f 43 66 69 72 73 |.110 DEFPROCfirs| 000000c0 74 5f 72 75 6e 0d 31 32 30 20 2a 4c 4f 41 44 20 |t_run.120 *LOAD | 000000d0 22 44 45 53 4b 2d 4d 43 22 0d 31 33 30 20 50 52 |"DESK-MC".130 PR| 000000e0 4f 43 6d 63 5f 76 61 72 69 61 62 6c 65 73 0d 31 |OCmc_variables.1| 000000f0 34 30 20 43 41 4c 4c 20 64 65 73 6b 74 6f 70 0d |40 CALL desktop.| 00000100 31 35 30 20 41 25 3d 31 0d 31 36 30 20 49 46 20 |150 A%=1.160 IF | 00000110 3f 69 63 6f 6e 3d 31 20 54 48 45 4e 20 50 52 4f |?icon=1 THEN PRO| 00000120 43 6c 6f 61 64 5f 63 61 6c 63 75 6c 61 74 6f 72 |Cload_calculator| 00000130 0d 31 37 30 20 49 46 20 3f 69 63 6f 6e 3d 32 20 |.170 IF ?icon=2 | 00000140 54 48 45 4e 20 50 52 4f 43 6c 6f 61 64 5f 63 61 |THEN PROCload_ca| 00000150 6c 65 6e 64 61 72 0d 31 38 30 20 45 4e 44 50 52 |lendar.180 ENDPR| 00000160 4f 43 0d 32 30 30 20 44 45 46 50 52 4f 43 73 65 |OC.200 DEFPROCse| 00000170 63 6f 6e 64 5f 72 75 6e 0d 32 31 30 20 50 52 4f |cond_run.210 PRO| 00000180 43 6d 63 5f 76 61 72 69 61 62 6c 65 73 0d 32 32 |Cmc_variables.22| 00000190 30 20 2a 46 58 33 0d 32 33 30 20 43 41 4c 4c 20 |0 *FX3.230 CALL | 000001a0 64 65 73 6b 74 6f 70 5f 6c 6f 6f 70 0d 32 34 30 |desktop_loop.240| 000001b0 20 49 46 20 3f 69 63 6f 6e 3d 31 20 54 48 45 4e | IF ?icon=1 THEN| 000001c0 20 50 52 4f 43 6c 6f 61 64 5f 63 61 6c 63 75 6c | PROCload_calcul| 000001d0 61 74 6f 72 0d 32 35 30 20 49 46 20 3f 69 63 6f |ator.250 IF ?ico| 000001e0 6e 3d 32 20 54 48 45 4e 20 50 52 4f 43 6c 6f 61 |n=2 THEN PROCloa| 000001f0 64 5f 63 61 6c 65 6e 64 61 72 0d 32 36 30 20 45 |d_calendar.260 E| 00000200 4e 44 50 52 4f 43 0d 32 38 30 20 44 45 46 50 52 |NDPROC.280 DEFPR| 00000210 4f 43 6c 6f 61 64 5f 63 61 6c 63 75 6c 61 74 6f |OCload_calculato| 00000220 72 0d 32 39 30 20 2a 46 58 33 2c 36 0d 33 30 30 |r.290 *FX3,6.300| 00000230 20 2a 4c 4f 41 44 20 22 43 41 4c 43 2d 4d 43 22 | *LOAD "CALC-MC"| 00000240 0d 33 31 30 20 43 48 41 49 4e 20 22 43 41 4c 43 |.310 CHAIN "CALC| 00000250 2d 42 41 22 0d 33 32 30 20 45 4e 44 50 52 4f 43 |-BA".320 ENDPROC| 00000260 0d 33 34 30 20 44 45 46 50 52 4f 43 6c 6f 61 64 |.340 DEFPROCload| 00000270 5f 63 61 6c 65 6e 64 61 72 0d 33 35 30 20 2a 46 |_calendar.350 *F| 00000280 58 33 2c 36 0d 33 36 30 20 2a 4c 4f 41 44 20 22 |X3,6.360 *LOAD "| 00000290 43 41 4c 45 2d 4d 43 22 0d 33 37 30 20 43 48 41 |CALE-MC".370 CHA| 000002a0 49 4e 20 22 43 41 4c 45 2d 42 41 22 0d 33 38 30 |IN "CALE-BA".380| 000002b0 20 45 4e 44 50 52 4f 43 0d 34 30 30 20 44 45 46 | ENDPROC.400 DEF| 000002c0 50 52 4f 43 6d 63 5f 76 61 72 69 61 62 6c 65 73 |PROCmc_variables| 000002d0 0d 34 31 30 20 64 65 73 6b 74 6f 70 3d 26 31 44 |.410 desktop=&1D| 000002e0 37 41 0d 34 32 30 20 64 65 73 6b 74 6f 70 5f 6c |7A.420 desktop_l| 000002f0 6f 6f 70 3d 26 31 44 39 32 0d 34 33 30 20 69 63 |oop=&1D92.430 ic| 00000300 6f 6e 3d 26 36 33 0d 34 34 30 20 45 4e 44 50 52 |on=&63.440 ENDPR| 00000310 4f 43 0d 53 41 56 45 22 4c 2d 33 2d 49 22 0d 4e |OC.SAVE"L-3-I".N| 00000320 45 57 0d 31 30 20 52 45 4d 20 4c 69 73 74 69 6e |EW.10 REM Listin| 00000330 67 20 49 49 0d 32 30 20 52 45 4d 20 42 79 20 47 |g II.20 REM By G| 00000340 6c 65 6e 6e 20 4d 61 72 73 68 61 6c 6c 0d 33 30 |lenn Marshall.30| 00000350 20 52 45 4d 20 28 43 29 20 54 68 65 20 4d 69 63 | REM (C) The Mic| 00000360 72 6f 20 55 73 65 72 0d 35 30 20 49 46 20 50 41 |ro User.50 IF PA| 00000370 47 45 3c 3e 26 32 31 30 30 20 54 48 45 4e 20 45 |GE<>&2100 THEN E| 00000380 4e 44 0d 37 30 20 64 72 6f 70 70 65 64 5f 62 6f |ND.70 dropped_bo| 00000390 78 3d 26 31 42 32 41 0d 38 30 20 72 65 73 74 6f |x=&1B2A.80 resto| 000003a0 72 65 5f 64 72 6f 70 70 65 64 5f 62 6f 78 3d 26 |re_dropped_box=&| 000003b0 31 42 38 34 0d 39 30 20 62 6f 78 3d 26 31 41 43 |1B84.90 box=&1AC| 000003c0 39 0d 31 30 30 20 69 6e 76 65 72 73 65 5f 74 65 |9.100 inverse_te| 000003d0 78 74 3d 26 31 42 38 45 0d 31 31 30 20 6e 6f 72 |xt=&1B8E.110 nor| 000003e0 6d 61 6c 5f 74 65 78 74 3d 26 31 42 41 33 0d 31 |mal_text=&1BA3.1| 000003f0 32 30 20 67 65 74 5f 69 63 6f 6e 5f 73 68 61 70 |20 get_icon_shap| 00000400 65 3d 26 31 41 41 46 0d 31 34 30 20 78 6c 62 3d |e=&1AAF.140 xlb=| 00000410 26 35 30 3a 78 68 62 3d 26 35 31 0d 31 35 30 20 |&50:xhb=&51.150 | 00000420 79 6c 62 3d 26 35 32 3a 79 68 62 3d 26 35 33 0d |ylb=&52:yhb=&53.| 00000430 31 36 30 20 58 31 3d 26 35 34 3a 58 32 3d 26 35 |160 X1=&54:X2=&5| 00000440 35 0d 31 37 30 20 59 31 3d 26 35 36 3a 59 32 3d |5.170 Y1=&56:Y2=| 00000450 26 35 37 0d 31 38 30 20 63 6f 6c 6f 72 3d 26 35 |&57.180 color=&5| 00000460 38 0d 31 39 30 20 73 74 6c 3d 26 35 39 3a 73 74 |8.190 stl=&59:st| 00000470 68 3d 26 35 41 0d 32 30 30 20 70 61 73 73 3d 26 |h=&5A.200 pass=&| 00000480 35 42 0d 32 31 30 20 63 6f 6c 6c 3d 26 35 43 3a |5B.210 coll=&5C:| 00000490 63 6f 6c 68 3d 26 35 44 0d 32 32 30 20 6d 65 6d |colh=&5D.220 mem| 000004a0 6f 72 79 3d 26 35 45 0d 32 33 30 20 70 77 6c 3d |ory=&5E.230 pwl=| 000004b0 26 35 46 3a 70 77 68 3d 26 36 30 0d 32 34 30 20 |&5F:pwh=&60.240 | 000004c0 77 69 6e 64 6f 77 73 3d 26 36 31 0d 32 35 30 20 |windows=&61.250 | 000004d0 69 63 6f 6e 3d 26 36 33 0d 32 36 30 20 69 63 6f |icon=&63.260 ico| 000004e0 6e 73 3d 26 36 34 0d 32 37 30 20 69 63 6f 6e 59 |ns=&64.270 iconY| 000004f0 3d 26 36 35 0d 32 38 30 20 69 63 6f 6e 58 3d 26 |=&65.280 iconX=&| 00000500 36 36 0d 32 39 30 20 62 6f 78 31 3d 26 36 37 0d |66.290 box1=&67.| 00000510 33 30 30 20 62 6f 78 32 3d 26 36 38 0d 33 31 30 |300 box2=&68.310| 00000520 20 62 6f 78 33 3d 26 36 39 0d 33 32 30 20 62 6f | box3=&69.320 bo| 00000530 78 34 3d 26 36 41 0d 33 33 30 20 64 62 6f 78 31 |x4=&6A.330 dbox1| 00000540 3d 26 36 42 0d 33 34 30 20 64 62 6f 78 32 3d 26 |=&6B.340 dbox2=&| 00000550 36 43 0d 33 35 30 20 64 62 6f 78 33 3d 26 36 44 |6C.350 dbox3=&6D| 00000560 0d 33 36 30 20 67 70 6c 3d 26 36 45 0d 33 37 30 |.360 gpl=&6E.370| 00000570 20 67 70 68 3d 26 36 46 0d 33 38 30 20 67 70 32 | gph=&6F.380 gp2| 00000580 6c 3d 26 37 32 0d 33 39 30 20 67 70 32 68 3d 26 |l=&72.390 gp2h=&| 00000590 37 33 0d 34 31 30 20 46 4f 52 20 63 6f 64 65 3d |73.410 FOR code=| 000005a0 30 20 54 4f 20 32 20 53 54 45 50 20 32 0d 34 32 |0 TO 2 STEP 2.42| 000005b0 30 20 50 25 3d 26 31 45 44 38 0d 34 33 30 20 5b |0 P%=&1ED8.430 [| 000005c0 4f 50 54 20 63 6f 64 65 0d 34 35 30 20 2e 63 61 |OPT code.450 .ca| 000005d0 6c 63 75 6c 61 74 6f 72 0d 34 36 30 20 4a 53 52 |lculator.460 JSR| 000005e0 20 64 72 61 77 5f 63 61 6c 63 75 6c 61 74 6f 72 | draw_calculator| 000005f0 5f 73 68 61 70 65 0d 34 37 30 20 4a 53 52 20 64 |_shape.470 JSR d| 00000600 72 61 77 5f 63 61 6c 63 5f 64 69 73 70 6c 61 79 |raw_calc_display| 00000610 0d 34 38 30 20 4a 53 52 20 63 61 6c 63 75 6c 61 |.480 JSR calcula| 00000620 74 6f 72 5f 69 63 6f 6e 73 5f 64 61 74 61 0d 34 |tor_icons_data.4| 00000630 39 30 20 4a 53 52 20 64 69 73 70 6c 61 79 5f 63 |90 JSR display_c| 00000640 61 6c 63 5f 6b 65 79 73 0d 35 30 30 20 52 54 53 |alc_keys.500 RTS| 00000650 0d 35 32 30 20 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |.520 \\\\\\\\\\\| 00000660 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |\\\\\\\\\\\\\\\\| 00000670 5c 5c 0d 35 33 30 20 5c 5c 5c 5c 20 43 41 4c 43 |\\.530 \\\\ CALC| 00000680 55 4c 41 54 4f 52 20 52 4f 55 54 49 4e 45 53 20 |ULATOR ROUTINES | 00000690 5c 5c 5c 5c 0d 35 34 30 20 5c 5c 5c 5c 5c 5c 5c |\\\\.540 \\\\\\\| 000006a0 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |\\\\\\\\\\\\\\\\| 000006b0 5c 5c 5c 5c 5c 5c 0d 35 35 30 20 2e 64 72 61 77 |\\\\\\.550 .draw| 000006c0 5f 63 61 6c 63 75 6c 61 74 6f 72 5f 73 68 61 70 |_calculator_shap| 000006d0 65 0d 35 36 30 20 4c 44 41 20 26 32 3a 53 54 41 |e.560 LDA &2:STA| 000006e0 20 73 74 6c 0d 35 37 30 20 4c 44 41 20 26 33 3a | stl.570 LDA &3:| 000006f0 43 4c 43 3a 41 44 43 20 23 32 3a 53 54 41 20 73 |CLC:ADC #2:STA s| 00000700 74 68 0d 35 38 30 20 4c 44 41 20 23 30 3a 53 54 |th.580 LDA #0:ST| 00000710 41 20 77 69 6e 64 6f 77 73 0d 35 39 30 20 4c 44 |A windows.590 LD| 00000720 41 20 23 32 38 3a 53 54 41 20 58 31 3a 4c 44 41 |A #28:STA X1:LDA| 00000730 20 23 34 35 3a 53 54 41 20 59 31 0d 36 30 30 20 | #45:STA Y1.600 | 00000740 4c 44 41 20 23 32 32 3a 53 54 41 20 58 32 3a 4c |LDA #22:STA X2:L| 00000750 44 41 20 23 31 33 30 3a 53 54 41 20 59 32 0d 36 |DA #130:STA Y2.6| 00000760 31 30 20 4c 44 41 20 23 32 33 38 3a 53 54 41 20 |10 LDA #238:STA | 00000770 64 62 6f 78 31 0d 36 32 30 20 4c 44 41 20 23 30 |dbox1.620 LDA #0| 00000780 3a 53 54 41 20 64 62 6f 78 32 3a 53 54 41 20 64 |:STA dbox2:STA d| 00000790 62 6f 78 33 0d 36 33 30 20 4c 44 41 20 23 31 3a |box3.630 LDA #1:| 000007a0 53 54 41 20 70 61 73 73 0d 36 34 30 20 4a 53 52 |STA pass.640 JSR| 000007b0 20 64 72 6f 70 70 65 64 5f 62 6f 78 0d 36 35 30 | dropped_box.650| 000007c0 20 72 74 73 0d 36 37 30 20 2e 65 72 61 73 65 5f | rts.670 .erase_| 000007d0 63 61 6c 63 75 6c 61 74 6f 72 0d 36 38 30 20 4a |calculator.680 J| 000007e0 53 52 20 72 65 73 74 6f 72 65 5f 64 72 6f 70 70 |SR restore_dropp| 000007f0 65 64 5f 62 6f 78 0d 36 39 30 20 72 74 73 0d 37 |ed_box.690 rts.7| 00000800 31 30 20 2e 64 72 61 77 5f 63 61 6c 63 5f 64 69 |10 .draw_calc_di| 00000810 73 70 6c 61 79 0d 37 32 30 20 4c 44 41 20 59 31 |splay.720 LDA Y1| 00000820 3a 43 4c 43 3a 41 44 43 20 23 34 3a 53 54 41 20 |:CLC:ADC #4:STA | 00000830 59 31 0d 37 33 30 20 44 45 43 20 58 32 3a 44 45 |Y1.730 DEC X2:DE| 00000840 43 20 58 32 3a 49 4e 43 20 58 31 0d 37 34 30 20 |C X2:INC X1.740 | 00000850 4c 44 41 20 23 32 31 3a 53 54 41 20 59 32 0d 37 |LDA #21:STA Y2.7| 00000860 35 30 20 4c 44 41 20 23 30 3a 53 54 41 20 62 6f |50 LDA #0:STA bo| 00000870 78 31 0d 37 36 30 20 4c 44 41 20 23 32 35 35 3a |x1.760 LDA #255:| 00000880 53 54 41 20 62 6f 78 32 0d 37 37 30 20 4c 44 41 |STA box2.770 LDA| 00000890 20 23 31 32 37 3a 53 54 41 20 62 6f 78 33 0d 37 | #127:STA box3.7| 000008a0 38 30 20 4c 44 41 20 23 32 35 32 3a 53 54 41 20 |80 LDA #252:STA | 000008b0 62 6f 78 34 0d 37 39 30 20 4c 44 41 20 23 33 3a |box4.790 LDA #3:| 000008c0 53 54 41 20 70 61 73 73 0d 38 30 30 20 4a 53 52 |STA pass.800 JSR| 000008d0 20 62 6f 78 0d 38 31 30 20 72 74 73 0d 38 33 30 | box.810 rts.830| 000008e0 20 2e 63 61 6c 63 75 6c 61 74 6f 72 5f 69 63 6f | .calculator_ico| 000008f0 6e 73 5f 64 61 74 61 0d 38 34 30 20 4c 44 41 20 |ns_data.840 LDA | 00000900 23 32 36 3a 53 54 41 20 69 63 6f 6e 73 0d 38 35 |#26:STA icons.85| 00000910 30 20 4c 44 41 20 23 63 61 6c 63 75 6c 61 74 6f |0 LDA #calculato| 00000920 72 5f 6b 65 79 5f 70 6f 73 20 4d 4f 44 20 32 35 |r_key_pos MOD 25| 00000930 36 0d 38 36 30 20 53 54 41 20 67 70 6c 0d 38 37 |6.860 STA gpl.87| 00000940 30 20 4c 44 41 20 23 63 61 6c 63 75 6c 61 74 6f |0 LDA #calculato| 00000950 72 5f 6b 65 79 5f 70 6f 73 20 44 49 56 20 32 35 |r_key_pos DIV 25| 00000960 36 0d 38 38 30 20 53 54 41 20 67 70 68 0d 38 39 |6.880 STA gph.89| 00000970 30 20 4c 44 41 20 23 63 61 6c 63 75 6c 61 74 6f |0 LDA #calculato| 00000980 72 5f 6b 65 79 5f 64 61 74 61 20 4d 4f 44 20 32 |r_key_data MOD 2| 00000990 35 36 0d 39 30 30 20 53 54 41 20 67 70 32 6c 0d |56.900 STA gp2l.| 000009a0 39 31 30 20 4c 44 41 20 23 63 61 6c 63 75 6c 61 |910 LDA #calcula| 000009b0 74 6f 72 5f 6b 65 79 5f 64 61 74 61 20 44 49 56 |tor_key_data DIV| 000009c0 20 32 35 36 0d 39 32 30 20 53 54 41 20 67 70 32 | 256.920 STA gp2| 000009d0 68 0d 39 33 30 20 72 74 73 0d 39 35 30 20 2e 64 |h.930 rts.950 .d| 000009e0 69 73 70 6c 61 79 5f 63 61 6c 63 5f 6b 65 79 73 |isplay_calc_keys| 000009f0 0d 39 36 30 20 4a 53 52 20 69 6e 76 65 72 73 65 |.960 JSR inverse| 00000a00 5f 74 65 78 74 0d 39 37 30 20 4c 44 58 20 69 63 |_text.970 LDX ic| 00000a10 6f 6e 73 0d 39 38 30 20 2e 64 69 73 70 6c 61 79 |ons.980 .display| 00000a20 5f 63 61 6c 63 5f 6b 65 79 73 5f 6c 6f 6f 70 0d |_calc_keys_loop.| 00000a30 39 39 30 20 4a 53 52 20 67 65 74 5f 69 63 6f 6e |990 JSR get_icon| 00000a40 5f 73 68 61 70 65 0d 31 30 30 30 20 4a 53 52 20 |_shape.1000 JSR | 00000a50 62 6f 78 0d 31 30 31 30 20 4c 44 41 20 23 33 31 |box.1010 LDA #31| 00000a60 3a 4a 53 52 20 26 46 46 45 45 0d 31 30 32 30 20 |:JSR &FFEE.1020 | 00000a70 4c 44 41 20 58 31 3a 43 4c 43 3a 41 44 43 20 23 |LDA X1:CLC:ADC #| 00000a80 31 3a 4a 53 52 20 26 46 46 45 45 0d 31 30 33 30 |1:JSR &FFEE.1030| 00000a90 20 4c 44 41 20 59 31 3a 4c 53 52 20 41 3a 4c 53 | LDA Y1:LSR A:LS| 00000aa0 52 20 41 3a 4c 53 52 20 41 0d 31 30 34 30 20 43 |R A:LSR A.1040 C| 00000ab0 4c 43 3a 41 44 43 20 23 31 3a 4a 53 52 20 26 46 |LC:ADC #1:JSR &F| 00000ac0 46 45 45 0d 31 30 35 30 20 4c 44 59 20 23 30 0d |FEE.1050 LDY #0.| 00000ad0 31 30 36 30 20 4c 44 41 20 28 67 70 32 6c 29 2c |1060 LDA (gp2l),| 00000ae0 59 3a 4a 53 52 20 26 46 46 45 45 3a 49 4e 59 0d |Y:JSR &FFEE:INY.| 00000af0 31 30 37 30 20 4c 44 41 20 28 67 70 32 6c 29 2c |1070 LDA (gp2l),| 00000b00 59 3a 4a 53 52 20 26 46 46 45 45 3a 49 4e 59 0d |Y:JSR &FFEE:INY.| 00000b10 31 30 38 30 20 4c 44 41 20 28 67 70 32 6c 29 2c |1080 LDA (gp2l),| 00000b20 59 3a 4a 53 52 20 26 46 46 45 45 0d 31 30 39 30 |Y:JSR &FFEE.1090| 00000b30 20 4c 44 41 20 67 70 6c 3a 43 4c 43 3a 41 44 43 | LDA gpl:CLC:ADC| 00000b40 20 23 34 3a 53 54 41 20 67 70 6c 3a 4c 44 41 20 | #4:STA gpl:LDA | 00000b50 67 70 68 3a 41 44 43 20 23 30 3a 53 54 41 20 67 |gph:ADC #0:STA g| 00000b60 70 68 0d 31 31 30 30 20 4c 44 41 20 67 70 32 6c |ph.1100 LDA gp2l| 00000b70 3a 43 4c 43 3a 41 44 43 20 23 33 3a 53 54 41 20 |:CLC:ADC #3:STA | 00000b80 67 70 32 6c 3a 4c 44 41 20 67 70 32 68 3a 41 44 |gp2l:LDA gp2h:AD| 00000b90 43 20 23 30 3a 53 54 41 20 67 70 32 68 0d 31 31 |C #0:STA gp2h.11| 00000ba0 31 30 20 44 45 58 3a 42 4e 45 20 64 69 73 70 6c |10 DEX:BNE displ| 00000bb0 61 79 5f 63 61 6c 63 5f 6b 65 79 73 5f 6c 6f 6f |ay_calc_keys_loo| 00000bc0 70 0d 31 31 32 30 20 4a 53 52 20 6e 6f 72 6d 61 |p.1120 JSR norma| 00000bd0 6c 5f 74 65 78 74 0d 31 31 33 30 20 72 74 73 0d |l_text.1130 rts.| 00000be0 31 31 35 30 20 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |1150 \\\\\\\\\\\| 00000bf0 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |\\\\\\\\\\\\\\\\| 00000c00 5c 5c 0d 31 31 36 30 20 5c 5c 5c 5c 20 44 41 54 |\\.1160 \\\\ DAT| 00000c10 41 20 53 45 43 54 49 4f 4e 20 2d 20 43 41 4c 43 |A SECTION - CALC| 00000c20 20 5c 5c 5c 5c 0d 31 31 37 30 20 5c 5c 5c 5c 5c | \\\\.1170 \\\\\| 00000c30 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |\\\\\\\\\\\\\\\\| 00000c40 5c 5c 5c 5c 5c 5c 5c 5c 0d 31 31 38 30 20 2e 63 |\\\\\\\\.1180 .c| 00000c50 61 6c 63 75 6c 61 74 6f 72 5f 6b 65 79 5f 70 6f |alculator_key_po| 00000c60 73 0d 31 31 39 30 20 45 51 55 44 20 26 30 44 30 |s.1190 EQUD &0D0| 00000c70 35 34 44 31 44 0d 31 32 31 30 20 45 51 55 44 20 |54D1D.1210 EQUD | 00000c80 26 30 44 30 33 35 44 31 44 0d 31 32 32 30 20 45 |&0D035D1D.1220 E| 00000c90 51 55 44 20 26 30 44 30 33 35 44 32 31 0d 31 32 |QUD &0D035D21.12| 00000ca0 33 30 20 45 51 55 44 20 26 30 44 30 33 35 44 32 |30 EQUD &0D035D2| 00000cb0 35 0d 31 32 34 30 20 45 51 55 44 20 26 30 44 30 |5.1240 EQUD &0D0| 00000cc0 33 35 44 32 39 0d 31 32 35 30 20 45 51 55 44 20 |35D29.1250 EQUD | 00000cd0 26 30 44 30 34 35 44 32 44 0d 31 32 37 30 20 45 |&0D045D2D.1270 E| 00000ce0 51 55 44 20 26 30 44 30 33 36 44 31 44 0d 31 32 |QUD &0D036D1D.12| 00000cf0 38 30 20 45 51 55 44 20 26 30 44 30 33 36 44 32 |80 EQUD &0D036D2| 00000d00 31 0d 31 32 39 30 20 45 51 55 44 20 26 30 44 30 |1.1290 EQUD &0D0| 00000d10 33 36 44 32 35 0d 31 33 30 30 20 45 51 55 44 20 |36D25.1300 EQUD | 00000d20 26 30 44 30 33 36 44 32 39 0d 31 33 31 30 20 45 |&0D036D29.1310 E| 00000d30 51 55 44 20 26 30 44 30 34 36 44 32 44 0d 31 33 |QUD &0D046D2D.13| 00000d40 33 30 20 45 51 55 44 20 26 30 44 30 33 37 44 31 |30 EQUD &0D037D1| 00000d50 44 0d 31 33 34 30 20 45 51 55 44 20 26 30 44 30 |D.1340 EQUD &0D0| 00000d60 33 37 44 32 31 0d 31 33 35 30 20 45 51 55 44 20 |37D21.1350 EQUD | 00000d70 26 30 44 30 33 37 44 32 35 0d 31 33 36 30 20 45 |&0D037D25.1360 E| 00000d80 51 55 44 20 26 30 44 30 33 37 44 32 39 0d 31 33 |QUD &0D037D29.13| 00000d90 37 30 20 45 51 55 44 20 26 30 44 30 34 37 44 32 |70 EQUD &0D047D2| 00000da0 44 0d 31 33 39 30 20 45 51 55 44 20 26 30 44 30 |D.1390 EQUD &0D0| 00000db0 33 38 44 31 44 0d 31 34 30 30 20 45 51 55 44 20 |38D1D.1400 EQUD | 00000dc0 26 30 44 30 33 38 44 32 31 0d 31 34 31 30 20 45 |&0D038D21.1410 E| 00000dd0 51 55 44 20 26 30 44 30 33 38 44 32 35 0d 31 34 |QUD &0D038D25.14| 00000de0 32 30 20 45 51 55 44 20 26 30 44 30 33 38 44 32 |20 EQUD &0D038D2| 00000df0 39 0d 31 34 33 30 20 45 51 55 44 20 26 30 44 30 |9.1430 EQUD &0D0| 00000e00 34 38 44 32 44 0d 31 34 35 30 20 45 51 55 44 20 |48D2D.1450 EQUD | 00000e10 26 30 44 30 33 39 44 31 44 0d 31 34 36 30 20 45 |&0D039D1D.1460 E| 00000e20 51 55 44 20 26 30 44 30 33 39 44 32 31 0d 31 34 |QUD &0D039D21.14| 00000e30 37 30 20 45 51 55 44 20 26 30 44 30 33 39 44 32 |70 EQUD &0D039D2| 00000e40 35 0d 31 34 38 30 20 45 51 55 44 20 26 30 44 30 |5.1480 EQUD &0D0| 00000e50 33 39 44 32 39 0d 31 34 39 30 20 45 51 55 44 20 |39D29.1490 EQUD | 00000e60 26 30 44 30 34 39 44 32 44 0d 31 35 31 30 20 2e |&0D049D2D.1510 .| 00000e70 63 61 6c 63 75 6c 61 74 6f 72 5f 6b 65 79 5f 64 |calculator_key_d| 00000e80 61 74 61 0d 31 35 32 30 20 45 51 55 42 20 41 53 |ata.1520 EQUB AS| 00000e90 43 22 4f 22 3a 45 51 55 42 20 41 53 43 22 46 22 |C"O":EQUB ASC"F"| 00000ea0 0d 31 35 33 30 20 45 51 55 42 20 41 53 43 22 46 |.1530 EQUB ASC"F| 00000eb0 22 0d 31 35 35 30 20 45 51 55 42 20 30 3a 45 51 |".1550 EQUB 0:EQ| 00000ec0 55 42 20 30 3a 45 51 55 42 20 41 53 43 22 25 22 |UB 0:EQUB ASC"%"| 00000ed0 0d 31 35 36 30 20 45 51 55 42 20 30 3a 45 51 55 |.1560 EQUB 0:EQU| 00000ee0 42 20 30 3a 45 51 55 42 20 41 53 43 22 4e 22 0d |B 0:EQUB ASC"N".| 00000ef0 31 35 37 30 20 45 51 55 42 20 30 3a 45 51 55 42 |1570 EQUB 0:EQUB| 00000f00 20 30 3a 45 51 55 42 20 41 53 43 22 5e 22 0d 31 | 0:EQUB ASC"^".1| 00000f10 35 38 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 |580 EQUB 0:EQUB | 00000f20 30 3a 45 51 55 42 20 41 53 43 22 2f 22 0d 31 35 |0:EQUB ASC"/".15| 00000f30 39 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 41 |90 EQUB 0:EQUB A| 00000f40 53 43 22 50 22 3a 45 51 55 42 20 41 53 43 22 49 |SC"P":EQUB ASC"I| 00000f50 22 0d 31 36 31 30 20 45 51 55 42 20 30 3a 45 51 |".1610 EQUB 0:EQ| 00000f60 55 42 20 30 3a 45 51 55 42 20 41 53 43 22 37 22 |UB 0:EQUB ASC"7"| 00000f70 0d 31 36 32 30 20 45 51 55 42 20 30 3a 45 51 55 |.1620 EQUB 0:EQU| 00000f80 42 20 30 3a 45 51 55 42 20 41 53 43 22 38 22 0d |B 0:EQUB ASC"8".| 00000f90 31 36 33 30 20 45 51 55 42 20 30 3a 45 51 55 42 |1630 EQUB 0:EQUB| 00000fa0 20 30 3a 45 51 55 42 20 41 53 43 22 39 22 0d 31 | 0:EQUB ASC"9".1| 00000fb0 36 34 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 |640 EQUB 0:EQUB | 00000fc0 30 3a 45 51 55 42 20 41 53 43 22 2a 22 0d 31 36 |0:EQUB ASC"*".16| 00000fd0 35 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 41 |50 EQUB 0:EQUB A| 00000fe0 53 43 22 4d 22 3a 45 51 55 42 20 41 53 43 22 43 |SC"M":EQUB ASC"C| 00000ff0 22 0d 31 36 37 30 20 45 51 55 42 20 30 3a 45 51 |".1670 EQUB 0:EQ| 00001000 55 42 20 30 3a 45 51 55 42 20 41 53 43 22 34 22 |UB 0:EQUB ASC"4"| 00001010 0d 31 36 38 30 20 45 51 55 42 20 30 3a 45 51 55 |.1680 EQUB 0:EQU| 00001020 42 20 30 3a 45 51 55 42 20 41 53 43 22 35 22 0d |B 0:EQUB ASC"5".| 00001030 31 36 39 30 20 45 51 55 42 20 30 3a 45 51 55 42 |1690 EQUB 0:EQUB| 00001040 20 30 3a 45 51 55 42 20 41 53 43 22 36 22 0d 31 | 0:EQUB ASC"6".1| 00001050 37 30 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 |700 EQUB 0:EQUB | 00001060 30 3a 45 51 55 42 20 41 53 43 22 2d 22 0d 31 37 |0:EQUB ASC"-".17| 00001070 31 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 41 |10 EQUB 0:EQUB A| 00001080 53 43 22 4d 22 3a 45 51 55 42 20 41 53 43 22 52 |SC"M":EQUB ASC"R| 00001090 22 0d 31 37 33 30 20 45 51 55 42 20 30 3a 45 51 |".1730 EQUB 0:EQ| 000010a0 55 42 20 30 3a 45 51 55 42 20 41 53 43 22 31 22 |UB 0:EQUB ASC"1"| 000010b0 0d 31 37 34 30 20 45 51 55 42 20 30 3a 45 51 55 |.1740 EQUB 0:EQU| 000010c0 42 20 30 3a 45 51 55 42 20 41 53 43 22 32 22 0d |B 0:EQUB ASC"2".| 000010d0 31 37 35 30 20 45 51 55 42 20 30 3a 45 51 55 42 |1750 EQUB 0:EQUB| 000010e0 20 30 3a 45 51 55 42 20 41 53 43 22 33 22 0d 31 | 0:EQUB ASC"3".1| 000010f0 37 36 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 |760 EQUB 0:EQUB | 00001100 30 3a 45 51 55 42 20 41 53 43 22 2b 22 0d 31 37 |0:EQUB ASC"+".17| 00001110 37 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 41 |70 EQUB 0:EQUB A| 00001120 53 43 22 4d 22 3a 45 51 55 42 20 41 53 43 22 53 |SC"M":EQUB ASC"S| 00001130 22 0d 31 37 39 30 20 45 51 55 42 20 30 3a 45 51 |".1790 EQUB 0:EQ| 00001140 55 42 20 30 3a 45 51 55 42 20 41 53 43 22 30 22 |UB 0:EQUB ASC"0"| 00001150 0d 31 38 30 30 20 45 51 55 42 20 30 3a 45 51 55 |.1800 EQUB 0:EQU| 00001160 42 20 30 3a 45 51 55 42 20 41 53 43 22 2e 22 0d |B 0:EQUB ASC".".| 00001170 31 38 31 30 20 45 51 55 42 20 30 3a 45 51 55 42 |1810 EQUB 0:EQUB| 00001180 20 30 3a 45 51 55 42 20 41 53 43 22 3d 22 0d 31 | 0:EQUB ASC"=".1| 00001190 38 32 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 |820 EQUB 0:EQUB | 000011a0 30 3a 45 51 55 42 20 41 53 43 22 43 22 0d 31 38 |0:EQUB ASC"C".18| 000011b0 33 30 20 45 51 55 42 20 30 3a 45 51 55 42 20 41 |30 EQUB 0:EQUB A| 000011c0 53 43 22 41 22 3a 45 51 55 42 20 41 53 43 22 43 |SC"A":EQUB ASC"C| 000011d0 22 0d 31 38 35 30 20 2e 63 6f 64 65 5f 65 6e 64 |".1850 .code_end| 000011e0 0d 31 38 37 30 20 5d 0d 31 38 38 30 20 4e 45 58 |.1870 ].1880 NEX| 000011f0 54 0d 53 41 56 45 22 4c 2d 33 2d 49 49 22 0d 4e |T.SAVE"L-3-II".N| 00001200 45 57 0d 31 30 20 52 45 4d 20 4c 69 73 74 69 6e |EW.10 REM Listin| 00001210 67 20 49 49 49 0d 32 30 20 52 45 4d 20 42 79 20 |g III.20 REM By | 00001220 47 6c 65 6e 6e 20 4d 61 72 73 68 61 6c 6c 0d 33 |Glenn Marshall.3| 00001230 30 20 52 45 4d 20 28 43 29 20 54 68 65 20 4d 69 |0 REM (C) The Mi| 00001240 63 72 6f 20 55 73 65 72 0d 35 30 20 49 46 20 50 |cro User.50 IF P| 00001250 41 47 45 3c 3e 26 32 31 30 30 20 54 48 45 4e 20 |AGE<>&2100 THEN | 00001260 45 4e 44 0d 37 30 20 2a 46 58 33 0d 38 30 20 50 |END.70 *FX3.80 P| 00001270 52 4f 43 62 61 73 69 63 5f 76 61 72 69 61 62 6c |ROCbasic_variabl| 00001280 65 73 0d 39 30 20 50 52 4f 43 6d 63 5f 76 61 72 |es.90 PROCmc_var| 00001290 69 61 62 6c 65 73 0d 31 30 30 20 43 41 4c 4c 20 |iables.100 CALL | 000012a0 63 61 6c 63 75 6c 61 74 6f 72 0d 31 31 30 20 4f |calculator.110 O| 000012b0 4e 20 45 52 52 4f 52 20 50 52 4f 43 65 72 72 6f |N ERROR PROCerro| 000012c0 72 0d 31 32 30 20 50 52 4f 43 64 69 73 70 6c 61 |r.120 PROCdispla| 000012d0 79 28 73 74 6f 72 65 24 29 0d 31 34 30 20 52 45 |y(store$).140 RE| 000012e0 50 45 41 54 0d 31 35 30 20 43 41 4c 4c 20 63 61 |PEAT.150 CALL ca| 000012f0 6c 63 5f 69 63 6f 6e 5f 64 61 74 61 0d 31 36 30 |lc_icon_data.160| 00001300 20 43 41 4c 4c 20 70 6f 69 6e 74 65 72 0d 31 37 | CALL pointer.17| 00001310 30 20 50 52 4f 43 64 65 63 6f 64 65 0d 31 38 30 |0 PROCdecode.180| 00001320 20 55 4e 54 49 4c 20 65 78 69 74 3d 6f 6e 0d 32 | UNTIL exit=on.2| 00001330 30 30 20 43 41 4c 4c 20 65 72 61 73 65 5f 63 61 |00 CALL erase_ca| 00001340 6c 63 75 6c 61 74 6f 72 0d 32 31 30 20 2a 46 58 |lculator.210 *FX| 00001350 32 31 30 2c 31 0d 32 32 30 20 2a 46 58 33 2c 36 |210,1.220 *FX3,6| 00001360 0d 32 33 30 20 2a 46 58 32 31 30 2c 30 0d 32 35 |.230 *FX210,0.25| 00001370 30 20 3a 0d 32 36 30 20 43 48 41 49 4e 20 22 44 |0 :.260 CHAIN "D| 00001380 45 53 4b 54 4f 50 22 0d 32 38 30 20 3a 0d 32 39 |ESKTOP".280 :.29| 00001390 30 20 44 45 46 50 52 4f 43 62 61 73 69 63 5f 76 |0 DEFPROCbasic_v| 000013a0 61 72 69 61 62 6c 65 73 0d 33 30 30 20 73 74 6f |ariables.300 sto| 000013b0 72 65 24 3d 22 30 22 0d 33 31 30 20 74 6f 74 61 |re$="0".310 tota| 000013c0 6c 24 3d 22 22 0d 33 32 30 20 6d 65 6d 6f 72 79 |l$="".320 memory| 000013d0 24 3d 22 22 0d 33 33 30 20 6f 6e 3d 31 0d 33 34 |$="".330 on=1.34| 000013e0 30 20 6f 66 66 3d 30 0d 33 35 30 20 64 65 63 69 |0 off=0.350 deci| 000013f0 6d 61 6c 3d 6f 66 66 0d 33 36 30 20 6f 70 65 72 |mal=off.360 oper| 00001400 61 74 69 6f 6e 3d 6f 6e 0d 33 37 30 20 64 69 67 |ation=on.370 dig| 00001410 69 74 73 3d 38 0d 33 38 30 20 78 70 6f 73 3d 33 |its=8.380 xpos=3| 00001420 38 0d 33 39 30 20 79 70 6f 73 3d 37 0d 34 30 30 |8.390 ypos=7.400| 00001430 20 73 79 6d 62 6f 6c 73 24 3d 22 2b 2a 2f 2d 5e | symbols$="+*/-^| 00001440 3d 22 0d 34 31 30 20 65 78 69 74 3d 6f 66 66 0d |=".410 exit=off.| 00001450 34 32 30 20 45 4e 44 50 52 4f 43 0d 34 34 30 20 |420 ENDPROC.440 | 00001460 44 45 46 50 52 4f 43 64 69 73 70 6c 61 79 28 73 |DEFPROCdisplay(s| 00001470 74 72 69 6e 67 24 29 0d 34 35 30 20 43 4f 4c 4f |tring$).450 COLO| 00001480 55 52 20 31 32 39 3a 43 4f 4c 4f 55 52 20 30 0d |UR 129:COLOUR 0.| 00001490 34 36 30 20 50 52 49 4e 54 20 54 41 42 28 78 70 |460 PRINT TAB(xp| 000014a0 6f 73 2d 38 2c 79 70 6f 73 29 3b 53 54 52 49 4e |os-8,ypos);STRIN| 000014b0 47 24 28 31 38 2c 22 20 22 29 0d 34 37 30 20 50 |G$(18," ").470 P| 000014c0 52 49 4e 54 20 54 41 42 28 78 70 6f 73 2d 4c 45 |RINT TAB(xpos-LE| 000014d0 4e 28 73 74 72 69 6e 67 24 29 2b 31 30 2c 79 70 |N(string$)+10,yp| 000014e0 6f 73 29 3b 73 74 72 69 6e 67 24 0d 34 38 30 20 |os);string$.480 | 000014f0 45 4e 44 50 52 4f 43 0d 35 30 30 20 44 45 46 50 |ENDPROC.500 DEFP| 00001500 52 4f 43 64 65 63 6f 64 65 0d 35 31 30 20 4c 4f |ROCdecode.510 LO| 00001510 43 41 4c 20 6b 65 79 24 2c 6c 6f 6f 70 0d 35 32 |CAL key$,loop.52| 00001520 30 20 49 46 20 3f 69 63 6f 6e 3d 32 35 35 20 45 |0 IF ?icon=255 E| 00001530 4e 44 50 52 4f 43 0d 35 33 30 20 52 45 53 54 4f |NDPROC.530 RESTO| 00001540 52 45 20 37 31 30 0d 35 34 30 20 46 4f 52 20 6c |RE 710.540 FOR l| 00001550 6f 6f 70 3d 31 20 54 4f 20 3f 69 63 6f 6e 0d 35 |oop=1 TO ?icon.5| 00001560 35 30 20 52 45 41 44 20 6b 65 79 24 0d 35 36 30 |50 READ key$.560| 00001570 20 4e 45 58 54 20 6c 6f 6f 70 0d 35 37 30 20 49 | NEXT loop.570 I| 00001580 46 20 6b 65 79 24 3d 22 45 22 20 65 78 69 74 3d |F key$="E" exit=| 00001590 6f 6e 0d 35 38 30 20 49 46 20 6b 65 79 24 3d 22 |on.580 IF key$="| 000015a0 41 22 20 50 52 4f 43 61 63 0d 35 39 30 20 49 46 |A" PROCac.590 IF| 000015b0 20 6b 65 79 24 3d 22 43 22 20 41 4e 44 20 6f 70 | key$="C" AND op| 000015c0 65 72 61 74 69 6f 6e 3d 6f 66 66 20 54 48 45 4e |eration=off THEN| 000015d0 20 50 52 4f 43 63 0d 36 30 30 20 49 46 20 6b 65 | PROCc.600 IF ke| 000015e0 79 24 3d 22 4d 22 20 50 52 4f 43 6d 63 0d 36 31 |y$="M" PROCmc.61| 000015f0 30 20 49 46 20 6b 65 79 24 3d 22 3e 22 20 50 52 |0 IF key$=">" PR| 00001600 4f 43 6d 73 0d 36 32 30 20 49 46 20 6b 65 79 24 |OCms.620 IF key$| 00001610 3d 22 3c 22 20 50 52 4f 43 6d 72 0d 36 33 30 20 |="<" PROCmr.630 | 00001620 49 46 20 6b 65 79 24 3d 22 4e 22 20 50 52 4f 43 |IF key$="N" PROC| 00001630 69 6e 76 65 72 73 65 0d 36 34 30 20 49 46 20 6b |inverse.640 IF k| 00001640 65 79 24 3d 22 50 22 20 50 52 4f 43 70 69 0d 36 |ey$="P" PROCpi.6| 00001650 35 30 20 49 46 20 6b 65 79 24 3d 22 25 22 20 50 |50 IF key$="%" P| 00001660 52 4f 43 70 65 72 63 65 6e 74 0d 36 36 30 20 49 |ROCpercent.660 I| 00001670 46 20 49 4e 53 54 52 28 73 79 6d 62 6f 6c 73 24 |F INSTR(symbols$| 00001680 2c 6b 65 79 24 29 3c 3e 30 20 50 52 4f 43 64 6f |,key$)<>0 PROCdo| 00001690 5f 6f 70 65 72 61 74 69 6f 6e 28 6b 65 79 24 29 |_operation(key$)| 000016a0 0d 36 37 30 20 49 46 20 4c 45 4e 28 73 74 6f 72 |.670 IF LEN(stor| 000016b0 65 24 29 3e 3d 64 69 67 69 74 73 20 45 4e 44 50 |e$)>=digits ENDP| 000016c0 52 4f 43 0d 36 38 30 20 49 46 20 6b 65 79 24 3e |ROC.680 IF key$>| 000016d0 3d 22 30 22 20 41 4e 44 20 6b 65 79 24 3c 3d 22 |="0" AND key$<="| 000016e0 39 22 20 50 52 4f 43 6e 75 6d 62 65 72 28 6b 65 |9" PROCnumber(ke| 000016f0 79 24 29 0d 36 39 30 20 49 46 20 6b 65 79 24 3d |y$).690 IF key$=| 00001700 22 2e 22 20 41 4e 44 20 64 69 67 69 74 73 3c 31 |"." AND digits<1| 00001710 34 20 50 52 4f 43 70 75 74 5f 64 65 63 69 6d 61 |4 PROCput_decima| 00001720 6c 0d 37 30 30 20 45 4e 44 50 52 4f 43 0d 37 31 |l.700 ENDPROC.71| 00001730 30 20 44 41 54 41 20 45 2c 25 2c 4e 2c 5e 2c 2f |0 DATA E,%,N,^,/| 00001740 2c 50 2c 37 2c 38 2c 39 2c 2a 2c 4d 2c 34 2c 35 |,P,7,8,9,*,M,4,5| 00001750 2c 36 2c 2d 2c 3c 2c 31 2c 32 2c 33 2c 2b 2c 3e |,6,-,<,1,2,3,+,>| 00001760 2c 30 2c 2e 2c 3d 2c 43 2c 41 0d 37 33 30 20 44 |,0,.,=,C,A.730 D| 00001770 45 46 50 52 4f 43 6e 75 6d 62 65 72 28 6b 65 79 |EFPROCnumber(key| 00001780 24 29 0d 37 34 30 20 49 46 20 73 74 6f 72 65 24 |$).740 IF store$| 00001790 3d 22 30 22 20 73 74 6f 72 65 24 3d 22 22 0d 37 |="0" store$="".7| 000017a0 35 30 20 73 74 6f 72 65 24 3d 73 74 6f 72 65 24 |50 store$=store$| 000017b0 2b 6b 65 79 24 0d 37 36 30 20 50 52 4f 43 64 69 |+key$.760 PROCdi| 000017c0 73 70 6c 61 79 28 73 74 6f 72 65 24 29 0d 37 37 |splay(store$).77| 000017d0 30 20 6f 70 65 72 61 74 69 6f 6e 3d 6f 66 66 0d |0 operation=off.| 000017e0 37 38 30 20 45 4e 44 50 52 4f 43 0d 38 30 30 20 |780 ENDPROC.800 | 000017f0 44 45 46 50 52 4f 43 64 6f 5f 6f 70 65 72 61 74 |DEFPROCdo_operat| 00001800 69 6f 6e 28 6b 65 79 24 29 0d 38 31 30 20 49 46 |ion(key$).810 IF| 00001810 20 6f 70 65 72 61 74 69 6f 6e 3d 6f 6e 20 74 6f | operation=on to| 00001820 74 61 6c 24 3d 4c 45 46 54 24 28 74 6f 74 61 6c |tal$=LEFT$(total| 00001830 24 2c 4c 45 4e 28 74 6f 74 61 6c 24 29 2d 31 29 |$,LEN(total$)-1)| 00001840 0d 38 32 30 20 74 6f 74 61 6c 24 3d 74 6f 74 61 |.820 total$=tota| 00001850 6c 24 2b 73 74 6f 72 65 24 0d 38 33 30 20 74 6f |l$+store$.830 to| 00001860 74 61 6c 24 3d 53 54 52 24 28 45 56 41 4c 28 74 |tal$=STR$(EVAL(t| 00001870 6f 74 61 6c 24 29 29 0d 38 34 30 20 50 52 4f 43 |otal$)).840 PROC| 00001880 64 69 73 70 6c 61 79 28 74 6f 74 61 6c 24 29 0d |display(total$).| 00001890 38 35 30 20 74 6f 74 61 6c 24 3d 74 6f 74 61 6c |850 total$=total| 000018a0 24 2b 6b 65 79 24 0d 38 36 30 20 50 52 49 4e 54 |$+key$.860 PRINT| 000018b0 20 54 41 42 28 33 30 2c 79 70 6f 73 29 3b 6b 65 | TAB(30,ypos);ke| 000018c0 79 24 0d 38 37 30 20 73 74 6f 72 65 24 3d 22 22 |y$.870 store$=""| 000018d0 0d 38 38 30 20 6f 70 65 72 61 74 69 6f 6e 3d 6f |.880 operation=o| 000018e0 6e 0d 38 39 30 20 64 65 63 69 6d 61 6c 3d 6f 66 |n.890 decimal=of| 000018f0 66 0d 39 30 30 20 64 69 67 69 74 73 3d 38 0d 39 |f.900 digits=8.9| 00001900 31 30 20 45 4e 44 50 52 4f 43 0d 39 33 30 20 44 |10 ENDPROC.930 D| 00001910 45 46 50 52 4f 43 63 0d 39 34 30 20 73 74 6f 72 |EFPROCc.940 stor| 00001920 65 24 3d 22 30 22 0d 39 35 30 20 64 65 63 69 6d |e$="0".950 decim| 00001930 61 6c 3d 6f 66 66 0d 39 36 30 20 64 69 67 69 74 |al=off.960 digit| 00001940 73 3d 38 0d 39 37 30 20 50 52 4f 43 64 69 73 70 |s=8.970 PROCdisp| 00001950 6c 61 79 28 73 74 6f 72 65 24 29 0d 39 38 30 20 |lay(store$).980 | 00001960 45 4e 44 50 52 4f 43 0d 31 30 30 30 20 44 45 46 |ENDPROC.1000 DEF| 00001970 50 52 4f 43 70 65 72 63 65 6e 74 0d 31 30 31 30 |PROCpercent.1010| 00001980 20 49 46 20 74 6f 74 61 6c 24 3d 22 22 20 4f 52 | IF total$="" OR| 00001990 20 73 74 6f 72 65 24 3d 22 22 20 4f 52 20 6f 70 | store$="" OR op| 000019a0 65 72 61 74 69 6f 6e 3d 6f 6e 20 54 48 45 4e 20 |eration=on THEN | 000019b0 45 4e 44 50 52 4f 43 0d 31 30 32 30 20 49 46 20 |ENDPROC.1020 IF | 000019c0 52 49 47 48 54 24 28 74 6f 74 61 6c 24 2c 31 29 |RIGHT$(total$,1)| 000019d0 3d 22 2a 22 20 73 74 6f 72 65 24 3d 73 74 6f 72 |="*" store$=stor| 000019e0 65 24 2b 22 2f 31 30 30 22 0d 31 30 33 30 20 49 |e$+"/100".1030 I| 000019f0 46 20 52 49 47 48 54 24 28 74 6f 74 61 6c 24 2c |F RIGHT$(total$,| 00001a00 31 29 3d 22 2b 22 20 74 6f 74 61 6c 24 3d 22 28 |1)="+" total$="(| 00001a10 22 2b 74 6f 74 61 6c 24 3a 73 74 6f 72 65 24 3d |"+total$:store$=| 00001a20 73 74 6f 72 65 24 2b 22 29 2f 28 22 2b 73 74 6f |store$+")/("+sto| 00001a30 72 65 24 2b 22 2f 31 30 30 29 22 0d 31 30 34 30 |re$+"/100)".1040| 00001a40 20 49 46 20 52 49 47 48 54 24 28 74 6f 74 61 6c | IF RIGHT$(total| 00001a50 24 2c 31 29 3d 22 2f 22 20 73 74 6f 72 65 24 3d |$,1)="/" store$=| 00001a60 73 74 6f 72 65 24 2b 22 2a 31 30 30 22 0d 31 30 |store$+"*100".10| 00001a70 35 30 20 49 46 20 52 49 47 48 54 24 28 74 6f 74 |50 IF RIGHT$(tot| 00001a80 61 6c 24 2c 31 29 3d 22 2f 22 20 74 6f 74 61 6c |al$,1)="/" total| 00001a90 24 3d 22 28 28 22 2b 74 6f 74 61 6c 24 3a 74 6f |$="(("+total$:to| 00001aa0 74 61 6c 24 3d 4c 45 46 54 24 28 74 6f 74 61 6c |tal$=LEFT$(total| 00001ab0 24 2c 28 4c 45 4e 28 74 6f 74 61 6c 24 29 2d 31 |$,(LEN(total$)-1| 00001ac0 29 29 3a 73 74 6f 72 65 24 3d 22 2f 22 2b 73 74 |)):store$="/"+st| 00001ad0 6f 72 65 24 2b 22 29 2a 31 30 30 29 2d 31 30 30 |ore$+")*100)-100| 00001ae0 22 0d 31 30 36 30 20 50 52 49 4e 54 20 54 41 42 |".1060 PRINT TAB| 00001af0 28 33 30 2c 79 70 6f 73 29 3b 6b 65 79 24 0d 31 |(30,ypos);key$.1| 00001b00 30 37 30 20 50 52 4f 43 64 6f 5f 6f 70 65 72 61 |070 PROCdo_opera| 00001b10 74 69 6f 6e 28 22 3d 22 29 0d 31 30 38 30 20 45 |tion("=").1080 E| 00001b20 4e 44 50 52 4f 43 0d 31 31 30 30 20 44 45 46 50 |NDPROC.1100 DEFP| 00001b30 52 4f 43 70 69 0d 31 31 31 30 20 73 74 6f 72 65 |ROCpi.1110 store| 00001b40 24 3d 53 54 52 24 28 50 49 29 0d 31 31 32 30 20 |$=STR$(PI).1120 | 00001b50 50 52 4f 43 64 69 73 70 6c 61 79 28 73 74 6f 72 |PROCdisplay(stor| 00001b60 65 24 29 0d 31 31 33 30 20 6f 70 65 72 61 74 69 |e$).1130 operati| 00001b70 6f 6e 3d 6f 66 66 0d 31 31 34 30 20 64 65 63 69 |on=off.1140 deci| 00001b80 6d 61 6c 3d 6f 6e 0d 31 31 35 30 20 45 4e 44 50 |mal=on.1150 ENDP| 00001b90 52 4f 43 0d 31 31 37 30 20 44 45 46 50 52 4f 43 |ROC.1170 DEFPROC| 00001ba0 70 75 74 5f 64 65 63 69 6d 61 6c 0d 31 31 38 30 |put_decimal.1180| 00001bb0 20 73 74 6f 72 65 24 3d 73 74 6f 72 65 24 2b 22 | store$=store$+"| 00001bc0 2e 22 0d 31 31 39 30 20 64 65 63 69 6d 61 6c 3d |.".1190 decimal=| 00001bd0 6f 6e 0d 31 32 30 30 20 64 69 67 69 74 73 3d 39 |on.1200 digits=9| 00001be0 0d 31 32 31 30 20 50 52 4f 43 64 69 73 70 6c 61 |.1210 PROCdispla| 00001bf0 79 28 73 74 6f 72 65 24 29 0d 31 32 32 30 20 45 |y(store$).1220 E| 00001c00 4e 44 50 52 4f 43 0d 31 32 34 30 20 44 45 46 50 |NDPROC.1240 DEFP| 00001c10 52 4f 43 61 63 0d 31 32 35 30 20 73 74 6f 72 65 |ROCac.1250 store| 00001c20 24 3d 22 30 22 0d 31 32 36 30 20 74 6f 74 61 6c |$="0".1260 total| 00001c30 24 3d 22 22 0d 31 32 37 30 20 64 65 63 69 6d 61 |$="".1270 decima| 00001c40 6c 3d 6f 66 66 0d 31 32 38 30 20 64 69 67 69 74 |l=off.1280 digit| 00001c50 73 3d 38 0d 31 32 39 30 20 50 52 4f 43 64 69 73 |s=8.1290 PROCdis| 00001c60 70 6c 61 79 28 73 74 6f 72 65 24 29 0d 31 33 30 |play(store$).130| 00001c70 30 20 45 4e 44 50 52 4f 43 0d 31 33 32 30 20 44 |0 ENDPROC.1320 D| 00001c80 45 46 50 52 4f 43 6d 63 0d 31 33 33 30 20 6d 65 |EFPROCmc.1330 me| 00001c90 6d 6f 72 79 24 3d 22 22 0d 31 33 34 30 20 45 4e |mory$="".1340 EN| 00001ca0 44 50 52 4f 43 0d 31 33 36 30 20 44 45 46 50 52 |DPROC.1360 DEFPR| 00001cb0 4f 43 6d 72 0d 31 33 37 30 20 49 46 20 6d 65 6d |OCmr.1370 IF mem| 00001cc0 6f 72 79 24 3d 22 22 20 50 52 4f 43 64 69 73 70 |ory$="" PROCdisp| 00001cd0 6c 61 79 28 22 30 22 29 3a 73 74 6f 72 65 24 3d |lay("0"):store$=| 00001ce0 22 22 3a 45 4e 44 50 52 4f 43 0d 31 33 38 30 20 |"":ENDPROC.1380 | 00001cf0 73 74 6f 72 65 24 3d 6d 65 6d 6f 72 79 24 0d 31 |store$=memory$.1| 00001d00 33 39 30 20 50 52 4f 43 64 69 73 70 6c 61 79 28 |390 PROCdisplay(| 00001d10 73 74 6f 72 65 24 29 0d 31 34 30 30 20 6f 70 65 |store$).1400 ope| 00001d20 72 61 74 69 6f 6e 3d 6f 66 66 0d 31 34 31 30 20 |ration=off.1410 | 00001d30 45 4e 44 50 52 4f 43 0d 31 34 33 30 20 44 45 46 |ENDPROC.1430 DEF| 00001d40 50 52 4f 43 6d 73 0d 31 34 34 30 20 49 46 20 6f |PROCms.1440 IF o| 00001d50 70 65 72 61 74 69 6f 6e 3d 6f 66 66 20 6d 65 6d |peration=off mem| 00001d60 6f 72 79 24 3d 73 74 6f 72 65 24 0d 31 34 35 30 |ory$=store$.1450| 00001d70 20 49 46 20 6f 70 65 72 61 74 69 6f 6e 3d 6f 6e | IF operation=on| 00001d80 20 6d 65 6d 24 3d 4c 45 46 54 24 28 74 6f 74 61 | mem$=LEFT$(tota| 00001d90 6c 24 2c 4c 45 4e 28 74 6f 74 61 6c 24 29 2d 31 |l$,LEN(total$)-1| 00001da0 29 0d 31 34 36 30 20 45 4e 44 50 52 4f 43 0d 31 |).1460 ENDPROC.1| 00001db0 34 38 30 20 44 45 46 50 52 4f 43 69 6e 76 65 72 |480 DEFPROCinver| 00001dc0 73 65 0d 31 34 39 30 20 49 46 20 6f 70 65 72 61 |se.1490 IF opera| 00001dd0 74 69 6f 6e 3d 6f 6e 20 50 52 4f 43 69 6e 76 5f |tion=on PROCinv_| 00001de0 74 6f 74 61 6c 0d 31 35 30 30 20 49 46 20 6f 70 |total.1500 IF op| 00001df0 65 72 61 74 69 6f 6e 3d 6f 66 66 20 50 52 4f 43 |eration=off PROC| 00001e00 69 6e 76 5f 73 74 6f 72 65 0d 31 35 31 30 20 45 |inv_store.1510 E| 00001e10 4e 44 50 52 4f 43 0d 31 35 33 30 20 44 45 46 50 |NDPROC.1530 DEFP| 00001e20 52 4f 43 69 6e 76 5f 74 6f 74 61 6c 0d 31 35 34 |ROCinv_total.154| 00001e30 30 20 49 46 20 74 6f 74 61 6c 24 3d 22 22 20 50 |0 IF total$="" P| 00001e40 52 4f 43 64 69 73 70 6c 61 79 28 22 30 22 29 3a |ROCdisplay("0"):| 00001e50 45 4e 44 50 52 4f 43 0d 31 35 35 30 20 49 46 20 |ENDPROC.1550 IF | 00001e60 4c 45 46 54 24 28 74 6f 74 61 6c 24 2c 31 29 3d |LEFT$(total$,1)=| 00001e70 22 2d 22 20 74 6f 74 61 6c 24 3d 4d 49 44 24 28 |"-" total$=MID$(| 00001e80 74 6f 74 61 6c 24 2c 32 2c 4c 45 4e 28 74 6f 74 |total$,2,LEN(tot| 00001e90 61 6c 24 29 29 3a 50 52 4f 43 64 69 73 70 6c 61 |al$)):PROCdispla| 00001ea0 79 28 4c 45 46 54 24 28 74 6f 74 61 6c 24 2c 4c |y(LEFT$(total$,L| 00001eb0 45 4e 28 74 6f 74 61 6c 24 29 2d 31 29 29 3a 45 |EN(total$)-1)):E| 00001ec0 4e 44 50 52 4f 43 0d 31 35 36 30 20 74 6f 74 61 |NDPROC.1560 tota| 00001ed0 6c 24 3d 22 2d 22 2b 74 6f 74 61 6c 24 0d 31 35 |l$="-"+total$.15| 00001ee0 37 30 20 50 52 4f 43 64 69 73 70 6c 61 79 28 4c |70 PROCdisplay(L| 00001ef0 45 46 54 24 28 74 6f 74 61 6c 24 2c 4c 45 4e 28 |EFT$(total$,LEN(| 00001f00 74 6f 74 61 6c 24 29 2d 31 29 29 0d 31 35 38 30 |total$)-1)).1580| 00001f10 20 45 4e 44 50 52 4f 43 0d 31 36 30 30 20 44 45 | ENDPROC.1600 DE| 00001f20 46 50 52 4f 43 69 6e 76 5f 73 74 6f 72 65 0d 31 |FPROCinv_store.1| 00001f30 36 31 30 20 49 46 20 73 74 6f 72 65 24 3d 22 22 |610 IF store$=""| 00001f40 20 50 52 4f 43 64 69 73 70 6c 61 79 28 22 30 22 | PROCdisplay("0"| 00001f50 29 3a 45 4e 44 50 52 4f 43 0d 31 36 32 30 20 49 |):ENDPROC.1620 I| 00001f60 46 20 4c 45 46 54 24 28 73 74 6f 72 65 24 2c 31 |F LEFT$(store$,1| 00001f70 29 3d 22 2d 22 20 73 74 6f 72 65 24 3d 4d 49 44 |)="-" store$=MID| 00001f80 24 28 73 74 6f 72 65 24 2c 32 2c 4c 45 4e 28 73 |$(store$,2,LEN(s| 00001f90 74 6f 72 65 24 29 29 3a 50 52 4f 43 64 69 73 70 |tore$)):PROCdisp| 00001fa0 6c 61 79 28 73 74 6f 72 65 24 29 3a 45 4e 44 50 |lay(store$):ENDP| 00001fb0 52 4f 43 0d 31 36 33 30 20 73 74 6f 72 65 24 3d |ROC.1630 store$=| 00001fc0 22 2d 22 2b 73 74 6f 72 65 24 0d 31 36 34 30 20 |"-"+store$.1640 | 00001fd0 50 52 4f 43 64 69 73 70 6c 61 79 28 73 74 6f 72 |PROCdisplay(stor| 00001fe0 65 24 29 0d 31 36 35 30 20 45 4e 44 50 52 4f 43 |e$).1650 ENDPROC| 00001ff0 0d 31 36 37 30 20 44 45 46 50 52 4f 43 65 72 72 |.1670 DEFPROCerr| 00002000 6f 72 0d 31 36 38 30 20 49 46 20 45 52 52 3d 31 |or.1680 IF ERR=1| 00002010 37 20 54 48 45 4e 20 45 4e 44 0d 31 36 39 30 20 |7 THEN END.1690 | 00002020 73 74 6f 72 65 24 3d 22 45 72 72 6f 72 22 0d 31 |store$="Error".1| 00002030 37 30 30 20 50 52 4f 43 64 69 73 70 6c 61 79 28 |700 PROCdisplay(| 00002040 73 74 6f 72 65 24 29 0d 31 37 31 30 20 56 44 55 |store$).1710 VDU| 00002050 20 37 0d 31 37 32 30 20 46 4f 52 20 64 65 6c 61 | 7.1720 FOR dela| 00002060 79 3d 30 20 54 4f 20 35 30 30 3a 4e 45 58 54 0d |y=0 TO 500:NEXT.| 00002070 31 37 33 30 20 73 74 6f 72 65 24 3d 22 30 22 0d |1730 store$="0".| 00002080 31 37 34 30 20 74 6f 74 61 6c 24 3d 22 22 0d 31 |1740 total$="".1| 00002090 37 35 30 20 6f 70 65 72 61 74 69 6f 6e 3d 6f 66 |750 operation=of| 000020a0 66 0d 31 37 36 30 20 64 65 63 69 6d 61 6c 3d 6f |f.1760 decimal=o| 000020b0 66 66 0d 31 37 37 30 20 64 69 67 69 74 73 3d 37 |ff.1770 digits=7| 000020c0 0d 31 37 38 30 20 45 4e 44 50 52 4f 43 0d 31 38 |.1780 ENDPROC.18| 000020d0 30 30 20 44 45 46 50 52 4f 43 6d 63 5f 76 61 72 |00 DEFPROCmc_var| 000020e0 69 61 62 6c 65 73 0d 31 38 31 30 20 63 61 6c 63 |iables.1810 calc| 000020f0 75 6c 61 74 6f 72 3d 26 31 45 44 38 0d 31 38 32 |ulator=&1ED8.182| 00002100 30 20 63 61 6c 63 5f 69 63 6f 6e 5f 64 61 74 61 |0 calc_icon_data| 00002110 3d 26 31 46 34 33 0d 31 38 33 30 20 65 72 61 73 |=&1F43.1830 eras| 00002120 65 5f 63 61 6c 63 75 6c 61 74 6f 72 3d 26 31 46 |e_calculator=&1F| 00002130 31 36 0d 31 38 34 30 20 70 6f 69 6e 74 65 72 3d |16.1840 pointer=| 00002140 26 31 39 30 30 0d 31 38 35 30 20 69 63 6f 6e 3d |&1900.1850 icon=| 00002150 26 36 33 0d 31 38 36 30 20 45 4e 44 50 52 4f 43 |&63.1860 ENDPROC| 00002160 0d 53 41 56 45 22 4c 2d 33 2d 49 49 49 22 0d 4e |.SAVE"L-3-III".N| 00002170 45 57 0d 31 30 20 52 45 4d 20 4c 69 73 74 69 6e |EW.10 REM Listin| 00002180 67 20 49 56 0d 32 30 20 52 45 4d 20 42 79 20 47 |g IV.20 REM By G| 00002190 6c 65 6e 6e 20 4d 61 72 73 68 61 6c 6c 0d 33 30 |lenn Marshall.30| 000021a0 20 52 45 4d 20 28 43 29 20 54 68 65 20 4d 69 63 | REM (C) The Mic| 000021b0 72 6f 20 55 73 65 72 0d 35 30 20 49 46 20 50 41 |ro User.50 IF PA| 000021c0 47 45 3c 3e 26 32 31 30 30 20 54 48 45 4e 20 45 |GE<>&2100 THEN E| 000021d0 4e 44 0d 37 30 20 64 69 73 70 6c 61 79 5f 69 63 |ND.70 display_ic| 000021e0 6f 6e 73 3d 26 31 41 39 36 0d 38 30 20 67 65 74 |ons=&1A96.80 get| 000021f0 5f 69 63 6f 6e 5f 73 68 61 70 65 3d 26 31 41 41 |_icon_shape=&1AA| 00002200 46 0d 39 30 20 62 6f 78 3d 26 31 41 43 39 0d 31 |F.90 box=&1AC9.1| 00002210 30 30 20 69 6e 76 65 72 73 65 5f 74 65 78 74 3d |00 inverse_text=| 00002220 26 31 42 38 45 0d 31 31 30 20 72 65 73 74 6f 72 |&1B8E.110 restor| 00002230 65 5f 62 6f 78 3d 26 31 42 31 44 0d 31 32 30 20 |e_box=&1B1D.120 | 00002240 64 72 6f 70 70 65 64 5f 62 6f 78 3d 26 31 42 32 |dropped_box=&1B2| 00002250 41 0d 31 33 30 20 72 65 73 74 6f 72 65 5f 64 72 |A.130 restore_dr| 00002260 6f 70 70 65 64 5f 62 6f 78 3d 26 31 42 38 34 0d |opped_box=&1B84.| 00002270 31 34 30 20 73 70 72 69 74 65 5f 73 61 76 65 3d |140 sprite_save=| 00002280 26 31 42 42 38 0d 31 35 30 20 73 74 72 69 6e 67 |&1BB8.150 string| 00002290 3d 26 31 44 36 35 0d 31 37 30 20 78 6c 62 3d 26 |=&1D65.170 xlb=&| 000022a0 35 30 3a 78 68 62 3d 26 35 31 0d 31 38 30 20 79 |50:xhb=&51.180 y| 000022b0 6c 62 3d 26 35 32 3a 79 68 62 3d 26 35 33 0d 31 |lb=&52:yhb=&53.1| 000022c0 39 30 20 58 31 3d 26 35 34 3a 58 32 3d 26 35 35 |90 X1=&54:X2=&55| 000022d0 0d 32 30 30 20 59 31 3d 26 35 36 3a 59 32 3d 26 |.200 Y1=&56:Y2=&| 000022e0 35 37 0d 32 31 30 20 63 6f 6c 6f 72 3d 26 35 38 |57.210 color=&58| 000022f0 0d 32 32 30 20 73 74 6c 3d 26 35 39 3a 73 74 68 |.220 stl=&59:sth| 00002300 3d 26 35 41 0d 32 33 30 20 70 61 73 73 3d 26 35 |=&5A.230 pass=&5| 00002310 42 0d 32 34 30 20 63 6f 6c 6c 3d 26 35 43 3a 63 |B.240 coll=&5C:c| 00002320 6f 6c 68 3d 26 35 44 0d 32 35 30 20 6d 65 6d 6f |olh=&5D.250 memo| 00002330 72 79 3d 26 35 45 0d 32 36 30 20 70 77 6c 3d 26 |ry=&5E.260 pwl=&| 00002340 35 46 3a 70 77 68 3d 26 36 30 0d 32 37 30 20 77 |5F:pwh=&60.270 w| 00002350 69 6e 64 6f 77 73 3d 26 36 31 0d 32 38 30 20 69 |indows=&61.280 i| 00002360 63 6f 6e 73 3d 26 36 34 0d 32 39 30 20 62 6f 78 |cons=&64.290 box| 00002370 31 3d 26 36 37 0d 33 30 30 20 62 6f 78 32 3d 26 |1=&67.300 box2=&| 00002380 36 38 0d 33 31 30 20 62 6f 78 33 3d 26 36 39 0d |68.310 box3=&69.| 00002390 33 32 30 20 62 6f 78 34 3d 26 36 41 0d 33 33 30 |320 box4=&6A.330| 000023a0 20 64 62 6f 78 31 3d 26 36 42 0d 33 34 30 20 64 | dbox1=&6B.340 d| 000023b0 62 6f 78 32 3d 26 36 43 0d 33 35 30 20 64 62 6f |box2=&6C.350 dbo| 000023c0 78 33 3d 26 36 44 0d 33 36 30 20 67 70 6c 3d 26 |x3=&6D.360 gpl=&| 000023d0 36 45 0d 33 37 30 20 67 70 68 3d 26 36 46 0d 33 |6E.370 gph=&6F.3| 000023e0 38 30 20 6d 65 73 6c 3d 26 37 30 0d 33 39 30 20 |80 mesl=&70.390 | 000023f0 6d 65 73 68 3d 26 37 31 0d 34 31 30 20 46 4f 52 |mesh=&71.410 FOR| 00002400 20 63 6f 64 65 3d 30 20 54 4f 20 32 20 53 54 45 | code=0 TO 2 STE| 00002410 50 20 32 0d 34 32 30 20 50 25 3d 26 31 45 44 38 |P 2.420 P%=&1ED8| 00002420 0d 34 33 30 20 5b 4f 50 54 20 63 6f 64 65 0d 34 |.430 [OPT code.4| 00002430 35 30 20 2e 63 61 6c 65 6e 64 61 72 0d 34 36 30 |50 .calendar.460| 00002440 20 4a 53 52 20 63 61 6c 65 6e 64 61 72 5f 62 6f | JSR calendar_bo| 00002450 78 0d 34 37 30 20 4a 53 52 20 63 61 6c 65 6e 64 |x.470 JSR calend| 00002460 61 72 5f 69 63 6f 6e 73 5f 64 61 74 61 0d 34 38 |ar_icons_data.48| 00002470 30 20 4a 53 52 20 64 69 73 70 6c 61 79 5f 63 61 |0 JSR display_ca| 00002480 6c 65 6e 64 61 72 5f 69 63 6f 6e 73 0d 34 39 30 |lendar_icons.490| 00002490 20 4a 53 52 20 63 61 6c 65 6e 64 61 72 5f 64 61 | JSR calendar_da| 000024a0 79 73 0d 35 30 30 20 72 74 73 0d 35 32 30 20 5c |ys.500 rts.520 \| 000024b0 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c |\\\\\\\\\\\\\\\\| 000024c0 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 0d 35 33 30 20 |\\\\\\\\\\\.530 | 000024d0 5c 5c 5c 5c 20 43 41 4c 45 4e 44 41 52 20 52 4f |\\\\ CALENDAR RO| 000024e0 55 54 49 4e 45 53 20 5c 5c 5c 5c 5c 0d 35 34 30 |UTINES \\\\\.540| 000024f0 20 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c | \\\\\\\\\\\\\\\| 00002500 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 0d 35 35 |\\\\\\\\\\\\\.55| 00002510 30 20 2e 69 6e 70 75 74 5f 62 6f 78 0d 35 36 30 |0 .input_box.560| 00002520 20 4c 44 41 20 26 32 3a 53 54 41 20 73 74 6c 0d | LDA &2:STA stl.| 00002530 35 37 30 20 4c 44 41 20 26 33 3a 43 4c 43 3a 41 |570 LDA &3:CLC:A| 00002540 44 43 20 23 32 3a 53 54 41 20 73 74 68 0d 35 38 |DC #2:STA sth.58| 00002550 30 20 4c 44 41 20 23 33 33 3a 53 54 41 20 58 31 |0 LDA #33:STA X1| 00002560 3a 4c 44 41 20 23 31 33 3a 53 54 41 20 58 32 0d |:LDA #13:STA X2.| 00002570 35 39 30 20 4c 44 41 20 23 39 39 3a 53 54 41 20 |590 LDA #99:STA | 00002580 59 31 3a 4c 44 41 20 23 31 37 3a 53 54 41 20 59 |Y1:LDA #17:STA Y| 00002590 32 0d 36 30 30 20 4c 44 41 20 23 30 3a 53 54 41 |2.600 LDA #0:STA| 000025a0 20 77 69 6e 64 6f 77 73 0d 36 31 30 20 4c 44 41 | windows.610 LDA| 000025b0 20 23 31 3a 53 54 41 20 70 61 73 73 0d 36 32 30 | #1:STA pass.620| 000025c0 20 4c 44 41 20 23 32 35 35 3a 53 54 41 20 62 6f | LDA #255:STA bo| 000025d0 78 31 0d 36 33 30 20 4c 44 41 20 23 30 3a 53 54 |x1.630 LDA #0:ST| 000025e0 41 20 62 6f 78 32 0d 36 34 30 20 4c 44 41 20 23 |A box2.640 LDA #| 000025f0 32 32 34 3a 53 54 41 20 62 6f 78 33 0d 36 35 30 |224:STA box3.650| 00002600 20 4c 44 41 20 23 33 3a 53 54 41 20 62 6f 78 34 | LDA #3:STA box4| 00002610 0d 36 36 30 20 4a 53 52 20 62 6f 78 0d 36 37 30 |.660 JSR box.670| 00002620 20 72 74 73 0d 36 39 30 20 2e 65 72 61 73 65 5f | rts.690 .erase_| 00002630 69 6e 70 75 74 5f 62 6f 78 0d 37 30 30 20 4a 53 |input_box.700 JS| 00002640 52 20 72 65 73 74 6f 72 65 5f 62 6f 78 0d 37 31 |R restore_box.71| 00002650 30 20 72 74 73 0d 37 33 30 20 2e 63 61 6c 65 6e |0 rts.730 .calen| 00002660 64 61 72 5f 62 6f 78 0d 37 34 30 20 4c 44 41 20 |dar_box.740 LDA | 00002670 23 32 32 3a 53 54 41 20 58 31 3a 4c 44 41 20 23 |#22:STA X1:LDA #| 00002680 33 35 3a 53 54 41 20 58 32 0d 37 35 30 20 4c 44 |35:STA X2.750 LD| 00002690 41 20 23 36 32 3a 53 54 41 20 59 31 3a 4c 44 41 |A #62:STA Y1:LDA| 000026a0 20 23 39 34 3a 53 54 41 20 59 32 0d 37 36 30 20 | #94:STA Y2.760 | 000026b0 4c 44 41 20 23 31 3a 53 54 41 20 70 61 73 73 0d |LDA #1:STA pass.| 000026c0 37 37 30 20 4c 44 41 20 23 32 35 35 3a 53 54 41 |770 LDA #255:STA| 000026d0 20 64 62 6f 78 31 0d 37 38 30 20 4c 44 41 20 23 | dbox1.780 LDA #| 000026e0 30 3a 53 54 41 20 64 62 6f 78 32 3a 53 54 41 20 |0:STA dbox2:STA | 000026f0 64 62 6f 78 33 0d 37 39 30 20 4a 53 52 20 64 72 |dbox3.790 JSR dr| 00002700 6f 70 70 65 64 5f 62 6f 78 0d 38 30 30 20 72 74 |opped_box.800 rt| 00002710 73 0d 38 32 30 20 2e 63 61 6c 65 6e 64 61 72 5f |s.820 .calendar_| 00002720 69 63 6f 6e 73 5f 64 61 74 61 0d 38 33 30 20 4c |icons_data.830 L| 00002730 44 41 20 23 34 3a 53 54 41 20 69 63 6f 6e 73 0d |DA #4:STA icons.| 00002740 38 34 30 20 4c 44 41 20 23 63 61 6c 65 6e 64 5f |840 LDA #calend_| 00002750 69 63 6f 6e 73 5f 70 6f 73 20 4d 4f 44 20 32 35 |icons_pos MOD 25| 00002760 36 0d 38 35 30 20 53 54 41 20 67 70 6c 0d 38 36 |6.850 STA gpl.86| 00002770 30 20 4c 44 41 20 23 63 61 6c 65 6e 64 5f 69 63 |0 LDA #calend_ic| 00002780 6f 6e 73 5f 70 6f 73 20 44 49 56 20 32 35 36 0d |ons_pos DIV 256.| 00002790 38 37 30 20 53 54 41 20 67 70 68 0d 38 38 30 20 |870 STA gph.880 | 000027a0 4c 44 41 20 23 63 61 6c 65 6e 64 5f 69 63 6f 6e |LDA #calend_icon| 000027b0 73 5f 64 61 74 61 20 4d 4f 44 20 32 35 36 0d 38 |s_data MOD 256.8| 000027c0 39 30 20 53 54 41 20 63 6f 6c 6c 0d 39 30 30 20 |90 STA coll.900 | 000027d0 4c 44 41 20 23 63 61 6c 65 6e 64 5f 69 63 6f 6e |LDA #calend_icon| 000027e0 73 5f 64 61 74 61 20 44 49 56 20 32 35 36 0d 39 |s_data DIV 256.9| 000027f0 31 30 20 53 54 41 20 63 6f 6c 68 0d 39 32 30 20 |10 STA colh.920 | 00002800 72 74 73 0d 39 34 30 20 2e 64 69 73 70 6c 61 79 |rts.940 .display| 00002810 5f 63 61 6c 65 6e 64 61 72 5f 69 63 6f 6e 73 0d |_calendar_icons.| 00002820 39 35 30 20 4c 44 41 20 23 32 3a 53 54 41 20 70 |950 LDA #2:STA p| 00002830 61 73 73 3a 4a 53 52 20 64 69 73 70 6c 61 79 5f |ass:JSR display_| 00002840 69 63 6f 6e 73 0d 39 36 30 20 4a 53 52 20 67 65 |icons.960 JSR ge| 00002850 74 5f 69 63 6f 6e 5f 73 68 61 70 65 0d 39 37 30 |t_icon_shape.970| 00002860 20 4c 44 41 20 23 33 3a 53 54 41 20 70 61 73 73 | LDA #3:STA pass| 00002870 0d 39 38 30 20 4c 44 41 20 23 30 3a 53 54 41 20 |.980 LDA #0:STA | 00002880 62 6f 78 31 0d 39 39 30 20 4c 44 41 20 23 32 35 |box1.990 LDA #25| 00002890 35 3a 53 54 41 20 62 6f 78 32 0d 31 30 30 30 20 |5:STA box2.1000 | 000028a0 4c 44 41 20 23 36 33 3a 53 54 41 20 62 6f 78 33 |LDA #63:STA box3| 000028b0 0d 31 30 31 30 20 4c 44 41 20 23 32 35 32 3a 53 |.1010 LDA #252:S| 000028c0 54 41 20 62 6f 78 34 0d 31 30 32 30 20 4a 53 52 |TA box4.1020 JSR| 000028d0 20 62 6f 78 0d 31 30 33 30 20 72 74 73 0d 31 30 | box.1030 rts.10| 000028e0 35 30 20 2e 63 61 6c 65 6e 64 61 72 5f 64 61 79 |50 .calendar_day| 000028f0 73 0d 31 30 36 30 20 4a 53 52 20 69 6e 76 65 72 |s.1060 JSR inver| 00002900 73 65 5f 74 65 78 74 0d 31 30 37 30 20 4c 44 41 |se_text.1070 LDA| 00002910 20 23 64 61 79 73 5f 74 65 78 74 20 4d 4f 44 20 | #days_text MOD | 00002920 32 35 36 3a 53 54 41 20 6d 65 73 6c 0d 31 30 38 |256:STA mesl.108| 00002930 30 20 4c 44 41 20 23 64 61 79 73 5f 74 65 78 74 |0 LDA #days_text| 00002940 20 44 49 56 20 32 35 36 3a 53 54 41 20 6d 65 73 | DIV 256:STA mes| 00002950 68 0d 31 30 39 30 20 4a 53 52 20 73 74 72 69 6e |h.1090 JSR strin| 00002960 67 0d 31 31 30 30 20 72 74 73 0d 31 31 32 30 20 |g.1100 rts.1120 | 00002970 2e 65 72 61 73 65 5f 63 61 6c 65 6e 64 61 72 0d |.erase_calendar.| 00002980 31 31 33 30 20 4a 53 52 20 72 65 73 74 6f 72 65 |1130 JSR restore| 00002990 5f 64 72 6f 70 70 65 64 5f 62 6f 78 0d 31 31 34 |_dropped_box.114| 000029a0 30 20 72 74 73 0d 31 31 36 30 20 2e 63 61 6c 65 |0 rts.1160 .cale| 000029b0 6e 64 61 72 5f 69 63 6f 6e 5f 70 6f 73 69 74 69 |ndar_icon_positi| 000029c0 6f 6e 73 0d 31 31 37 30 20 4c 44 41 20 23 35 3a |ons.1170 LDA #5:| 000029d0 53 54 41 20 69 63 6f 6e 73 0d 31 31 38 30 20 4c |STA icons.1180 L| 000029e0 44 41 20 23 63 61 6c 65 6e 64 5f 69 63 6f 6e 73 |DA #calend_icons| 000029f0 5f 70 6f 73 20 4d 4f 44 20 32 35 36 0d 31 31 39 |_pos MOD 256.119| 00002a00 30 20 53 54 41 20 67 70 6c 0d 31 32 30 30 20 4c |0 STA gpl.1200 L| 00002a10 44 41 20 23 63 61 6c 65 6e 64 5f 69 63 6f 6e 73 |DA #calend_icons| 00002a20 5f 70 6f 73 20 44 49 56 20 32 35 36 0d 31 32 31 |_pos DIV 256.121| 00002a30 30 20 53 54 41 20 67 70 68 0d 31 32 32 30 20 72 |0 STA gph.1220 r| 00002a40 74 73 0d 31 32 34 30 20 2e 77 68 69 74 65 5f 62 |ts.1240 .white_b| 00002a50 6f 78 0d 31 32 35 30 20 4c 44 41 20 58 31 3a 50 |ox.1250 LDA X1:P| 00002a60 48 41 3a 4c 44 41 20 59 31 3a 50 48 41 0d 31 32 |HA:LDA Y1:PHA.12| 00002a70 36 30 20 4c 44 41 20 23 32 33 3a 53 54 41 20 58 |60 LDA #23:STA X| 00002a80 31 3a 4c 44 41 20 23 33 33 3a 53 54 41 20 58 32 |1:LDA #33:STA X2| 00002a90 0d 31 32 37 30 20 4c 44 41 20 23 31 30 30 3a 53 |.1270 LDA #100:S| 00002aa0 54 41 20 59 31 3a 4c 44 41 20 23 35 32 3a 53 54 |TA Y1:LDA #52:ST| 00002ab0 41 20 59 32 0d 31 32 38 30 20 4c 44 41 20 23 32 |A Y2.1280 LDA #2| 00002ac0 35 35 3a 53 54 41 20 63 6f 6c 6f 72 0d 31 32 39 |55:STA color.129| 00002ad0 30 20 4c 44 41 20 23 33 3a 53 54 41 20 70 61 73 |0 LDA #3:STA pas| 00002ae0 73 0d 31 33 30 30 20 4a 53 52 20 73 70 72 69 74 |s.1300 JSR sprit| 00002af0 65 5f 73 61 76 65 0d 31 33 31 30 20 50 4c 41 3a |e_save.1310 PLA:| 00002b00 53 54 41 20 59 31 3a 50 4c 41 3a 53 54 41 20 58 |STA Y1:PLA:STA X| 00002b10 31 0d 31 33 32 30 20 72 74 73 0d 31 33 34 30 20 |1.1320 rts.1340 | 00002b20 2e 63 61 6c 65 6e 64 5f 69 63 6f 6e 73 5f 70 6f |.calend_icons_po| 00002b30 73 0d 31 33 35 30 20 45 51 55 44 20 26 30 38 30 |s.1350 EQUD &080| 00002b40 32 34 41 31 37 0d 31 33 36 30 20 45 51 55 44 20 |24A17.1360 EQUD | 00002b50 26 30 38 30 32 34 41 31 41 0d 31 33 37 30 20 45 |&08024A1A.1370 E| 00002b60 51 55 44 20 26 30 38 30 32 34 41 33 33 0d 31 33 |QUD &08024A33.13| 00002b70 38 30 20 45 51 55 44 20 26 30 38 30 32 34 41 33 |80 EQUD &08024A3| 00002b80 36 0d 31 34 30 30 20 45 51 55 44 20 26 30 44 30 |6.1400 EQUD &0D0| 00002b90 41 34 35 32 33 0d 31 34 32 30 20 2e 63 61 6c 65 |A4523.1420 .cale| 00002ba0 6e 64 5f 69 63 6f 6e 73 5f 64 61 74 61 0d 31 34 |nd_icons_data.14| 00002bb0 33 30 20 45 51 55 44 20 26 33 46 46 43 37 46 46 |30 EQUD &3FFC7FF| 00002bc0 45 3a 45 51 55 44 20 26 30 46 46 30 31 46 46 38 |E:EQUD &0FF01FF8| 00002bd0 0d 31 34 34 30 20 45 51 55 44 20 26 30 33 43 30 |.1440 EQUD &03C0| 00002be0 30 37 45 30 3a 45 51 55 44 20 26 30 30 30 30 30 |07E0:EQUD &00000| 00002bf0 31 38 30 0d 31 34 36 30 20 45 51 55 44 20 26 30 |180.1460 EQUD &0| 00002c00 31 38 30 30 30 30 30 3a 45 51 55 44 20 26 30 37 |1800000:EQUD &07| 00002c10 45 30 30 33 43 30 0d 31 34 37 30 20 45 51 55 44 |E003C0.1470 EQUD| 00002c20 20 26 31 46 46 38 30 46 46 30 3a 45 51 55 44 20 | &1FF80FF0:EQUD | 00002c30 26 37 46 46 45 33 46 46 43 0d 31 34 39 30 20 45 |&7FFE3FFC.1490 E| 00002c40 51 55 44 20 26 33 46 46 43 37 46 46 45 3a 45 51 |QUD &3FFC7FFE:EQ| 00002c50 55 44 20 26 30 46 46 30 31 46 46 38 0d 31 35 30 |UD &0FF01FF8.150| 00002c60 30 20 45 51 55 44 20 26 30 33 43 30 30 37 45 30 |0 EQUD &03C007E0| 00002c70 3a 45 51 55 44 20 26 30 30 30 30 30 31 38 30 0d |:EQUD &00000180.| 00002c80 31 35 32 30 20 45 51 55 44 20 26 30 31 38 30 30 |1520 EQUD &01800| 00002c90 30 30 30 3a 45 51 55 44 20 26 30 37 45 30 30 33 |000:EQUD &07E003| 00002ca0 43 30 0d 31 35 33 30 20 45 51 55 44 20 26 31 46 |C0.1530 EQUD &1F| 00002cb0 46 38 30 46 46 30 3a 45 51 55 44 20 26 37 46 46 |F80FF0:EQUD &7FF| 00002cc0 45 33 46 46 43 0d 31 35 35 30 20 2e 64 61 79 73 |E3FFC.1550 .days| 00002cd0 5f 74 65 78 74 0d 31 35 36 30 20 45 51 55 53 20 |_text.1560 EQUS | 00002ce0 43 48 52 24 28 33 31 29 2b 43 48 52 24 28 33 36 |CHR$(31)+CHR$(36| 00002cf0 29 2b 43 48 52 24 28 39 29 2b 22 43 41 4c 45 4e |)+CHR$(9)+"CALEN| 00002d00 44 41 52 22 0d 31 35 37 30 20 45 51 55 53 20 43 |DAR".1570 EQUS C| 00002d10 48 52 24 28 33 31 29 2b 43 48 52 24 28 32 33 29 |HR$(31)+CHR$(23)| 00002d20 2b 43 48 52 24 28 31 31 29 2b 22 53 75 6e 20 4d |+CHR$(11)+"Sun M| 00002d30 6f 6e 20 54 75 65 20 57 65 64 20 54 68 75 20 46 |on Tue Wed Thu F| 00002d40 72 69 20 53 61 74 22 0d 31 35 38 30 20 45 51 55 |ri Sat".1580 EQU| 00002d50 42 20 26 46 46 0d 31 36 30 30 20 2e 63 6f 64 65 |B &FF.1600 .code| 00002d60 5f 65 6e 64 0d 31 36 32 30 20 5d 0d 31 36 33 30 |_end.1620 ].1630| 00002d70 20 4e 45 58 54 20 63 6f 64 65 0d 53 41 56 45 22 | NEXT code.SAVE"| 00002d80 4c 2d 33 2d 49 56 22 0d 4e 45 57 0d 31 30 20 52 |L-3-IV".NEW.10 R| 00002d90 45 4d 20 4c 69 73 74 69 6e 67 20 56 0d 32 30 20 |EM Listing V.20 | 00002da0 52 45 4d 20 42 79 20 47 6c 65 6e 6e 20 4d 61 72 |REM By Glenn Mar| 00002db0 73 68 61 6c 6c 0d 33 30 20 52 45 4d 20 28 43 29 |shall.30 REM (C)| 00002dc0 20 54 68 65 20 4d 69 63 72 6f 20 55 73 65 72 0d | The Micro User.| 00002dd0 35 30 20 49 46 20 50 41 47 45 3c 3e 26 32 31 30 |50 IF PAGE<>&210| 00002de0 30 20 54 48 45 4e 20 45 4e 44 0d 37 30 20 2a 46 |0 THEN END.70 *F| 00002df0 58 33 0d 38 30 20 50 52 4f 43 6d 61 63 68 69 6e |X3.80 PROCmachin| 00002e00 65 5f 76 61 72 69 61 62 6c 65 73 0d 39 30 20 50 |e_variables.90 P| 00002e10 52 4f 43 67 6c 6f 62 61 6c 5f 76 61 72 69 61 62 |ROCglobal_variab| 00002e20 6c 65 73 0d 31 30 30 20 50 52 4f 43 65 6e 74 65 |les.100 PROCente| 00002e30 72 5f 64 61 74 65 0d 31 31 30 20 50 52 4f 43 73 |r_date.110 PROCs| 00002e40 65 74 5f 75 70 5f 64 61 79 73 0d 31 32 30 20 50 |et_up_days.120 P| 00002e50 52 4f 43 73 65 74 5f 75 70 5f 6d 6f 6e 74 68 73 |ROCset_up_months| 00002e60 0d 31 33 30 20 50 52 4f 43 63 61 6c 65 6e 64 65 |.130 PROCcalende| 00002e70 72 5f 62 6f 78 0d 31 35 30 20 3f 69 63 6f 6e 25 |r_box.150 ?icon%| 00002e80 3d 30 0d 31 36 30 20 52 45 50 45 41 54 0d 31 37 |=0.160 REPEAT.17| 00002e90 30 20 20 49 46 20 3f 69 63 6f 6e 25 3c 3e 32 35 |0 IF ?icon%<>25| 00002ea0 35 20 54 48 45 4e 20 50 52 4f 43 64 69 73 70 6c |5 THEN PROCdispl| 00002eb0 61 79 28 46 4e 64 61 79 73 5f 67 6f 6e 65 5f 62 |ay(FNdays_gone_b| 00002ec0 79 29 0d 31 38 30 20 20 43 41 4c 4c 20 63 61 6c |y).180 CALL cal| 00002ed0 65 6e 64 65 72 5f 69 63 6f 6e 5f 70 6f 73 69 74 |ender_icon_posit| 00002ee0 69 6f 6e 73 0d 31 39 30 20 20 43 41 4c 4c 20 70 |ions.190 CALL p| 00002ef0 6f 69 6e 74 65 72 0d 32 30 30 20 20 49 46 20 3f |ointer.200 IF ?| 00002f00 69 63 6f 6e 25 3d 31 20 54 48 45 4e 20 50 52 4f |icon%=1 THEN PRO| 00002f10 43 61 64 64 5f 6d 6f 6e 74 68 0d 32 31 30 20 20 |Cadd_month.210 | 00002f20 49 46 20 3f 69 63 6f 6e 25 3d 32 20 54 48 45 4e |IF ?icon%=2 THEN| 00002f30 20 50 52 4f 43 73 75 62 5f 6d 6f 6e 74 68 0d 32 | PROCsub_month.2| 00002f40 32 30 20 20 49 46 20 3f 69 63 6f 6e 25 3d 33 20 |20 IF ?icon%=3 | 00002f50 54 48 45 4e 20 50 52 4f 43 61 64 64 5f 79 65 61 |THEN PROCadd_yea| 00002f60 72 0d 32 33 30 20 20 49 46 20 3f 69 63 6f 6e 25 |r.230 IF ?icon%| 00002f70 3d 34 20 54 48 45 4e 20 50 52 4f 43 73 75 62 5f |=4 THEN PROCsub_| 00002f80 79 65 61 72 0d 32 34 30 20 20 49 46 20 3f 69 63 |year.240 IF ?ic| 00002f90 6f 6e 25 3c 35 20 54 48 45 4e 20 50 52 4f 43 63 |on%<5 THEN PROCc| 00002fa0 68 65 63 6b 0d 32 35 30 20 55 4e 54 49 4c 20 3f |heck.250 UNTIL ?| 00002fb0 69 63 6f 6e 25 3d 35 0d 32 37 30 20 43 41 4c 4c |icon%=5.270 CALL| 00002fc0 20 65 72 61 73 65 5f 63 61 6c 65 6e 64 65 72 0d | erase_calender.| 00002fd0 32 38 30 20 2a 46 58 32 31 30 2c 31 0d 32 39 30 |280 *FX210,1.290| 00002fe0 20 2a 46 58 33 2c 36 0d 33 30 30 20 2a 46 58 32 | *FX3,6.300 *FX2| 00002ff0 31 30 2c 30 0d 33 32 30 20 43 48 41 49 4e 20 22 |10,0.320 CHAIN "| 00003000 44 45 53 4b 54 4f 50 22 0d 33 34 30 20 45 4e 44 |DESKTOP".340 END| 00003010 0d 33 36 30 20 44 45 46 50 52 4f 43 61 64 64 5f |.360 DEFPROCadd_| 00003020 6d 6f 6e 74 68 0d 33 37 30 20 6d 6f 6e 74 68 25 |month.370 month%| 00003030 3d 6d 6f 6e 74 68 25 2b 31 0d 33 38 30 20 45 4e |=month%+1.380 EN| 00003040 44 50 52 4f 43 0d 34 30 30 20 44 45 46 50 52 4f |DPROC.400 DEFPRO| 00003050 43 61 64 64 5f 79 65 61 72 0d 34 31 30 20 79 65 |Cadd_year.410 ye| 00003060 61 72 25 3d 79 65 61 72 25 2b 31 0d 34 32 30 20 |ar%=year%+1.420 | 00003070 45 4e 44 50 52 4f 43 0d 34 34 30 20 44 45 46 50 |ENDPROC.440 DEFP| 00003080 52 4f 43 73 75 62 5f 79 65 61 72 0d 34 35 30 20 |ROCsub_year.450 | 00003090 79 65 61 72 25 3d 79 65 61 72 25 2d 31 0d 34 36 |year%=year%-1.46| 000030a0 30 20 45 4e 44 50 52 4f 43 0d 34 38 30 20 44 45 |0 ENDPROC.480 DE| 000030b0 46 50 52 4f 43 73 75 62 5f 6d 6f 6e 74 68 0d 34 |FPROCsub_month.4| 000030c0 39 30 20 6d 6f 6e 74 68 25 3d 6d 6f 6e 74 68 25 |90 month%=month%| 000030d0 2d 31 0d 35 30 30 20 45 4e 44 50 52 4f 43 0d 35 |-1.500 ENDPROC.5| 000030e0 32 30 20 44 45 46 50 52 4f 43 63 68 65 63 6b 0d |20 DEFPROCcheck.| 000030f0 35 33 30 20 49 46 20 6d 6f 6e 74 68 25 3e 31 32 |530 IF month%>12| 00003100 20 54 48 45 4e 20 6d 6f 6e 74 68 25 3d 31 3a 79 | THEN month%=1:y| 00003110 65 61 72 25 3d 79 65 61 72 25 2b 31 0d 35 34 30 |ear%=year%+1.540| 00003120 20 49 46 20 6d 6f 6e 74 68 25 3c 31 20 54 48 45 | IF month%<1 THE| 00003130 4e 20 6d 6f 6e 74 68 25 3d 31 32 3a 79 65 61 72 |N month%=12:year| 00003140 25 3d 79 65 61 72 25 2d 31 0d 35 35 30 20 49 46 |%=year%-1.550 IF| 00003150 20 79 65 61 72 25 3d 31 37 35 32 20 54 48 45 4e | year%=1752 THEN| 00003160 20 79 65 61 72 25 3d 31 37 35 33 0d 35 36 30 20 | year%=1753.560 | 00003170 49 46 20 79 65 61 72 25 3d 31 30 30 30 30 20 54 |IF year%=10000 T| 00003180 48 45 4e 20 79 65 61 72 25 3d 39 39 39 39 0d 35 |HEN year%=9999.5| 00003190 37 30 20 45 4e 44 50 52 4f 43 0d 35 39 30 20 44 |70 ENDPROC.590 D| 000031a0 45 46 50 52 4f 43 65 6e 74 65 72 5f 64 61 74 65 |EFPROCenter_date| 000031b0 0d 36 30 30 20 4c 4f 43 41 4c 20 65 6e 74 65 72 |.600 LOCAL enter| 000031c0 24 2c 6b 65 79 31 24 2c 6b 65 79 32 24 2c 6b 65 |$,key1$,key2$,ke| 000031d0 79 33 24 2c 6b 65 79 34 24 0d 36 31 30 20 43 41 |y3$,key4$.610 CA| 000031e0 4c 4c 20 69 6e 70 75 74 5f 62 6f 78 0d 36 32 30 |LL input_box.620| 000031f0 20 43 4f 4c 4f 55 52 20 31 3a 43 4f 4c 4f 55 52 | COLOUR 1:COLOUR| 00003200 20 31 32 38 0d 36 33 30 20 52 45 50 45 41 54 0d | 128.630 REPEAT.| 00003210 36 34 30 20 20 50 52 49 4e 54 20 54 41 42 28 33 |640 PRINT TAB(3| 00003220 34 2c 31 33 29 3b 22 59 65 61 72 20 3d 20 20 20 |4,13);"Year = | 00003230 22 0d 36 35 30 20 20 56 44 55 20 33 31 2c 34 31 |".650 VDU 31,41| 00003240 2c 31 33 0d 36 36 30 20 20 6b 65 79 31 24 3d 47 |,13.660 key1$=G| 00003250 45 54 24 3a 50 52 49 4e 54 20 6b 65 79 31 24 3b |ET$:PRINT key1$;| 00003260 0d 36 37 30 20 20 6b 65 79 32 24 3d 47 45 54 24 |.670 key2$=GET$| 00003270 3a 50 52 49 4e 54 20 6b 65 79 32 24 3b 0d 36 38 |:PRINT key2$;.68| 00003280 30 20 20 6b 65 79 33 24 3d 47 45 54 24 3a 50 52 |0 key3$=GET$:PR| 00003290 49 4e 54 20 6b 65 79 33 24 3b 0d 36 39 30 20 20 |INT key3$;.690 | 000032a0 6b 65 79 34 24 3d 47 45 54 24 3a 50 52 49 4e 54 |key4$=GET$:PRINT| 000032b0 20 6b 65 79 34 24 3b 0d 37 30 30 20 20 79 65 61 | key4$;.700 yea| 000032c0 72 25 3d 28 56 41 4c 28 6b 65 79 31 24 2b 6b 65 |r%=(VAL(key1$+ke| 000032d0 79 32 24 2b 6b 65 79 33 24 2b 6b 65 79 34 24 29 |y2$+key3$+key4$)| 000032e0 29 0d 37 31 30 20 55 4e 54 49 4c 20 28 79 65 61 |).710 UNTIL (yea| 000032f0 72 25 3c 31 30 30 30 30 29 20 41 4e 44 20 28 79 |r%<10000) AND (y| 00003300 65 61 72 25 3e 31 37 35 32 29 0d 37 33 30 20 52 |ear%>1752).730 R| 00003310 45 50 45 41 54 0d 37 34 30 20 20 50 52 49 4e 54 |EPEAT.740 PRINT| 00003320 20 54 41 42 28 33 34 2c 31 33 29 3b 22 4d 6f 6e | TAB(34,13);"Mon| 00003330 74 68 20 3d 20 20 22 0d 37 35 30 20 20 56 44 55 |th = ".750 VDU| 00003340 20 33 31 2c 34 32 2c 31 33 0d 37 36 30 20 20 6b | 31,42,13.760 k| 00003350 65 79 31 24 3d 47 45 54 24 3a 50 52 49 4e 54 20 |ey1$=GET$:PRINT | 00003360 6b 65 79 31 24 3b 0d 37 37 30 20 20 6b 65 79 32 |key1$;.770 key2| 00003370 24 3d 47 45 54 24 3a 50 52 49 4e 54 20 6b 65 79 |$=GET$:PRINT key| 00003380 32 24 3b 0d 37 38 30 20 20 6d 6f 6e 74 68 25 3d |2$;.780 month%=| 00003390 56 41 4c 28 6b 65 79 31 24 2b 6b 65 79 32 24 29 |VAL(key1$+key2$)| 000033a0 0d 37 39 30 20 55 4e 54 49 4c 20 28 6d 6f 6e 74 |.790 UNTIL (mont| 000033b0 68 25 3e 30 29 20 41 4e 44 20 28 6d 6f 6e 74 68 |h%>0) AND (month| 000033c0 25 3c 31 33 29 0d 38 30 30 20 43 41 4c 4c 20 65 |%<13).800 CALL e| 000033d0 72 61 73 65 5f 69 6e 70 75 74 5f 62 6f 78 0d 38 |rase_input_box.8| 000033e0 31 30 20 45 4e 44 50 52 4f 43 0d 38 33 30 20 44 |10 ENDPROC.830 D| 000033f0 45 46 50 52 4f 43 73 65 74 5f 75 70 5f 64 61 79 |EFPROCset_up_day| 00003400 73 0d 38 34 30 20 4c 4f 43 41 4c 20 4c 25 0d 38 |s.840 LOCAL L%.8| 00003410 35 30 20 52 45 53 54 4f 52 45 20 39 30 30 0d 38 |50 RESTORE 900.8| 00003420 36 30 20 46 4f 52 20 4c 25 3d 31 20 54 4f 20 31 |60 FOR L%=1 TO 1| 00003430 32 0d 38 37 30 20 20 52 45 41 44 20 74 6f 74 61 |2.870 READ tota| 00003440 6c 25 28 30 2c 4c 25 29 0d 38 38 30 20 20 74 6f |l%(0,L%).880 to| 00003450 74 61 6c 25 28 31 2c 4c 25 29 3d 74 6f 74 61 6c |tal%(1,L%)=total| 00003460 25 28 31 2c 4c 25 2d 31 29 2b 74 6f 74 61 6c 25 |%(1,L%-1)+total%| 00003470 28 30 2c 4c 25 29 0d 38 39 30 20 4e 45 58 54 0d |(0,L%).890 NEXT.| 00003480 39 30 30 20 44 41 54 41 20 33 31 2c 32 38 2c 33 |900 DATA 31,28,3| 00003490 31 2c 33 30 2c 33 31 2c 33 30 2c 33 31 2c 33 31 |1,30,31,30,31,31| 000034a0 2c 33 30 2c 33 31 2c 33 30 2c 33 31 0d 39 31 30 |,30,31,30,31.910| 000034b0 20 45 4e 44 50 52 4f 43 0d 39 33 30 20 44 45 46 | ENDPROC.930 DEF| 000034c0 50 52 4f 43 73 65 74 5f 75 70 5f 6d 6f 6e 74 68 |PROCset_up_month| 000034d0 73 0d 39 34 30 20 4c 4f 43 41 4c 20 4c 25 0d 39 |s.940 LOCAL L%.9| 000034e0 35 30 20 52 45 53 54 4f 52 45 20 39 39 30 0d 39 |50 RESTORE 990.9| 000034f0 36 30 20 46 4f 52 20 4c 25 3d 31 20 54 4f 20 31 |60 FOR L%=1 TO 1| 00003500 32 0d 39 37 30 20 20 52 45 41 44 20 6d 6f 6e 74 |2.970 READ mont| 00003510 68 24 28 4c 25 29 0d 39 38 30 20 4e 45 58 54 0d |h$(L%).980 NEXT.| 00003520 39 39 30 20 44 41 54 41 20 4a 61 6e 75 61 72 79 |990 DATA January| 00003530 2c 46 65 62 72 75 61 72 79 2c 4d 61 72 63 68 2c |,February,March,| 00003540 41 70 72 69 6c 2c 4d 61 79 2c 4a 75 6e 65 2c 4a |April,May,June,J| 00003550 75 6c 79 2c 41 75 67 75 73 74 2c 53 65 70 74 65 |uly,August,Septe| 00003560 6d 62 65 72 2c 4f 63 74 6f 62 65 72 2c 4e 6f 76 |mber,October,Nov| 00003570 65 6d 62 65 72 2c 44 65 63 65 6d 62 65 72 0d 31 |ember,December.1| 00003580 30 30 30 20 45 4e 44 50 52 4f 43 0d 31 30 32 30 |000 ENDPROC.1020| 00003590 20 44 45 46 20 46 4e 64 61 79 73 5f 67 6f 6e 65 | DEF FNdays_gone| 000035a0 5f 62 79 0d 31 30 33 30 20 4c 4f 43 41 4c 20 73 |_by.1030 LOCAL s| 000035b0 74 61 72 74 25 2c 62 61 73 65 25 2c 67 6f 6e 65 |tart%,base%,gone| 000035c0 5f 79 65 61 72 25 2c 67 6f 6e 65 5f 6d 6f 6e 74 |_year%,gone_mont| 000035d0 68 25 2c 67 6f 6e 65 25 2c 6c 65 61 70 25 0d 31 |h%,gone%,leap%.1| 000035e0 30 34 30 20 42 61 64 6c 65 61 70 25 3d 46 41 4c |040 Badleap%=FAL| 000035f0 53 45 0d 31 30 35 30 20 73 74 61 72 74 25 3d 31 |SE.1050 start%=1| 00003600 37 35 36 0d 31 30 36 30 20 62 61 73 65 25 3d 31 |756.1060 base%=1| 00003610 37 35 33 0d 31 30 37 30 20 67 6f 6e 65 5f 79 65 |753.1070 gone_ye| 00003620 61 72 25 3d 28 79 65 61 72 25 2d 62 61 73 65 25 |ar%=(year%-base%| 00003630 29 2a 33 36 35 0d 31 30 38 30 20 67 6f 6e 65 5f |)*365.1080 gone_| 00003640 6d 6f 6e 74 68 25 3d 74 6f 74 61 6c 25 28 31 2c |month%=total%(1,| 00003650 6d 6f 6e 74 68 25 2d 31 29 0d 31 30 39 30 20 6c |month%-1).1090 l| 00003660 65 61 70 25 3d 30 0d 31 31 30 30 20 49 46 20 79 |eap%=0.1100 IF y| 00003670 65 61 72 25 3c 3d 73 74 61 72 74 25 20 47 4f 54 |ear%<=start% GOT| 00003680 4f 20 31 31 38 30 0d 31 31 31 30 20 46 4f 52 20 |O 1180.1110 FOR | 00003690 6c 6f 6f 70 25 3d 73 74 61 72 74 25 20 54 4f 20 |loop%=start% TO | 000036a0 79 65 61 72 25 20 53 54 45 50 20 34 0d 31 31 32 |year% STEP 4.112| 000036b0 30 20 20 42 61 64 6c 65 61 70 25 3d 46 41 4c 53 |0 Badleap%=FALS| 000036c0 45 0d 31 31 33 30 20 20 6c 65 61 70 25 3d 6c 65 |E.1130 leap%=le| 000036d0 61 70 25 2b 31 0d 31 31 34 30 20 20 49 46 20 28 |ap%+1.1140 IF (| 000036e0 6c 6f 6f 70 25 20 4d 4f 44 20 31 30 30 3d 30 29 |loop% MOD 100=0)| 000036f0 20 41 4e 44 20 28 28 6c 6f 6f 70 25 20 44 49 56 | AND ((loop% DIV| 00003700 20 31 30 30 29 4d 4f 44 20 34 3c 3e 30 29 20 54 | 100)MOD 4<>0) T| 00003710 48 45 4e 20 6c 65 61 70 25 3d 6c 65 61 70 25 2d |HEN leap%=leap%-| 00003720 31 3a 42 61 64 6c 65 61 70 25 3d 54 52 55 45 0d |1:Badleap%=TRUE.| 00003730 31 31 35 30 20 4e 45 58 54 0d 31 31 36 30 20 49 |1150 NEXT.1160 I| 00003740 46 20 28 6d 6f 6e 74 68 25 3c 33 29 20 41 4e 44 |F (month%<3) AND| 00003750 20 28 79 65 61 72 25 20 4d 4f 44 20 34 3d 30 29 | (year% MOD 4=0)| 00003760 20 41 4e 44 20 28 79 65 61 72 25 20 4d 4f 44 20 | AND (year% MOD | 00003770 31 30 30 3c 3e 30 29 20 54 48 45 4e 20 6c 65 61 |100<>0) THEN lea| 00003780 70 25 3d 6c 65 61 70 25 2d 31 0d 31 31 37 30 20 |p%=leap%-1.1170 | 00003790 49 46 20 28 6d 6f 6e 74 68 25 3c 33 29 20 41 4e |IF (month%<3) AN| 000037a0 44 20 28 79 65 61 72 25 20 4d 4f 44 20 31 30 30 |D (year% MOD 100| 000037b0 3d 30 29 20 41 4e 44 20 28 42 61 64 6c 65 61 70 |=0) AND (Badleap| 000037c0 25 3d 46 41 4c 53 45 29 20 54 48 45 4e 20 6c 65 |%=FALSE) THEN le| 000037d0 61 70 25 3d 6c 65 61 70 25 2d 31 0d 31 31 38 30 |ap%=leap%-1.1180| 000037e0 20 67 6f 6e 65 25 3d 67 6f 6e 65 5f 79 65 61 72 | gone%=gone_year| 000037f0 25 2b 67 6f 6e 65 5f 6d 6f 6e 74 68 25 2b 6c 65 |%+gone_month%+le| 00003800 61 70 25 2b 31 0d 31 31 39 30 20 3d 67 6f 6e 65 |ap%+1.1190 =gone| 00003810 25 20 4d 4f 44 20 37 0d 31 32 31 30 20 44 45 46 |% MOD 7.1210 DEF| 00003820 50 52 4f 43 64 69 73 70 6c 61 79 28 73 74 61 72 |PROCdisplay(star| 00003830 74 25 29 0d 31 32 32 30 20 4c 4f 43 41 4c 20 58 |t%).1220 LOCAL X| 00003840 25 2c 59 25 2c 4c 25 2c 45 25 0d 31 32 33 30 20 |%,Y%,L%,E%.1230 | 00003850 59 25 3d 31 33 0d 31 32 34 30 20 58 25 3d 28 73 |Y%=13.1240 X%=(s| 00003860 74 61 72 74 25 2a 35 29 2b 32 34 0d 31 32 35 30 |tart%*5)+24.1250| 00003870 20 45 25 3d 74 6f 74 61 6c 25 28 30 2c 6d 6f 6e | E%=total%(0,mon| 00003880 74 68 25 29 0d 31 32 36 30 20 49 46 20 28 6d 6f |th%).1260 IF (mo| 00003890 6e 74 68 25 3d 32 29 20 41 4e 44 20 28 42 61 64 |nth%=2) AND (Bad| 000038a0 6c 65 61 70 25 3d 46 41 4c 53 45 29 20 41 4e 44 |leap%=FALSE) AND| 000038b0 20 28 79 65 61 72 25 20 4d 4f 44 20 34 3d 30 29 | (year% MOD 4=0)| 000038c0 20 54 48 45 4e 20 45 25 3d 45 25 2b 31 0d 31 32 | THEN E%=E%+1.12| 000038d0 37 30 20 43 41 4c 4c 20 77 68 69 74 65 5f 62 6f |70 CALL white_bo| 000038e0 78 0d 31 32 38 30 20 50 52 49 4e 54 20 54 41 42 |x.1280 PRINT TAB| 000038f0 28 32 33 2c 38 29 3b 22 20 20 20 20 20 22 0d 31 |(23,8);" ".1| 00003900 32 39 30 20 50 52 49 4e 54 20 54 41 42 28 32 33 |290 PRINT TAB(23| 00003910 2c 38 29 3b 6d 6f 6e 74 68 24 28 6d 6f 6e 74 68 |,8);month$(month| 00003920 25 29 0d 31 33 30 30 20 50 52 49 4e 54 20 54 41 |%).1300 PRINT TA| 00003930 42 28 35 32 2c 38 29 3b 79 65 61 72 25 0d 31 33 |B(52,8);year%.13| 00003940 31 30 20 46 4f 52 20 4c 25 3d 31 20 54 4f 20 45 |10 FOR L%=1 TO E| 00003950 25 0d 31 33 32 30 20 20 49 46 20 4c 25 3c 31 30 |%.1320 IF L%<10| 00003960 20 54 48 45 4e 20 50 52 49 4e 54 20 54 41 42 28 | THEN PRINT TAB(| 00003970 58 25 2c 59 25 29 3b 22 20 22 3b 4c 25 3b 20 45 |X%,Y%);" ";L%; E| 00003980 4c 53 45 20 50 52 49 4e 54 20 54 41 42 28 58 25 |LSE PRINT TAB(X%| 00003990 2c 59 25 29 3b 4c 25 3b 0d 31 33 33 30 20 58 25 |,Y%);L%;.1330 X%| 000039a0 3d 58 25 2b 35 0d 31 33 34 30 20 49 46 20 58 25 |=X%+5.1340 IF X%| 000039b0 3e 35 35 20 54 48 45 4e 20 59 25 3d 59 25 2b 31 |>55 THEN Y%=Y%+1| 000039c0 3a 58 25 3d 32 34 0d 31 33 35 30 20 4e 45 58 54 |:X%=24.1350 NEXT| 000039d0 0d 31 33 36 30 20 45 4e 44 50 52 4f 43 0d 31 33 |.1360 ENDPROC.13| 000039e0 38 30 20 44 45 46 50 52 4f 43 63 61 6c 65 6e 64 |80 DEFPROCcalend| 000039f0 65 72 5f 62 6f 78 0d 31 33 39 30 20 43 41 4c 4c |er_box.1390 CALL| 00003a00 20 63 61 6c 65 6e 64 65 72 0d 31 34 30 30 20 45 | calender.1400 E| 00003a10 4e 44 50 52 4f 43 0d 31 34 32 30 20 44 45 46 50 |NDPROC.1420 DEFP| 00003a20 52 4f 43 67 6c 6f 62 61 6c 5f 76 61 72 69 61 62 |ROCglobal_variab| 00003a30 6c 65 73 0d 31 34 33 30 20 79 65 61 72 25 3d 30 |les.1430 year%=0| 00003a40 0d 31 34 34 30 20 6d 6f 6e 74 68 25 3d 30 0d 31 |.1440 month%=0.1| 00003a50 34 35 30 20 42 61 64 4c 65 61 70 25 3d 46 41 4c |450 BadLeap%=FAL| 00003a60 53 45 0d 31 34 36 30 20 3f 69 63 6f 6e 25 3d 30 |SE.1460 ?icon%=0| 00003a70 0d 31 34 37 30 20 44 49 4d 20 74 6f 74 61 6c 25 |.1470 DIM total%| 00003a80 28 31 2c 31 32 29 0d 31 34 38 30 20 44 49 4d 20 |(1,12).1480 DIM | 00003a90 6d 6f 6e 74 68 24 28 31 32 29 0d 31 34 39 30 20 |month$(12).1490 | 00003aa0 45 4e 44 50 52 4f 43 0d 31 35 31 30 20 44 45 46 |ENDPROC.1510 DEF| 00003ab0 50 52 4f 43 6d 61 63 68 69 6e 65 5f 76 61 72 69 |PROCmachine_vari| 00003ac0 61 62 6c 65 73 0d 31 35 32 30 20 69 63 6f 6e 25 |ables.1520 icon%| 00003ad0 3d 26 36 33 0d 31 35 33 30 20 69 6e 70 75 74 5f |=&63.1530 input_| 00003ae0 62 6f 78 3d 26 31 45 45 35 0d 31 35 34 30 20 65 |box=&1EE5.1540 e| 00003af0 72 61 73 65 5f 69 6e 70 75 74 5f 62 6f 78 3d 26 |rase_input_box=&| 00003b00 31 46 31 43 0d 31 35 35 30 20 63 61 6c 65 6e 64 |1F1C.1550 calend| 00003b10 65 72 3d 26 31 45 44 38 0d 31 35 36 30 20 65 72 |er=&1ED8.1560 er| 00003b20 61 73 65 5f 63 61 6c 65 6e 64 65 72 3d 26 31 46 |ase_calender=&1F| 00003b30 38 38 0d 31 35 37 30 20 63 61 6c 65 6e 64 65 72 |88.1570 calender| 00003b40 5f 69 63 6f 6e 5f 70 6f 73 69 74 69 6f 6e 73 3d |_icon_positions=| 00003b50 26 31 46 38 43 0d 31 35 38 30 20 70 6f 69 6e 74 |&1F8C.1580 point| 00003b60 65 72 3d 26 31 39 30 30 0d 31 35 39 30 20 77 68 |er=&1900.1590 wh| 00003b70 69 74 65 5f 62 6f 78 3d 26 31 46 39 39 0d 31 36 |ite_box=&1F99.16| 00003b80 30 30 20 45 4e 44 50 52 4f 43 0d 53 41 56 45 22 |00 ENDPROC.SAVE"| 00003b90 4c 2d 33 2d 56 22 0d 4e 45 57 0d 31 30 20 52 45 |L-3-V".NEW.10 RE| 00003ba0 4d 20 4c 69 73 74 69 6e 67 20 56 49 0d 32 30 20 |M Listing VI.20 | 00003bb0 52 45 4d 20 42 79 20 47 6c 65 6e 6e 20 4d 61 72 |REM By Glenn Mar| 00003bc0 73 68 61 6c 6c 0d 33 30 20 52 45 4d 20 28 43 29 |shall.30 REM (C)| 00003bd0 20 54 68 65 20 4d 69 63 72 6f 20 55 73 65 72 0d | The Micro User.| 00003be0 35 30 20 49 46 20 50 41 47 45 3c 3e 26 31 45 30 |50 IF PAGE<>&1E0| 00003bf0 30 20 54 48 45 4e 20 45 4e 44 0d 37 30 20 78 6c |0 THEN END.70 xl| 00003c00 62 3d 26 35 30 3a 78 68 62 3d 26 35 31 0d 38 30 |b=&50:xhb=&51.80| 00003c10 20 79 6c 62 3d 26 35 32 3a 79 68 62 3d 26 35 33 | ylb=&52:yhb=&53| 00003c20 0d 39 30 20 58 31 3d 26 35 34 3a 58 32 3d 26 35 |.90 X1=&54:X2=&5| 00003c30 35 0d 31 30 30 20 59 31 3d 26 35 36 3a 59 32 3d |5.100 Y1=&56:Y2=| 00003c40 26 35 37 0d 31 31 30 20 63 6f 6c 6f 72 3d 26 35 |&57.110 color=&5| 00003c50 38 0d 31 32 30 20 73 74 6c 3d 26 35 39 3a 73 74 |8.120 stl=&59:st| 00003c60 68 3d 26 35 41 0d 31 33 30 20 70 61 73 73 3d 26 |h=&5A.130 pass=&| 00003c70 35 42 0d 31 34 30 20 63 6f 6c 6c 3d 26 35 43 3a |5B.140 coll=&5C:| 00003c80 63 6f 6c 68 3d 26 35 44 0d 31 35 30 20 6d 65 6d |colh=&5D.150 mem| 00003c90 6f 72 79 3d 26 35 45 0d 31 36 30 20 70 77 6c 3d |ory=&5E.160 pwl=| 00003ca0 26 35 46 3a 70 77 68 3d 26 36 30 0d 31 37 30 20 |&5F:pwh=&60.170 | 00003cb0 77 69 6e 64 6f 77 73 3d 26 36 31 0d 31 38 30 20 |windows=&61.180 | 00003cc0 62 6f 78 31 3d 26 36 37 0d 31 39 30 20 62 6f 78 |box1=&67.190 box| 00003cd0 32 3d 26 36 38 0d 32 30 30 20 62 6f 78 33 3d 26 |2=&68.200 box3=&| 00003ce0 36 39 0d 32 31 30 20 62 6f 78 34 3d 26 36 41 0d |69.210 box4=&6A.| 00003cf0 32 33 30 20 70 61 72 61 6d 73 3d 26 37 32 0d 32 |230 params=&72.2| 00003d00 34 30 20 70 6f 69 6e 74 36 30 30 6c 3d 26 37 33 |40 point600l=&73| 00003d10 0d 32 35 30 20 70 6f 69 6e 74 36 30 30 68 3d 26 |.250 point600h=&| 00003d20 37 34 0d 32 36 30 20 62 6c 6f 63 6b 6c 3d 26 37 |74.260 blockl=&7| 00003d30 35 0d 32 37 30 20 62 6c 6f 63 6b 68 3d 26 37 36 |5.270 blockh=&76| 00003d40 0d 32 38 30 20 6c 65 6e 67 74 68 3d 26 37 37 0d |.280 length=&77.| 00003d50 32 39 30 20 78 63 68 61 72 3d 26 37 38 0d 33 30 |290 xchar=&78.30| 00003d60 30 20 79 63 68 61 72 3d 26 37 39 0d 33 31 30 20 |0 ychar=&79.310 | 00003d70 63 6c 69 63 6b 65 64 3d 26 37 41 0d 33 32 30 20 |clicked=&7A.320 | 00003d80 6c 69 6e 65 3d 26 37 42 0d 33 33 30 20 68 65 61 |line=&7B.330 hea| 00003d90 64 5f 6c 65 6e 67 74 68 3d 26 37 43 0d 33 35 30 |d_length=&7C.350| 00003da0 20 46 4f 52 20 63 6f 64 65 3d 30 20 54 4f 20 32 | FOR code=0 TO 2| 00003db0 20 53 54 45 50 20 32 0d 33 36 30 20 50 25 3d 26 | STEP 2.360 P%=&| 00003dc0 31 39 30 30 0d 33 37 30 20 5b 4f 50 54 20 63 6f |1900.370 [OPT co| 00003dd0 64 65 0d 33 39 30 20 2e 69 6e 69 74 69 61 6c 69 |de.390 .initiali| 00003de0 73 65 5f 6d 65 6e 75 0d 34 30 30 20 4c 44 41 20 |se_menu.400 LDA | 00003df0 26 32 3a 53 54 41 20 73 74 6c 0d 34 31 30 20 4c |&2:STA stl.410 L| 00003e00 44 41 20 26 33 3a 43 4c 43 3a 41 44 43 20 23 31 |DA &3:CLC:ADC #1| 00003e10 3a 53 54 41 20 73 74 68 0d 34 32 30 20 4c 44 41 |:STA sth.420 LDA| 00003e20 20 23 30 3a 53 54 41 20 77 69 6e 64 6f 77 73 0d | #0:STA windows.| 00003e30 34 33 30 20 72 74 73 0d 34 35 30 20 2e 6d 65 6e |430 rts.450 .men| 00003e40 75 5f 64 6f 77 6e 0d 34 36 30 20 4a 53 52 20 72 |u_down.460 JSR r| 00003e50 65 61 64 5f 62 6c 6f 63 6b 0d 34 37 30 20 4a 53 |ead_block.470 JS| 00003e60 52 20 6d 65 6e 75 5f 62 6f 78 5f 73 69 7a 65 0d |R menu_box_size.| 00003e70 34 38 30 20 4a 53 52 20 64 72 61 77 5f 6d 65 6e |480 JSR draw_men| 00003e80 75 5f 62 6f 78 0d 34 39 30 20 4a 53 52 20 74 69 |u_box.490 JSR ti| 00003e90 74 6c 65 0d 35 30 30 20 4a 53 52 20 77 72 69 74 |tle.500 JSR writ| 00003ea0 65 5f 74 65 78 74 0d 35 31 30 20 4a 53 52 20 72 |e_text.510 JSR r| 00003eb0 65 73 74 6f 72 65 5f 62 6f 78 0d 35 32 30 20 72 |estore_box.520 r| 00003ec0 74 73 0d 35 34 30 20 2e 72 65 61 64 5f 62 6c 6f |ts.540 .read_blo| 00003ed0 63 6b 0d 35 35 30 20 4c 44 41 20 26 36 30 30 3a |ck.550 LDA &600:| 00003ee0 53 45 43 3a 53 42 43 20 23 37 3a 53 54 41 20 70 |SEC:SBC #7:STA p| 00003ef0 61 72 61 6d 73 0d 35 36 30 20 4c 44 41 20 26 36 |arams.560 LDA &6| 00003f00 30 31 3a 53 54 41 20 62 6f 78 31 0d 35 37 30 20 |01:STA box1.570 | 00003f10 4c 44 41 20 26 36 30 34 3a 53 54 41 20 62 6f 78 |LDA &604:STA box| 00003f20 32 0d 35 38 30 20 4c 44 41 20 26 36 30 37 3a 53 |2.580 LDA &607:S| 00003f30 54 41 20 62 6f 78 33 0d 35 39 30 20 4c 44 41 20 |TA box3.590 LDA | 00003f40 26 36 30 41 3a 53 54 41 20 62 6f 78 34 0d 36 30 |&60A:STA box4.60| 00003f50 30 20 4c 44 41 20 26 36 30 44 3a 53 54 41 20 78 |0 LDA &60D:STA x| 00003f60 63 68 61 72 0d 36 31 30 20 4c 44 41 20 26 36 31 |char.610 LDA &61| 00003f70 30 3a 53 54 41 20 79 63 68 61 72 0d 36 32 30 20 |0:STA ychar.620 | 00003f80 72 74 73 0d 36 34 30 20 2e 6d 65 6e 75 5f 62 6f |rts.640 .menu_bo| 00003f90 78 5f 73 69 7a 65 0d 36 35 30 20 2e 78 31 5f 76 |x_size.650 .x1_v| 00003fa0 61 6c 75 65 0d 36 36 30 20 4c 44 41 20 78 63 68 |alue.660 LDA xch| 00003fb0 61 72 3a 53 45 43 3a 53 42 43 20 23 31 3a 53 54 |ar:SEC:SBC #1:ST| 00003fc0 41 20 58 31 0d 36 37 30 20 2e 79 31 5f 76 61 6c |A X1.670 .y1_val| 00003fd0 75 65 0d 36 38 30 20 4c 44 41 20 79 63 68 61 72 |ue.680 LDA ychar| 00003fe0 3a 41 53 4c 20 41 3a 41 53 4c 20 41 3a 41 53 4c |:ASL A:ASL A:ASL| 00003ff0 20 41 0d 36 39 30 20 53 45 43 3a 53 42 43 20 23 | A.690 SEC:SBC #| 00004000 31 32 3a 53 54 41 20 59 31 0d 37 30 30 20 2e 79 |12:STA Y1.700 .y| 00004010 32 5f 76 61 6c 75 65 0d 37 31 30 20 4c 44 41 20 |2_value.710 LDA | 00004020 70 61 72 61 6d 73 3a 43 4c 43 3a 41 44 43 20 23 |params:CLC:ADC #| 00004030 32 3a 41 53 4c 20 41 0d 37 32 30 20 41 53 4c 20 |2:ASL A.720 ASL | 00004040 41 3a 41 53 4c 20 41 3a 43 4c 43 3a 41 44 43 20 |A:ASL A:CLC:ADC | 00004050 23 38 3a 53 54 41 20 59 32 0d 37 33 30 20 4a 53 |#8:STA Y2.730 JS| 00004060 52 20 78 32 5f 76 61 6c 75 65 0d 37 34 30 20 72 |R x2_value.740 r| 00004070 74 73 0d 37 36 30 20 2e 78 32 5f 76 61 6c 75 65 |ts.760 .x2_value| 00004080 0d 37 37 30 20 4c 44 41 20 23 30 3a 53 54 41 20 |.770 LDA #0:STA | 00004090 6c 65 6e 67 74 68 0d 37 38 30 20 4c 44 41 20 23 |length.780 LDA #| 000040a0 26 31 33 3a 53 54 41 20 70 6f 69 6e 74 36 30 30 |&13:STA point600| 000040b0 6c 0d 37 39 30 20 4c 44 41 20 23 26 30 36 3a 53 |l.790 LDA #&06:S| 000040c0 54 41 20 70 6f 69 6e 74 36 30 30 68 0d 38 30 30 |TA point600h.800| 000040d0 20 4c 44 58 20 70 61 72 61 6d 73 0d 38 31 30 20 | LDX params.810 | 000040e0 2e 6c 65 6e 67 74 68 5f 6c 6f 6f 70 0d 38 32 30 |.length_loop.820| 000040f0 20 4a 53 52 20 70 6f 69 6e 74 5f 36 30 30 0d 38 | JSR point_600.8| 00004100 33 30 20 4c 44 41 20 28 62 6c 6f 63 6b 6c 29 2c |30 LDA (blockl),| 00004110 59 0d 38 34 30 20 43 4d 50 20 6c 65 6e 67 74 68 |Y.840 CMP length| 00004120 3a 42 43 43 20 73 6d 61 6c 6c 65 72 0d 38 35 30 |:BCC smaller.850| 00004130 20 53 54 41 20 6c 65 6e 67 74 68 0d 38 36 30 20 | STA length.860 | 00004140 2e 73 6d 61 6c 6c 65 72 0d 38 37 30 20 4a 53 52 |.smaller.870 JSR| 00004150 20 69 6e 63 5f 36 30 30 0d 38 38 30 20 44 45 58 | inc_600.880 DEX| 00004160 3a 42 4e 45 20 6c 65 6e 67 74 68 5f 6c 6f 6f 70 |:BNE length_loop| 00004170 0d 38 39 30 20 4c 44 41 20 6c 65 6e 67 74 68 3a |.890 LDA length:| 00004180 43 4c 43 3a 41 44 43 20 23 32 3a 53 54 41 20 58 |CLC:ADC #2:STA X| 00004190 32 0d 39 30 30 20 72 74 73 0d 39 32 30 20 2e 74 |2.900 rts.920 .t| 000041a0 69 74 6c 65 0d 39 33 30 20 4c 44 41 20 58 31 3a |itle.930 LDA X1:| 000041b0 50 48 41 3a 4c 44 41 20 59 31 3a 50 48 41 0d 39 |PHA:LDA Y1:PHA.9| 000041c0 34 30 20 4c 44 41 20 58 32 3a 50 48 41 3a 4c 44 |40 LDA X2:PHA:LD| 000041d0 41 20 59 32 3a 50 48 41 0d 39 35 30 20 4c 44 41 |A Y2:PHA.950 LDA| 000041e0 20 79 63 68 61 72 3a 50 48 41 3a 4c 44 41 20 78 | ychar:PHA:LDA x| 000041f0 63 68 61 72 3a 50 48 41 0d 39 36 30 20 4c 44 41 |char:PHA.960 LDA| 00004200 20 23 26 31 33 3a 53 54 41 20 70 6f 69 6e 74 36 | #&13:STA point6| 00004210 30 30 6c 0d 39 37 30 20 4c 44 41 20 23 26 30 36 |00l.970 LDA #&06| 00004220 3a 53 54 41 20 70 6f 69 6e 74 36 30 30 68 0d 39 |:STA point600h.9| 00004230 38 30 20 4a 53 52 20 70 6f 69 6e 74 5f 36 30 30 |80 JSR point_600| 00004240 0d 39 39 30 20 4c 44 41 20 62 6f 78 31 3a 42 4e |.990 LDA box1:BN| 00004250 45 20 77 68 69 74 65 5f 62 61 63 6b 31 0d 31 30 |E white_back1.10| 00004260 30 30 20 4a 53 52 20 69 6e 76 65 72 73 65 5f 74 |00 JSR inverse_t| 00004270 65 78 74 3a 4a 4d 50 20 70 61 73 74 5f 63 6f 6c |ext:JMP past_col| 00004280 6f 75 72 0d 31 30 31 30 20 2e 77 68 69 74 65 5f |our.1010 .white_| 00004290 62 61 63 6b 31 0d 31 30 32 30 20 4a 53 52 20 6e |back1.1020 JSR n| 000042a0 6f 72 6d 61 6c 5f 74 65 78 74 0d 31 30 33 30 20 |ormal_text.1030 | 000042b0 2e 70 61 73 74 5f 63 6f 6c 6f 75 72 0d 31 30 34 |.past_colour.104| 000042c0 30 20 4c 44 41 20 28 62 6c 6f 63 6b 6c 29 2c 59 |0 LDA (blockl),Y| 000042d0 0d 31 30 35 30 20 54 41 58 3a 53 54 41 20 68 65 |.1050 TAX:STA he| 000042e0 61 64 5f 6c 65 6e 67 74 68 0d 31 30 36 30 20 4c |ad_length.1060 L| 000042f0 44 41 20 6c 65 6e 67 74 68 3a 53 45 43 3a 53 42 |DA length:SEC:SB| 00004300 43 20 68 65 61 64 5f 6c 65 6e 67 74 68 0d 31 30 |C head_length.10| 00004310 37 30 20 4c 53 52 20 41 3a 41 44 43 20 78 63 68 |70 LSR A:ADC xch| 00004320 61 72 3a 53 54 41 20 78 63 68 61 72 0d 31 30 38 |ar:STA xchar.108| 00004330 30 20 44 45 43 20 79 63 68 61 72 0d 31 30 39 30 |0 DEC ychar.1090| 00004340 20 4c 44 41 20 23 33 31 3a 4a 53 52 20 26 46 46 | LDA #31:JSR &FF| 00004350 45 45 3a 4c 44 41 20 78 63 68 61 72 0d 31 31 30 |EE:LDA xchar.110| 00004360 30 20 4a 53 52 20 26 46 46 45 45 3a 4c 44 41 20 |0 JSR &FFEE:LDA | 00004370 79 63 68 61 72 3a 4a 53 52 20 26 46 46 45 45 0d |ychar:JSR &FFEE.| 00004380 31 31 31 30 20 2e 74 69 74 6c 65 5f 6c 6f 6f 70 |1110 .title_loop| 00004390 0d 31 31 32 30 20 49 4e 59 3a 4c 44 41 20 28 62 |.1120 INY:LDA (b| 000043a0 6c 6f 63 6b 6c 29 2c 59 3a 4a 53 52 20 26 46 46 |lockl),Y:JSR &FF| 000043b0 45 45 0d 31 31 33 30 20 44 45 58 3a 42 4e 45 20 |EE.1130 DEX:BNE | 000043c0 74 69 74 6c 65 5f 6c 6f 6f 70 0d 31 31 34 30 20 |title_loop.1140 | 000043d0 4c 44 41 20 78 63 68 61 72 3a 53 54 41 20 58 31 |LDA xchar:STA X1| 000043e0 0d 31 31 35 30 20 4c 44 41 20 79 63 68 61 72 3a |.1150 LDA ychar:| 000043f0 41 53 4c 20 41 3a 41 53 4c 20 41 3a 41 53 4c 20 |ASL A:ASL A:ASL | 00004400 41 0d 31 31 36 30 20 43 4c 43 3a 41 44 43 20 23 |A.1160 CLC:ADC #| 00004410 38 3a 53 54 41 20 59 31 3a 49 4e 43 20 59 31 0d |8:STA Y1:INC Y1.| 00004420 31 31 37 30 20 4c 44 41 20 68 65 61 64 5f 6c 65 |1170 LDA head_le| 00004430 6e 67 74 68 3a 53 54 41 20 58 32 0d 31 31 38 30 |ngth:STA X2.1180| 00004440 20 4c 44 41 20 23 31 3a 53 54 41 20 59 32 0d 31 | LDA #1:STA Y2.1| 00004450 31 39 30 20 4c 44 41 20 23 33 3a 53 54 41 20 70 |190 LDA #3:STA p| 00004460 61 73 73 3a 4c 44 41 20 62 6f 78 32 3a 45 4f 52 |ass:LDA box2:EOR| 00004470 20 23 26 46 46 0d 31 32 30 30 20 53 54 41 20 63 | #&FF.1200 STA c| 00004480 6f 6c 6f 72 3a 4a 53 52 20 73 70 72 69 74 65 5f |olor:JSR sprite_| 00004490 73 61 76 65 0d 31 32 31 30 20 50 4c 41 3a 53 54 |save.1210 PLA:ST| 000044a0 41 20 78 63 68 61 72 3a 50 4c 41 3a 53 54 41 20 |A xchar:PLA:STA | 000044b0 79 63 68 61 72 0d 31 32 32 30 20 49 4e 43 20 79 |ychar.1220 INC y| 000044c0 63 68 61 72 0d 31 32 33 30 20 50 4c 41 3a 53 54 |char.1230 PLA:ST| 000044d0 41 20 59 32 3a 50 4c 41 3a 53 54 41 20 58 32 0d |A Y2:PLA:STA X2.| 000044e0 31 32 34 30 20 50 4c 41 3a 53 54 41 20 59 31 3a |1240 PLA:STA Y1:| 000044f0 50 4c 41 3a 53 54 41 20 58 31 0d 31 32 35 30 20 |PLA:STA X1.1250 | 00004500 72 74 73 0d 31 32 37 30 20 2e 77 72 69 74 65 5f |rts.1270 .write_| 00004510 74 65 78 74 0d 31 32 38 30 20 4c 44 41 20 70 61 |text.1280 LDA pa| 00004520 72 61 6d 73 3a 53 54 41 20 6c 69 6e 65 0d 31 32 |rams:STA line.12| 00004530 39 30 20 2e 77 72 69 74 65 5f 6c 6f 6f 70 0d 31 |90 .write_loop.1| 00004540 33 30 30 20 4c 44 41 20 70 61 72 61 6d 73 3a 50 |300 LDA params:P| 00004550 48 41 0d 31 33 31 30 20 4c 44 41 20 79 63 68 61 |HA.1310 LDA ycha| 00004560 72 3a 50 48 41 0d 31 33 32 30 20 4c 44 41 20 23 |r:PHA.1320 LDA #| 00004570 26 31 36 3a 53 54 41 20 70 6f 69 6e 74 36 30 30 |&16:STA point600| 00004580 6c 0d 31 33 33 30 20 4c 44 41 20 23 26 30 36 3a |l.1330 LDA #&06:| 00004590 53 54 41 20 70 6f 69 6e 74 36 30 30 68 0d 31 33 |STA point600h.13| 000045a0 34 30 20 4c 44 41 20 23 26 46 46 3a 53 54 41 20 |40 LDA #&FF:STA | 000045b0 63 6c 69 63 6b 65 64 0d 31 33 35 30 20 2e 77 72 |clicked.1350 .wr| 000045c0 69 74 65 5f 6c 6f 6f 70 32 0d 31 33 36 30 20 4a |ite_loop2.1360 J| 000045d0 53 52 20 70 6f 69 6e 74 5f 36 30 30 0d 31 33 37 |SR point_600.137| 000045e0 30 20 4c 44 41 20 28 62 6c 6f 63 6b 6c 29 2c 59 |0 LDA (blockl),Y| 000045f0 3a 54 41 58 0d 31 33 38 30 20 4c 44 41 20 62 6f |:TAX.1380 LDA bo| 00004600 78 31 3a 42 4e 45 20 62 6c 61 63 6b 5f 62 61 63 |x1:BNE black_bac| 00004610 6b 0d 31 33 39 30 20 4a 53 52 20 77 68 69 74 65 |k.1390 JSR white| 00004620 5f 62 61 63 6b 67 72 6f 75 6e 64 0d 31 34 30 30 |_background.1400| 00004630 20 4a 4d 50 20 70 61 73 74 5f 63 6f 6c 6f 75 72 | JMP past_colour| 00004640 32 0d 31 34 31 30 20 2e 62 6c 61 63 6b 5f 62 61 |2.1410 .black_ba| 00004650 63 6b 0d 31 34 32 30 20 4a 53 52 20 62 6c 61 63 |ck.1420 JSR blac| 00004660 6b 5f 62 61 63 6b 67 72 6f 75 6e 64 0d 31 34 33 |k_background.143| 00004670 30 20 2e 70 61 73 74 5f 63 6f 6c 6f 75 72 32 0d |0 .past_colour2.| 00004680 31 34 34 30 20 4c 44 41 20 23 33 31 3a 4a 53 52 |1440 LDA #31:JSR| 00004690 20 26 46 46 45 45 3a 4c 44 41 20 78 63 68 61 72 | &FFEE:LDA xchar| 000046a0 0d 31 34 35 30 20 4a 53 52 20 26 46 46 45 45 3a |.1450 JSR &FFEE:| 000046b0 4c 44 41 20 79 63 68 61 72 3a 4a 53 52 20 26 46 |LDA ychar:JSR &F| 000046c0 46 45 45 0d 31 34 36 30 20 2e 6c 69 6e 65 5f 6c |FEE.1460 .line_l| 000046d0 6f 6f 70 0d 31 34 37 30 20 49 4e 59 3a 4c 44 41 |oop.1470 INY:LDA| 000046e0 20 28 62 6c 6f 63 6b 6c 29 2c 59 3a 4a 53 52 20 | (blockl),Y:JSR | 000046f0 26 46 46 45 45 0d 31 34 38 30 20 44 45 58 3a 42 |&FFEE.1480 DEX:B| 00004700 4e 45 20 6c 69 6e 65 5f 6c 6f 6f 70 0d 31 34 39 |NE line_loop.149| 00004710 30 20 49 4e 43 20 79 63 68 61 72 3a 4a 53 52 20 |0 INC ychar:JSR | 00004720 69 6e 63 5f 36 30 30 0d 31 35 30 30 20 44 45 43 |inc_600.1500 DEC| 00004730 20 70 61 72 61 6d 73 3a 42 4e 45 20 77 72 69 74 | params:BNE writ| 00004740 65 5f 6c 6f 6f 70 32 0d 31 35 31 30 20 50 4c 41 |e_loop2.1510 PLA| 00004750 3a 53 54 41 20 79 63 68 61 72 0d 31 35 32 30 20 |:STA ychar.1520 | 00004760 50 4c 41 3a 53 54 41 20 70 61 72 61 6d 73 0d 31 |PLA:STA params.1| 00004770 35 33 30 20 4a 53 52 20 63 68 65 63 6b 5f 6b 65 |530 JSR check_ke| 00004780 79 73 0d 31 35 34 30 20 4c 44 41 20 63 6c 69 63 |ys.1540 LDA clic| 00004790 6b 65 64 3a 42 4e 45 20 77 72 69 74 65 5f 6c 6f |ked:BNE write_lo| 000047a0 6f 70 0d 31 35 35 30 20 4c 44 41 20 70 61 72 61 |op.1550 LDA para| 000047b0 6d 73 3a 53 45 43 3a 53 42 43 20 6c 69 6e 65 3a |ms:SEC:SBC line:| 000047c0 43 4c 43 0d 31 35 36 30 20 41 44 43 20 23 31 3a |CLC.1560 ADC #1:| 000047d0 53 54 41 20 63 6c 69 63 6b 65 64 0d 31 35 37 30 |STA clicked.1570| 000047e0 20 72 74 73 0d 31 35 39 30 20 2e 77 68 69 74 65 | rts.1590 .white| 000047f0 5f 62 61 63 6b 67 72 6f 75 6e 64 0d 31 36 30 30 |_background.1600| 00004800 20 4c 44 41 20 6c 69 6e 65 3a 43 4d 50 20 70 61 | LDA line:CMP pa| 00004810 72 61 6d 73 3a 42 45 51 20 62 6c 61 63 6b 32 0d |rams:BEQ black2.| 00004820 31 36 31 30 20 4a 53 52 20 69 6e 76 65 72 73 65 |1610 JSR inverse| 00004830 5f 74 65 78 74 3a 4a 4d 50 20 77 68 69 74 65 32 |_text:JMP white2| 00004840 0d 31 36 32 30 20 2e 62 6c 61 63 6b 32 0d 31 36 |.1620 .black2.16| 00004850 33 30 20 4a 53 52 20 6e 6f 72 6d 61 6c 5f 74 65 |30 JSR normal_te| 00004860 78 74 0d 31 36 34 30 20 2e 77 68 69 74 65 32 0d |xt.1640 .white2.| 00004870 31 36 35 30 20 72 74 73 0d 31 36 37 30 20 2e 62 |1650 rts.1670 .b| 00004880 6c 61 63 6b 5f 62 61 63 6b 67 72 6f 75 6e 64 0d |lack_background.| 00004890 31 36 38 30 20 4c 44 41 20 6c 69 6e 65 3a 43 4d |1680 LDA line:CM| 000048a0 50 20 70 61 72 61 6d 73 3a 42 45 51 20 77 68 69 |P params:BEQ whi| 000048b0 74 65 33 0d 31 36 39 30 20 4a 53 52 20 6e 6f 72 |te3.1690 JSR nor| 000048c0 6d 61 6c 5f 74 65 78 74 3a 4a 4d 50 20 62 6c 61 |mal_text:JMP bla| 000048d0 63 6b 33 0d 31 37 30 30 20 2e 77 68 69 74 65 33 |ck3.1700 .white3| 000048e0 0d 31 37 31 30 20 4a 53 52 20 69 6e 76 65 72 73 |.1710 JSR invers| 000048f0 65 5f 74 65 78 74 0d 31 37 32 30 20 2e 62 6c 61 |e_text.1720 .bla| 00004900 63 6b 33 0d 31 37 33 30 20 72 74 73 0d 31 37 35 |ck3.1730 rts.175| 00004910 30 20 2e 63 68 65 63 6b 5f 6b 65 79 73 0d 31 37 |0 .check_keys.17| 00004920 36 30 20 54 59 41 3a 50 48 41 3a 54 58 41 3a 50 |60 TYA:PHA:TXA:P| 00004930 48 41 0d 31 37 37 30 20 4c 44 41 20 23 32 31 3a |HA.1770 LDA #21:| 00004940 4c 44 58 20 23 30 3a 4c 44 59 20 23 30 3a 4a 53 |LDX #0:LDY #0:JS| 00004950 52 20 26 46 46 46 34 0d 31 37 38 30 20 4c 44 41 |R &FFF4.1780 LDA| 00004960 20 23 34 3a 4c 44 58 20 23 31 3a 4c 44 59 20 23 | #4:LDX #1:LDY #| 00004970 30 3a 4a 53 52 20 26 46 46 46 34 0d 31 37 39 30 |0:JSR &FFF4.1790| 00004980 20 4a 53 52 20 26 46 46 45 30 0d 31 38 30 30 20 | JSR &FFE0.1800 | 00004990 43 4d 50 20 23 31 33 39 3a 42 4e 45 20 64 6f 77 |CMP #139:BNE dow| 000049a0 6e 0d 31 38 31 30 20 49 4e 43 20 6c 69 6e 65 3a |n.1810 INC line:| 000049b0 4c 44 41 20 70 61 72 61 6d 73 3a 43 4d 50 20 6c |LDA params:CMP l| 000049c0 69 6e 65 0d 31 38 32 30 20 42 43 53 20 64 6f 77 |ine.1820 BCS dow| 000049d0 6e 3a 4c 44 41 20 23 31 3a 53 54 41 20 6c 69 6e |n:LDA #1:STA lin| 000049e0 65 0d 31 38 33 30 20 2e 64 6f 77 6e 0d 31 38 34 |e.1830 .down.184| 000049f0 30 20 43 4d 50 20 23 31 33 38 3a 42 4e 45 20 63 |0 CMP #138:BNE c| 00004a00 6c 69 63 6b 0d 31 38 35 30 20 44 45 43 20 6c 69 |lick.1850 DEC li| 00004a10 6e 65 3a 4c 44 41 20 6c 69 6e 65 3a 43 4d 50 20 |ne:LDA line:CMP | 00004a20 23 31 0d 31 38 36 30 20 42 43 53 20 63 6c 69 63 |#1.1860 BCS clic| 00004a30 6b 3a 4c 44 41 20 70 61 72 61 6d 73 3a 53 54 41 |k:LDA params:STA| 00004a40 20 6c 69 6e 65 0d 31 38 37 30 20 2e 63 6c 69 63 | line.1870 .clic| 00004a50 6b 0d 31 38 38 30 20 43 4d 50 20 23 31 33 3a 42 |k.1880 CMP #13:B| 00004a60 4e 45 20 6e 6f 74 5f 63 6c 69 63 6b 65 64 0d 31 |NE not_clicked.1| 00004a70 38 39 30 20 4c 44 41 20 23 30 3a 53 54 41 20 63 |890 LDA #0:STA c| 00004a80 6c 69 63 6b 65 64 0d 31 39 30 30 20 4c 44 41 20 |licked.1900 LDA | 00004a90 23 34 3a 4c 44 58 20 23 30 3a 4c 44 59 20 23 30 |#4:LDX #0:LDY #0| 00004aa0 3a 4a 53 52 20 26 46 46 46 34 0d 31 39 31 30 20 |:JSR &FFF4.1910 | 00004ab0 2e 6e 6f 74 5f 63 6c 69 63 6b 65 64 0d 31 39 32 |.not_clicked.192| 00004ac0 30 20 50 4c 41 3a 54 41 58 3a 50 4c 41 3a 54 41 |0 PLA:TAX:PLA:TA| 00004ad0 59 0d 31 39 33 30 20 72 74 73 0d 31 39 35 30 20 |Y.1930 rts.1950 | 00004ae0 2e 69 6e 63 5f 36 30 30 0d 31 39 36 30 20 4c 44 |.inc_600.1960 LD| 00004af0 41 20 70 6f 69 6e 74 36 30 30 6c 3a 43 4c 43 0d |A point600l:CLC.| 00004b00 31 39 37 30 20 41 44 43 20 23 33 3a 53 54 41 20 |1970 ADC #3:STA | 00004b10 70 6f 69 6e 74 36 30 30 6c 0d 31 39 38 30 20 4c |point600l.1980 L| 00004b20 44 41 20 70 6f 69 6e 74 36 30 30 68 3a 41 44 43 |DA point600h:ADC| 00004b30 20 23 30 0d 31 39 39 30 20 53 54 41 20 70 6f 69 | #0.1990 STA poi| 00004b40 6e 74 36 30 30 68 0d 32 30 30 30 20 72 74 73 0d |nt600h.2000 rts.| 00004b50 32 30 32 30 20 2e 70 6f 69 6e 74 5f 36 30 30 0d |2020 .point_600.| 00004b60 32 30 33 30 20 4c 44 59 20 23 30 0d 32 30 34 30 |2030 LDY #0.2040| 00004b70 20 4c 44 41 20 28 70 6f 69 6e 74 36 30 30 6c 29 | LDA (point600l)| 00004b80 2c 59 3a 53 54 41 20 62 6c 6f 63 6b 6c 0d 32 30 |,Y:STA blockl.20| 00004b90 35 30 20 49 4e 59 0d 32 30 36 30 20 4c 44 41 20 |50 INY.2060 LDA | 00004ba0 28 70 6f 69 6e 74 36 30 30 6c 29 2c 59 3a 53 54 |(point600l),Y:ST| 00004bb0 41 20 62 6c 6f 63 6b 68 0d 32 30 37 30 20 4c 44 |A blockh.2070 LD| 00004bc0 59 20 23 33 0d 32 30 38 30 20 72 74 73 0d 32 31 |Y #3.2080 rts.21| 00004bd0 30 30 20 2e 64 72 61 77 5f 6d 65 6e 75 5f 62 6f |00 .draw_menu_bo| 00004be0 78 0d 32 31 31 30 20 4c 44 41 20 23 31 3a 53 54 |x.2110 LDA #1:ST| 00004bf0 41 20 70 61 73 73 0d 32 31 32 30 20 4a 53 52 20 |A pass.2120 JSR | 00004c00 62 6f 78 0d 32 31 33 30 20 72 74 73 0d 32 31 35 |box.2130 rts.215| 00004c10 30 20 2e 62 6f 78 0d 32 31 36 30 20 4c 44 41 20 |0 .box.2160 LDA | 00004c20 58 31 3a 50 48 41 3a 4c 44 41 20 59 31 3a 50 48 |X1:PHA:LDA Y1:PH| 00004c30 41 0d 32 31 37 30 20 4c 44 41 20 58 32 3a 50 48 |A.2170 LDA X2:PH| 00004c40 41 3a 4c 44 41 20 59 32 3a 50 48 41 0d 32 31 38 |A:LDA Y2:PHA.218| 00004c50 30 20 4c 44 41 20 62 6f 78 31 3a 53 54 41 20 63 |0 LDA box1:STA c| 00004c60 6f 6c 6f 72 0d 32 31 39 30 20 4a 53 52 20 73 70 |olor.2190 JSR sp| 00004c70 72 69 74 65 5f 73 61 76 65 0d 32 32 30 30 20 49 |rite_save.2200 I| 00004c80 4e 43 20 59 31 3a 44 45 43 20 59 32 3a 44 45 43 |NC Y1:DEC Y2:DEC| 00004c90 20 59 32 3a 49 4e 43 20 58 31 0d 32 32 31 30 20 | Y2:INC X1.2210 | 00004ca0 44 45 43 20 58 32 3a 44 45 43 20 58 32 0d 32 32 |DEC X2:DEC X2.22| 00004cb0 32 30 20 4c 44 41 20 62 6f 78 32 3a 53 54 41 20 |20 LDA box2:STA | 00004cc0 63 6f 6c 6f 72 0d 32 32 33 30 20 4a 53 52 20 73 |color.2230 JSR s| 00004cd0 70 72 69 74 65 5f 73 61 76 65 0d 32 32 34 30 20 |prite_save.2240 | 00004ce0 4c 44 41 20 58 31 3a 43 4c 43 3a 41 44 43 20 58 |LDA X1:CLC:ADC X| 00004cf0 32 3a 50 48 41 3a 44 45 43 20 58 31 0d 32 32 35 |2:PHA:DEC X1.225| 00004d00 30 20 4c 44 41 20 23 31 3a 53 54 41 20 58 32 0d |0 LDA #1:STA X2.| 00004d10 32 32 36 30 20 4c 44 41 20 62 6f 78 33 3a 53 54 |2260 LDA box3:ST| 00004d20 41 20 63 6f 6c 6f 72 0d 32 32 37 30 20 4a 53 52 |A color.2270 JSR| 00004d30 20 73 70 72 69 74 65 5f 73 61 76 65 0d 32 32 38 | sprite_save.228| 00004d40 30 20 50 4c 41 3a 53 54 41 20 58 31 3a 4c 44 41 |0 PLA:STA X1:LDA| 00004d50 20 23 31 3a 53 54 41 20 58 32 0d 32 32 39 30 20 | #1:STA X2.2290 | 00004d60 4c 44 41 20 62 6f 78 34 3a 53 54 41 20 63 6f 6c |LDA box4:STA col| 00004d70 6f 72 0d 32 33 30 30 20 4a 53 52 20 73 70 72 69 |or.2300 JSR spri| 00004d80 74 65 5f 73 61 76 65 0d 32 33 31 30 20 50 4c 41 |te_save.2310 PLA| 00004d90 3a 53 54 41 20 59 32 3a 50 4c 41 3a 53 54 41 20 |:STA Y2:PLA:STA | 00004da0 58 32 0d 32 33 32 30 20 50 4c 41 3a 53 54 41 20 |X2.2320 PLA:STA | 00004db0 59 31 3a 50 4c 41 3a 53 54 41 20 58 31 0d 32 33 |Y1:PLA:STA X1.23| 00004dc0 33 30 20 72 74 73 0d 32 33 35 30 20 2e 72 65 73 |30 rts.2350 .res| 00004dd0 74 6f 72 65 5f 62 6f 78 0d 32 33 36 30 20 4a 53 |tore_box.2360 JS| 00004de0 52 20 73 70 72 69 74 65 5f 72 65 73 74 6f 72 65 |R sprite_restore| 00004df0 0d 32 33 37 30 20 4a 53 52 20 73 70 72 69 74 65 |.2370 JSR sprite| 00004e00 5f 72 65 73 74 6f 72 65 0d 32 33 38 30 20 4a 53 |_restore.2380 JS| 00004e10 52 20 73 70 72 69 74 65 5f 72 65 73 74 6f 72 65 |R sprite_restore| 00004e20 0d 32 33 39 30 20 4a 53 52 20 73 70 72 69 74 65 |.2390 JSR sprite| 00004e30 5f 72 65 73 74 6f 72 65 0d 32 34 30 30 20 72 74 |_restore.2400 rt| 00004e40 73 0d 32 34 32 30 20 2e 69 6e 76 65 72 73 65 5f |s.2420 .inverse_| 00004e50 74 65 78 74 0d 32 34 33 30 20 4c 44 41 20 23 26 |text.2430 LDA #&| 00004e60 31 31 3a 4a 53 52 20 26 46 46 45 45 0d 32 34 34 |11:JSR &FFEE.244| 00004e70 30 20 4c 44 41 20 23 30 3a 4a 53 52 20 26 46 46 |0 LDA #0:JSR &FF| 00004e80 45 45 0d 32 34 35 30 20 4c 44 41 20 23 26 31 31 |EE.2450 LDA #&11| 00004e90 3a 4a 53 52 20 26 46 46 45 45 0d 32 34 36 30 20 |:JSR &FFEE.2460 | 00004ea0 4c 44 41 20 23 31 32 39 3a 4a 53 52 20 26 46 46 |LDA #129:JSR &FF| 00004eb0 45 45 0d 32 34 37 30 20 72 74 73 0d 32 34 39 30 |EE.2470 rts.2490| 00004ec0 20 2e 6e 6f 72 6d 61 6c 5f 74 65 78 74 0d 32 35 | .normal_text.25| 00004ed0 30 30 20 4c 44 41 20 23 26 31 31 3a 4a 53 52 20 |00 LDA #&11:JSR | 00004ee0 26 46 46 45 45 0d 32 35 31 30 20 4c 44 41 20 23 |&FFEE.2510 LDA #| 00004ef0 31 3a 4a 53 52 20 26 46 46 45 45 0d 32 35 32 30 |1:JSR &FFEE.2520| 00004f00 20 4c 44 41 20 23 26 31 31 3a 4a 53 52 20 26 46 | LDA #&11:JSR &F| 00004f10 46 45 45 0d 32 35 33 30 20 4c 44 41 20 23 31 32 |FEE.2530 LDA #12| 00004f20 38 3a 4a 53 52 20 26 46 46 45 45 0d 32 35 34 30 |8:JSR &FFEE.2540| 00004f30 20 72 74 73 0d 32 35 36 30 20 2e 73 70 72 69 74 | rts.2560 .sprit| 00004f40 65 5f 73 61 76 65 0d 32 35 37 30 20 4c 44 41 20 |e_save.2570 LDA | 00004f50 70 61 73 73 3a 43 4d 50 20 23 32 3a 42 43 43 20 |pass:CMP #2:BCC | 00004f60 73 61 76 69 6e 67 0d 32 35 38 30 20 4a 53 52 20 |saving.2580 JSR | 00004f70 73 70 72 69 74 65 0d 32 35 39 30 20 72 74 73 0d |sprite.2590 rts.| 00004f80 32 36 30 30 20 2e 73 61 76 69 6e 67 0d 32 36 31 |2600 .saving.261| 00004f90 30 20 54 59 41 3a 50 48 41 0d 32 36 32 30 20 49 |0 TYA:PHA.2620 I| 00004fa0 4e 43 20 77 69 6e 64 6f 77 73 0d 32 36 33 30 20 |NC windows.2630 | 00004fb0 4c 44 41 20 70 61 73 73 3a 50 48 41 0d 32 36 34 |LDA pass:PHA.264| 00004fc0 30 20 4c 44 41 20 23 31 3a 53 54 41 20 6d 65 6d |0 LDA #1:STA mem| 00004fd0 6f 72 79 0d 32 36 35 30 20 4c 44 41 20 73 74 6c |ory.2650 LDA stl| 00004fe0 3a 53 54 41 20 70 77 6c 0d 32 36 36 30 20 4c 44 |:STA pwl.2660 LD| 00004ff0 41 20 73 74 68 3a 53 54 41 20 70 77 68 0d 32 36 |A sth:STA pwh.26| 00005000 37 30 20 4a 53 52 20 73 70 72 69 74 65 0d 32 36 |70 JSR sprite.26| 00005010 38 30 20 4c 44 41 20 6d 65 6d 6f 72 79 3a 42 45 |80 LDA memory:BE| 00005020 51 20 6e 6f 74 5f 65 6e 6f 75 67 68 5f 6d 65 6d |Q not_enough_mem| 00005030 6f 72 79 0d 32 36 39 30 20 4c 44 59 20 23 30 0d |ory.2690 LDY #0.| 00005040 32 37 30 30 20 4c 44 41 20 58 31 3a 53 54 41 20 |2700 LDA X1:STA | 00005050 28 73 74 6c 29 2c 59 3a 49 4e 59 0d 32 37 31 30 |(stl),Y:INY.2710| 00005060 20 4c 44 41 20 59 31 3a 53 54 41 20 28 73 74 6c | LDA Y1:STA (stl| 00005070 29 2c 59 3a 49 4e 59 0d 32 37 32 30 20 4c 44 41 |),Y:INY.2720 LDA| 00005080 20 58 32 3a 53 54 41 20 28 73 74 6c 29 2c 59 3a | X2:STA (stl),Y:| 00005090 49 4e 59 0d 32 37 33 30 20 4c 44 41 20 59 32 3a |INY.2730 LDA Y2:| 000050a0 53 54 41 20 28 73 74 6c 29 2c 59 3a 49 4e 59 0d |STA (stl),Y:INY.| 000050b0 32 37 34 30 20 4c 44 41 20 70 77 6c 3a 53 54 41 |2740 LDA pwl:STA| 000050c0 20 28 73 74 6c 29 2c 59 3a 49 4e 59 0d 32 37 35 | (stl),Y:INY.275| 000050d0 30 20 4c 44 41 20 70 77 68 3a 53 54 41 20 28 73 |0 LDA pwh:STA (s| 000050e0 74 6c 29 2c 59 0d 32 37 36 30 20 4c 44 41 20 73 |tl),Y.2760 LDA s| 000050f0 74 6c 3a 43 4c 43 3a 41 44 43 20 23 36 3a 53 54 |tl:CLC:ADC #6:ST| 00005100 41 20 73 74 6c 0d 32 37 37 30 20 4c 44 41 20 73 |A stl.2770 LDA s| 00005110 74 68 3a 41 44 43 20 23 30 3a 53 54 41 20 73 74 |th:ADC #0:STA st| 00005120 68 0d 32 37 38 30 20 50 4c 41 3a 53 54 41 20 70 |h.2780 PLA:STA p| 00005130 61 73 73 0d 32 37 39 30 20 50 4c 41 3a 54 41 59 |ass.2790 PLA:TAY| 00005140 0d 32 38 30 30 20 72 74 73 0d 32 38 32 30 20 2e |.2800 rts.2820 .| 00005150 6e 6f 74 5f 65 6e 6f 75 67 68 5f 6d 65 6d 6f 72 |not_enough_memor| 00005160 79 0d 32 38 33 30 20 4c 44 41 20 70 77 6c 3a 50 |y.2830 LDA pwl:P| 00005170 48 41 3a 53 54 41 20 73 74 6c 0d 32 38 34 30 20 |HA:STA stl.2840 | 00005180 4c 44 41 20 70 77 68 3a 50 48 41 3a 53 54 41 20 |LDA pwh:PHA:STA | 00005190 73 74 68 0d 32 38 35 30 20 44 45 43 20 77 69 6e |sth.2850 DEC win| 000051a0 64 6f 77 73 0d 32 38 36 30 20 4c 44 41 20 23 31 |dows.2860 LDA #1| 000051b0 32 38 3a 53 54 41 20 70 61 73 73 3a 4a 53 52 20 |28:STA pass:JSR | 000051c0 73 70 72 69 74 65 0d 32 38 37 30 20 4c 44 41 20 |sprite.2870 LDA | 000051d0 23 37 3a 4a 53 52 20 26 46 46 45 45 0d 32 38 38 |#7:JSR &FFEE.288| 000051e0 30 20 50 4c 41 3a 53 54 41 20 73 74 68 3a 50 4c |0 PLA:STA sth:PL| 000051f0 41 3a 53 54 41 20 73 74 6c 0d 32 38 39 30 20 50 |A:STA stl.2890 P| 00005200 4c 41 3a 53 54 41 20 70 61 73 73 0d 32 39 30 30 |LA:STA pass.2900| 00005210 20 50 4c 41 3a 54 41 59 0d 32 39 31 30 20 72 74 | PLA:TAY.2910 rt| 00005220 73 0d 32 39 33 30 20 2e 73 70 72 69 74 65 5f 72 |s.2930 .sprite_r| 00005230 65 73 74 6f 72 65 0d 32 39 34 30 20 4c 44 41 20 |estore.2940 LDA | 00005240 58 31 3a 50 48 41 3a 4c 44 41 20 59 31 3a 50 48 |X1:PHA:LDA Y1:PH| 00005250 41 0d 32 39 35 30 20 4c 44 41 20 58 32 3a 50 48 |A.2950 LDA X2:PH| 00005260 41 3a 4c 44 41 20 59 32 3a 50 48 41 0d 32 39 36 |A:LDA Y2:PHA.296| 00005270 30 20 4c 44 41 20 77 69 6e 64 6f 77 73 0d 32 39 |0 LDA windows.29| 00005280 37 30 20 42 45 51 20 73 70 72 69 74 65 5f 72 65 |70 BEQ sprite_re| 00005290 73 74 6f 72 65 5f 65 78 69 74 0d 32 39 38 30 20 |store_exit.2980 | 000052a0 44 45 43 20 77 69 6e 64 6f 77 73 0d 32 39 39 30 |DEC windows.2990| 000052b0 20 54 59 41 3a 50 48 41 0d 33 30 30 30 20 4c 44 | TYA:PHA.3000 LD| 000052c0 41 20 73 74 6c 3a 53 45 43 3a 53 42 43 20 23 36 |A stl:SEC:SBC #6| 000052d0 3a 53 54 41 20 73 74 6c 0d 33 30 31 30 20 4c 44 |:STA stl.3010 LD| 000052e0 41 20 73 74 68 3a 53 42 43 20 23 30 3a 53 54 41 |A sth:SBC #0:STA| 000052f0 20 73 74 68 0d 33 30 32 30 20 4c 44 59 20 23 30 | sth.3020 LDY #0| 00005300 0d 33 30 33 30 20 4c 44 41 20 28 73 74 6c 29 2c |.3030 LDA (stl),| 00005310 59 3a 53 54 41 20 58 31 3a 49 4e 59 0d 33 30 34 |Y:STA X1:INY.304| 00005320 30 20 4c 44 41 20 28 73 74 6c 29 2c 59 3a 53 54 |0 LDA (stl),Y:ST| 00005330 41 20 59 31 3a 49 4e 59 0d 33 30 35 30 20 4c 44 |A Y1:INY.3050 LD| 00005340 41 20 28 73 74 6c 29 2c 59 3a 53 54 41 20 58 32 |A (stl),Y:STA X2| 00005350 3a 49 4e 59 0d 33 30 36 30 20 4c 44 41 20 28 73 |:INY.3060 LDA (s| 00005360 74 6c 29 2c 59 3a 53 54 41 20 59 32 3a 49 4e 59 |tl),Y:STA Y2:INY| 00005370 0d 33 30 37 30 20 4c 44 41 20 28 73 74 6c 29 2c |.3070 LDA (stl),| 00005380 59 3a 50 48 41 3a 53 54 41 20 70 77 6c 3a 49 4e |Y:PHA:STA pwl:IN| 00005390 59 0d 33 30 38 30 20 4c 44 41 20 28 73 74 6c 29 |Y.3080 LDA (stl)| 000053a0 2c 59 3a 53 54 41 20 73 74 68 3a 53 54 41 20 70 |,Y:STA sth:STA p| 000053b0 77 68 0d 33 30 39 30 20 50 4c 41 3a 53 54 41 20 |wh.3090 PLA:STA | 000053c0 73 74 6c 0d 33 31 30 30 20 4c 44 41 20 23 31 32 |stl.3100 LDA #12| 000053d0 38 3a 53 54 41 20 70 61 73 73 3a 4a 53 52 20 73 |8:STA pass:JSR s| 000053e0 70 72 69 74 65 0d 33 31 31 30 20 4c 44 41 20 70 |prite.3110 LDA p| 000053f0 77 6c 3a 53 54 41 20 73 74 6c 0d 33 31 32 30 20 |wl:STA stl.3120 | 00005400 4c 44 41 20 70 77 68 3a 53 54 41 20 73 74 68 0d |LDA pwh:STA sth.| 00005410 33 31 33 30 20 50 4c 41 3a 54 41 59 0d 33 31 34 |3130 PLA:TAY.314| 00005420 30 20 2e 73 70 72 69 74 65 5f 72 65 73 74 6f 72 |0 .sprite_restor| 00005430 65 5f 65 78 69 74 0d 33 31 35 30 20 50 4c 41 3a |e_exit.3150 PLA:| 00005440 53 54 41 20 59 32 3a 50 4c 41 3a 53 54 41 20 58 |STA Y2:PLA:STA X| 00005450 32 0d 33 31 36 30 20 50 4c 41 3a 53 54 41 20 59 |2.3160 PLA:STA Y| 00005460 31 3a 50 4c 41 3a 53 54 41 20 58 31 0d 33 31 37 |1:PLA:STA X1.317| 00005470 30 20 72 74 73 0d 33 31 39 30 20 2e 73 70 72 69 |0 rts.3190 .spri| 00005480 74 65 0d 33 32 30 30 20 54 59 41 3a 50 48 41 3a |te.3200 TYA:PHA:| 00005490 54 58 41 3a 50 48 41 0d 33 32 31 30 20 4c 44 41 |TXA:PHA.3210 LDA| 000054a0 20 59 31 3a 50 48 41 0d 33 32 32 30 20 4c 44 59 | Y1:PHA.3220 LDY| 000054b0 20 59 32 0d 33 32 34 30 20 2e 73 70 72 69 74 65 | Y2.3240 .sprite| 000054c0 5f 79 6c 6f 6f 70 0d 33 32 35 30 20 4a 53 52 20 |_yloop.3250 JSR | 000054d0 70 6f 73 69 74 69 6f 6e 0d 33 32 36 30 20 54 59 |position.3260 TY| 000054e0 41 3a 50 48 41 0d 33 32 37 30 20 4c 44 58 20 58 |A:PHA.3270 LDX X| 000054f0 32 0d 33 32 38 30 20 4c 44 59 20 23 30 0d 33 33 |2.3280 LDY #0.33| 00005500 30 30 20 2e 73 70 72 69 74 65 5f 78 6c 6f 6f 70 |00 .sprite_xloop| 00005510 0d 33 33 31 30 20 4c 44 41 20 70 61 73 73 3a 42 |.3310 LDA pass:B| 00005520 4d 49 20 72 65 73 74 6f 72 65 0d 33 33 32 30 20 |MI restore.3320 | 00005530 43 4d 50 20 23 32 3a 42 45 51 20 64 72 61 77 5f |CMP #2:BEQ draw_| 00005540 70 6f 69 6e 74 65 72 0d 33 33 33 30 20 42 43 53 |pointer.3330 BCS| 00005550 20 64 72 61 77 5f 66 69 78 65 64 0d 33 33 34 30 | draw_fixed.3340| 00005560 20 43 4d 50 20 23 31 3a 42 45 51 20 64 72 61 77 | CMP #1:BEQ draw| 00005570 5f 73 61 76 65 5f 66 69 78 65 64 0d 33 33 36 30 |_save_fixed.3360| 00005580 20 2e 64 72 61 77 5f 73 61 76 65 5f 70 6f 69 6e | .draw_save_poin| 00005590 74 65 72 0d 33 33 37 30 20 4c 44 41 20 28 79 6c |ter.3370 LDA (yl| 000055a0 62 29 2c 59 3a 53 54 41 20 28 73 74 6c 29 2c 59 |b),Y:STA (stl),Y| 000055b0 0d 33 33 38 30 20 4c 44 41 20 28 63 6f 6c 6c 29 |.3380 LDA (coll)| 000055c0 2c 59 3a 41 4e 44 20 28 79 6c 62 29 2c 59 0d 33 |,Y:AND (ylb),Y.3| 000055d0 33 39 30 20 45 4f 52 20 28 79 6c 62 29 2c 59 3a |390 EOR (ylb),Y:| 000055e0 53 54 41 20 28 79 6c 62 29 2c 59 0d 33 34 30 30 |STA (ylb),Y.3400| 000055f0 20 4a 4d 50 20 69 6e 63 5f 63 6f 6c 6f 75 72 5f | JMP inc_colour_| 00005600 70 6f 69 6e 74 65 72 0d 33 34 32 30 20 2e 64 72 |pointer.3420 .dr| 00005610 61 77 5f 73 61 76 65 5f 66 69 78 65 64 0d 33 34 |aw_save_fixed.34| 00005620 33 30 20 4c 44 41 20 28 79 6c 62 29 2c 59 3a 53 |30 LDA (ylb),Y:S| 00005630 54 41 20 28 73 74 6c 29 2c 59 0d 33 34 34 30 20 |TA (stl),Y.3440 | 00005640 4c 44 41 20 63 6f 6c 6f 72 3a 53 54 41 20 28 79 |LDA color:STA (y| 00005650 6c 62 29 2c 59 0d 33 34 35 30 20 4a 4d 50 20 69 |lb),Y.3450 JMP i| 00005660 6e 63 5f 73 74 6f 72 65 5f 6d 65 6d 0d 33 34 37 |nc_store_mem.347| 00005670 30 20 2e 64 72 61 77 5f 70 6f 69 6e 74 65 72 0d |0 .draw_pointer.| 00005680 33 34 38 30 20 4c 44 41 20 28 63 6f 6c 6c 29 2c |3480 LDA (coll),| 00005690 59 3a 53 54 41 20 28 79 6c 62 29 2c 59 0d 33 34 |Y:STA (ylb),Y.34| 000056a0 39 30 20 49 4e 43 20 63 6f 6c 6c 3a 42 4e 45 20 |90 INC coll:BNE | 000056b0 6e 6f 5f 63 6f 6c 6f 75 72 5f 63 61 72 72 79 31 |no_colour_carry1| 000056c0 0d 33 35 30 30 20 49 4e 43 20 63 6f 6c 68 3a 2e |.3500 INC colh:.| 000056d0 6e 6f 5f 63 6f 6c 6f 75 72 5f 63 61 72 72 79 31 |no_colour_carry1| 000056e0 0d 33 35 31 30 20 4a 4d 50 20 6e 6f 5f 73 74 6f |.3510 JMP no_sto| 000056f0 72 65 5f 6d 65 6d 5f 63 61 72 72 79 0d 33 35 33 |re_mem_carry.353| 00005700 30 20 2e 64 72 61 77 5f 66 69 78 65 64 0d 33 35 |0 .draw_fixed.35| 00005710 34 30 20 4c 44 41 20 63 6f 6c 6f 72 3a 53 54 41 |40 LDA color:STA| 00005720 20 28 79 6c 62 29 2c 59 0d 33 35 35 30 20 4a 4d | (ylb),Y.3550 JM| 00005730 50 20 6e 6f 5f 73 74 6f 72 65 5f 6d 65 6d 5f 63 |P no_store_mem_c| 00005740 61 72 72 79 0d 33 35 37 30 20 2e 72 65 73 74 6f |arry.3570 .resto| 00005750 72 65 0d 33 35 38 30 20 4c 44 41 20 28 73 74 6c |re.3580 LDA (stl| 00005760 29 2c 59 3a 53 54 41 20 28 79 6c 62 29 2c 59 0d |),Y:STA (ylb),Y.| 00005770 33 35 39 30 20 4a 4d 50 20 69 6e 63 5f 73 74 6f |3590 JMP inc_sto| 00005780 72 65 5f 6d 65 6d 0d 33 36 31 30 20 2e 69 6e 63 |re_mem.3610 .inc| 00005790 5f 63 6f 6c 6f 75 72 5f 70 6f 69 6e 74 65 72 0d |_colour_pointer.| 000057a0 33 36 32 30 20 49 4e 43 20 63 6f 6c 6c 3a 42 4e |3620 INC coll:BN| 000057b0 45 20 69 6e 63 5f 73 74 6f 72 65 5f 6d 65 6d 0d |E inc_store_mem.| 000057c0 33 36 33 30 20 49 4e 43 20 63 6f 6c 68 0d 33 36 |3630 INC colh.36| 000057d0 35 30 20 2e 69 6e 63 5f 73 74 6f 72 65 5f 6d 65 |50 .inc_store_me| 000057e0 6d 0d 33 36 36 30 20 49 4e 43 20 73 74 6c 3a 42 |m.3660 INC stl:B| 000057f0 4e 45 20 6e 6f 5f 73 74 6f 72 65 5f 6d 65 6d 5f |NE no_store_mem_| 00005800 63 61 72 72 79 0d 33 36 37 30 20 49 4e 43 20 73 |carry.3670 INC s| 00005810 74 68 0d 33 36 38 30 20 4c 44 41 20 73 74 68 3a |th.3680 LDA sth:| 00005820 43 4d 50 20 26 37 0d 33 36 39 30 20 42 45 51 20 |CMP &7.3690 BEQ | 00005830 70 61 73 74 5f 6d 65 6d 6f 72 79 5f 62 6f 75 6e |past_memory_boun| 00005840 64 0d 33 37 30 30 20 2e 6e 6f 5f 73 74 6f 72 65 |d.3700 .no_store| 00005850 5f 6d 65 6d 5f 63 61 72 72 79 0d 33 37 32 30 20 |_mem_carry.3720 | 00005860 4c 44 41 20 79 6c 62 3a 43 4c 43 3a 41 44 43 20 |LDA ylb:CLC:ADC | 00005870 23 38 3a 53 54 41 20 79 6c 62 0d 33 37 33 30 20 |#8:STA ylb.3730 | 00005880 4c 44 41 20 79 68 62 3a 41 44 43 20 23 30 3a 53 |LDA yhb:ADC #0:S| 00005890 54 41 20 79 68 62 0d 33 37 34 30 20 44 45 58 3a |TA yhb.3740 DEX:| 000058a0 42 4e 45 20 73 70 72 69 74 65 5f 78 6c 6f 6f 70 |BNE sprite_xloop| 000058b0 0d 33 37 35 30 20 49 4e 43 20 59 31 3a 50 4c 41 |.3750 INC Y1:PLA| 000058c0 3a 54 41 59 0d 33 37 36 30 20 44 45 59 3a 42 4e |:TAY.3760 DEY:BN| 000058d0 45 20 73 70 72 69 74 65 5f 79 6c 6f 6f 70 0d 33 |E sprite_yloop.3| 000058e0 37 37 30 20 4a 4d 50 20 73 70 72 69 74 65 5f 65 |770 JMP sprite_e| 000058f0 78 69 74 0d 33 37 38 30 20 2e 70 61 73 74 5f 6d |xit.3780 .past_m| 00005900 65 6d 6f 72 79 5f 62 6f 75 6e 64 0d 33 37 39 30 |emory_bound.3790| 00005910 20 4c 44 41 20 23 30 3a 53 54 41 20 6d 65 6d 6f | LDA #0:STA memo| 00005920 72 79 0d 33 38 30 30 20 50 4c 41 0d 33 38 32 30 |ry.3800 PLA.3820| 00005930 20 2e 73 70 72 69 74 65 5f 65 78 69 74 0d 33 38 | .sprite_exit.38| 00005940 33 30 20 50 4c 41 3a 53 54 41 20 59 31 0d 33 38 |30 PLA:STA Y1.38| 00005950 34 30 20 50 4c 41 3a 54 41 58 3a 50 4c 41 3a 54 |40 PLA:TAX:PLA:T| 00005960 41 59 0d 33 38 35 30 20 72 74 73 0d 33 38 37 30 |AY.3850 rts.3870| 00005970 20 2e 70 6f 73 69 74 69 6f 6e 0d 33 38 38 30 20 | .position.3880 | 00005980 4c 44 41 20 23 30 3a 53 54 41 20 78 68 62 0d 33 |LDA #0:STA xhb.3| 00005990 38 39 30 20 4c 44 41 20 58 31 3a 41 53 4c 20 41 |890 LDA X1:ASL A| 000059a0 3a 52 4f 4c 20 78 68 62 3a 41 53 4c 20 41 0d 33 |:ROL xhb:ASL A.3| 000059b0 39 30 30 20 52 4f 4c 20 78 68 62 3a 41 53 4c 20 |900 ROL xhb:ASL | 000059c0 41 3a 52 4f 4c 20 78 68 62 3a 53 54 41 20 78 6c |A:ROL xhb:STA xl| 000059d0 62 0d 33 39 31 30 20 4c 44 41 20 26 37 3a 43 4c |b.3910 LDA &7:CL| 000059e0 43 3a 41 44 43 20 78 68 62 3a 53 54 41 20 78 68 |C:ADC xhb:STA xh| 000059f0 62 0d 33 39 32 30 20 4c 44 41 20 23 30 3a 53 54 |b.3920 LDA #0:ST| 00005a00 41 20 79 6c 62 0d 33 39 33 30 20 4c 44 41 20 59 |A ylb.3930 LDA Y| 00005a10 31 3a 41 4e 44 20 23 26 46 38 0d 33 39 34 30 20 |1:AND #&F8.3940 | 00005a20 4c 53 52 20 41 3a 4c 53 52 20 41 3a 53 54 41 20 |LSR A:LSR A:STA | 00005a30 79 68 62 0d 33 39 35 30 20 4c 53 52 20 41 3a 4c |yhb.3950 LSR A:L| 00005a40 53 52 20 41 3a 52 4f 52 20 79 6c 62 3a 43 4c 43 |SR A:ROR ylb:CLC| 00005a50 3a 41 44 43 20 79 68 62 0d 33 39 36 30 20 41 44 |:ADC yhb.3960 AD| 00005a60 43 20 78 68 62 3a 53 54 41 20 79 68 62 0d 33 39 |C xhb:STA yhb.39| 00005a70 37 30 20 4c 44 41 20 59 31 3a 41 4e 44 20 23 37 |70 LDA Y1:AND #7| 00005a80 3a 43 4c 43 3a 41 44 43 20 79 6c 62 3a 41 44 43 |:CLC:ADC ylb:ADC| 00005a90 20 78 6c 62 0d 33 39 38 30 20 53 54 41 20 79 6c | xlb.3980 STA yl| 00005aa0 62 3a 4c 44 41 20 23 30 3a 41 44 43 20 79 68 62 |b:LDA #0:ADC yhb| 00005ab0 3a 53 54 41 20 79 68 62 0d 33 39 39 30 20 72 74 |:STA yhb.3990 rt| 00005ac0 73 0d 34 30 31 30 20 2e 63 6f 64 65 5f 65 6e 64 |s.4010 .code_end| 00005ad0 0d 34 30 33 30 20 5d 0d 34 30 34 30 20 4e 45 58 |.4030 ].4040 NEX| 00005ae0 54 20 63 6f 64 65 0d 34 30 35 30 20 50 52 49 4e |T code.4050 PRIN| 00005af0 54 22 20 2a 53 41 56 45 20 70 6f 70 43 6f 64 65 |T" *SAVE popCode| 00005b00 20 31 39 30 30 20 22 3b 7e 50 25 0d 53 41 56 45 | 1900 ";~P%.SAVE| 00005b10 22 4c 2d 33 2d 56 49 22 0d 4e 45 57 0d 31 30 20 |"L-3-VI".NEW.10 | 00005b20 52 45 4d 20 4c 69 73 74 69 6e 67 20 56 49 49 0d |REM Listing VII.| 00005b30 32 30 20 52 45 4d 20 42 79 20 47 6c 65 6e 6e 20 |20 REM By Glenn | 00005b40 4d 61 72 73 68 61 6c 6c 0d 33 30 20 52 45 4d 20 |Marshall.30 REM | 00005b50 28 43 29 20 54 68 65 20 4d 69 63 72 6f 20 55 73 |(C) The Micro Us| 00005b60 65 72 0d 35 30 20 49 46 20 50 41 47 45 3c 3e 26 |er.50 IF PAGE<>&| 00005b70 31 45 30 30 20 54 48 45 4e 20 45 4e 44 0d 37 30 |1E00 THEN END.70| 00005b80 20 4d 4f 44 45 20 30 0d 38 30 20 56 44 55 20 32 | MODE 0.80 VDU 2| 00005b90 33 3b 38 32 30 32 3b 30 3b 30 3b 30 3b 0d 31 30 |3;8202;0;0;0;.10| 00005ba0 30 20 78 3d 33 30 3a 79 3d 31 32 0d 31 32 30 20 |0 x=30:y=12.120 | 00005bb0 41 24 3d 22 43 55 53 54 4f 4d 45 52 20 4d 45 4e |A$="CUSTOMER MEN| 00005bc0 55 22 0d 31 33 30 20 42 24 3d 22 41 6d 65 6e 64 |U".130 B$="Amend| 00005bd0 20 43 75 73 74 6f 6d 65 72 20 46 69 6c 65 22 0d | Customer File".| 00005be0 31 34 30 20 43 24 3d 22 50 72 69 6e 74 20 46 69 |140 C$="Print Fi| 00005bf0 6c 65 22 0d 31 35 30 20 44 24 3d 22 44 69 73 70 |le".150 D$="Disp| 00005c00 6c 61 79 20 43 75 73 74 6f 6d 65 72 22 0d 31 36 |lay Customer".16| 00005c10 30 20 45 24 3d 22 45 78 69 74 22 0d 31 38 30 20 |0 E$="Exit".180 | 00005c20 63 6f 6c 31 3d 32 35 35 3a 63 6f 6c 32 3d 30 3a |col1=255:col2=0:| 00005c30 63 6f 6c 33 3d 31 39 32 3a 63 6f 6c 34 3d 33 0d |col3=192:col4=3.| 00005c40 32 30 30 20 69 6e 69 74 69 61 6c 69 73 65 5f 6d |200 initialise_m| 00005c50 65 6e 75 3d 26 31 39 30 30 0d 32 31 30 20 6d 65 |enu=&1900.210 me| 00005c60 6e 75 5f 64 6f 77 6e 3d 26 31 39 31 30 0d 32 32 |nu_down=&1910.22| 00005c70 30 20 63 68 6f 69 63 65 3d 26 37 41 0d 32 34 30 |0 choice=&7A.240| 00005c80 20 43 41 4c 4c 20 69 6e 69 74 69 61 6c 69 73 65 | CALL initialise| 00005c90 5f 6d 65 6e 75 0d 32 35 30 20 43 41 4c 4c 20 6d |_menu.250 CALL m| 00005ca0 65 6e 75 5f 64 6f 77 6e 2c 3f 63 6f 6c 31 2c 3f |enu_down,?col1,?| 00005cb0 63 6f 6c 32 2c 3f 63 6f 6c 33 2c 3f 63 6f 6c 34 |col2,?col3,?col4| 00005cc0 2c 3f 78 2c 3f 79 2c 41 24 2c 42 24 2c 43 24 2c |,?x,?y,A$,B$,C$,| 00005cd0 44 24 2c 45 24 0d 32 36 30 20 50 52 49 4e 54 20 |D$,E$.260 PRINT | 00005ce0 22 73 65 6c 65 63 74 65 64 20 3d 20 22 3b 3f 63 |"selected = ";?c| 00005cf0 68 6f 69 63 65 0d 32 38 30 20 50 52 49 4e 54 20 |hoice.280 PRINT | 00005d00 22 77 61 69 74 69 6e 67 20 2d 20 50 52 45 53 53 |"waiting - PRESS| 00005d10 20 41 20 4b 45 59 22 0d 32 39 30 20 41 3d 47 45 | A KEY".290 A=GE| 00005d20 54 0d 33 30 30 20 43 4f 4c 4f 55 52 20 31 32 39 |T.300 COLOUR 129| 00005d30 3a 43 4c 53 0d 33 31 30 20 63 6f 6c 31 3d 30 3a |:CLS.310 col1=0:| 00005d40 63 6f 6c 32 3d 32 35 35 3a 63 6f 6c 33 3d 31 32 |col2=255:col3=12| 00005d50 37 3a 63 6f 6c 34 3d 32 35 34 0d 33 32 30 20 46 |7:col4=254.320 F| 00005d60 24 3d 22 45 78 74 72 61 20 6f 70 74 69 6f 6e 22 |$="Extra option"| 00005d70 0d 33 33 30 20 43 41 4c 4c 20 6d 65 6e 75 5f 64 |.330 CALL menu_d| 00005d80 6f 77 6e 2c 3f 63 6f 6c 31 2c 3f 63 6f 6c 32 2c |own,?col1,?col2,| 00005d90 3f 63 6f 6c 33 2c 3f 63 6f 6c 34 2c 3f 78 2c 3f |?col3,?col4,?x,?| 00005da0 79 2c 41 24 2c 42 24 2c 43 24 2c 44 24 2c 45 24 |y,A$,B$,C$,D$,E$| 00005db0 2c 46 24 0d 33 34 30 20 50 52 49 4e 54 20 22 73 |,F$.340 PRINT "s| 00005dc0 65 6c 65 63 74 65 64 20 3d 20 22 3b 3f 63 68 6f |elected = ";?cho| 00005dd0 69 63 65 0d 33 36 30 20 63 6f 6c 31 3d 30 3a 63 |ice.360 col1=0:c| 00005de0 6f 6c 32 3d 32 35 35 3a 63 6f 6c 33 3d 31 32 37 |ol2=255:col3=127| 00005df0 3a 63 6f 6c 34 3d 32 35 32 0d 33 37 30 20 50 52 |:col4=252.370 PR| 00005e00 49 4e 54 20 22 77 61 69 74 69 6e 67 20 22 3a 41 |INT "waiting ":A| 00005e10 3d 47 45 54 0d 33 38 30 20 3f 26 33 35 38 3d 31 |=GET.380 ?&358=1| 00005e20 37 30 3a 43 4c 53 0d 33 39 30 20 43 41 4c 4c 20 |70:CLS.390 CALL | 00005e30 6d 65 6e 75 5f 64 6f 77 6e 2c 3f 63 6f 6c 31 2c |menu_down,?col1,| 00005e40 3f 63 6f 6c 32 2c 3f 63 6f 6c 33 2c 3f 63 6f 6c |?col2,?col3,?col| 00005e50 34 2c 3f 78 2c 3f 79 2c 41 24 2c 42 24 2c 43 24 |4,?x,?y,A$,B$,C$| 00005e60 2c 44 24 2c 45 24 2c 45 24 2c 46 24 0d 34 30 30 |,D$,E$,E$,F$.400| 00005e70 20 50 52 49 4e 54 20 22 73 65 6c 65 63 74 65 64 | PRINT "selected| 00005e80 20 3d 20 22 3b 3f 63 68 6f 69 63 65 0d 53 41 56 | = ";?choice.SAV| 00005e90 45 22 4c 2d 33 2d 56 49 49 22 0d |E"L-3-VII".| 00005e9b