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:

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