S-C DocuMentor Applesoft
SAVE S.E1B8
1010 *--------------------------------
1020 * CREATE A NEW ARRAY, UNLESS CALLED FROM GETARYPT
1030 *--------------------------------
1040 MAKE.NEW.ARRAY
E1B8- A5 14 1050 LDA SUBFLG CALLED FROM GETARYPT?
E1BA- F0 05 1060 BEQ .1 NO
E1BC- A2 2A 1070 LDX #ERR.NODATA YES, GIVE "OUT OF DATA" ERROR
E1BE- 4C 12 D4 1080 JMP ERROR
E1C1- 20 ED E0 1090 .1 JSR GETARY PUT ADDR OF 1ST ELEMENT IN ARYPNT
E1C4- 20 E3 D3 1100 JSR REASON MAKE SURE ENOUGH MEMORY LEFT
1110 *--------------------------------
1120 * <<< NEXT 3 LINES COULD BE WRITTEN: >>>
1130 * LDY #0
1140 * STY STRNG2+1
1150 *--------------------------------
E1C7- A9 00 1160 LDA #0 POINT Y-REG AT VARIABLE NAME SLOT
E1C9- A8 1170 TAY
E1CA- 85 AE 1180 STA STRNG2+1 START SIZE COMPUTATION
E1CC- A2 05 1190 LDX #5 ASSUME 5-BYTES PER ELEMENT
E1CE- A5 81 1200 LDA VARNAM STUFF VARIABLE NAME IN ARRAY
E1D0- 91 9B 1210 STA (LOWTR),Y
E1D2- 10 01 1220 BPL .2 NOT INTEGER ARRAY
E1D4- CA 1230 DEX INTEGER ARRAY, DECR. SIZE TO 4-BYTES
E1D5- C8 1240 .2 INY POINT Y-REG AT NEXT CHAR OF NAME
E1D6- A5 82 1250 LDA VARNAM+1 REST OF ARRAY NAME
E1D8- 91 9B 1260 STA (LOWTR),Y
E1DA- 10 02 1270 BPL .3 REAL ARRAY, STICK WITH SIZE = 5 BYTES
E1DC- CA 1280 DEX INTEGER OR STRING ARRAY, ADJUST SIZE
E1DD- CA 1290 DEX TO INTEGER=3, STRING=2 BYTES
E1DE- 86 AD 1300 .3 STX STRNG2 STORE LOW-BYTE OF ARRAY ELEMENT SIZE
E1E0- A5 0F 1310 LDA NUMDIM STORE NUMBER OF DIMENSIONS
E1E2- C8 1320 INY IN 5TH BYTE OF ARRAY
E1E3- C8 1330 INY
E1E4- C8 1340 INY
E1E5- 91 9B 1350 STA (LOWTR),Y
E1E7- A2 0B 1360 .4 LDX #11 DEFAULT DIMENSION = 11 ELEMENTS
E1E9- A9 00 1370 LDA #0 FOR HI-BYTE OF DIMENSION IF DEFAULT
E1EB- 24 10 1380 BIT DIMFLG DIMENSIONED ARRAY?
E1ED- 50 08 1390 BVC .5 NO, USE DEFAULT VALUE
E1EF- 68 1400 PLA GET SPECIFIED DIM IN A,X
E1F0- 18 1410 CLC # ELEMENTS IS 1 LARGER THAN
E1F1- 69 01 1420 ADC #1 DIMENSION VALUE
E1F3- AA 1430 TAX
E1F4- 68 1440 PLA
E1F5- 69 00 1450 ADC #0
E1F7- C8 1460 .5 INY ADD THIS DIMENSION TO ARRAY DESCRIPTOR
E1F8- 91 9B 1470 STA (LOWTR),Y
E1FA- C8 1480 INY
E1FB- 8A 1490 TXA
E1FC- 91 9B 1500 STA (LOWTR),Y
E1FE- 20 AD E2 1510 JSR MULTIPLY.SUBSCRIPT MULTIPLY THIS
1520 * DIMENSION BY RUNNING SIZE
1530 * ((LOWTR)) * (STRNG2) --> A,X
E201- 86 AD 1540 STX STRNG2 STORE RUNNING SIZE IN STRNG2
E203- 85 AE 1550 STA STRNG2+1
E205- A4 5E 1560 LDY INDEX RETRIEVE Y SAVED BY MULTIPLY.SUBSCRIPT
E207- C6 0F 1570 DEC NUMDIM COUNT DOWN # DIMS
E209- D0 DC 1580 BNE .4 LOOP TILL DONE
1590 *--------------------------------
1600 * NOW A,X HAS TOTAL # BYTES OF ARRAY ELEMENTS
1610 *--------------------------------
E20B- 65 95 1620 ADC ARYPNT+1 COMPUTE ADDRESS OF END OF THIS ARRAY
E20D- B0 5D 1630 BCS GME ...TOO LARGE, ERROR
E20F- 85 95 1640 STA ARYPNT+1
E211- A8 1650 TAY
E212- 8A 1660 TXA
E213- 65 94 1670 ADC ARYPNT
E215- 90 03 1680 BCC .6
E217- C8 1690 INY
E218- F0 52 1700 BEQ GME ...TOO LARGE, ERROR
E21A- 20 E3 D3 1710 .6 JSR REASON MAKE SURE THERE IS ROOM UP TO Y,A
E21D- 85 6D 1720 STA STREND THERE IS ROOM SO SAVE NEW END OF TABLE
E21F- 84 6E 1730 STY STREND+1 AND ZERO THE ARRAY
E221- A9 00 1740 LDA #0
E223- E6 AE 1750 INC STRNG2+1 PREPARE FOR FAST ZEROING LOOP
E225- A4 AD 1760 LDY STRNG2 # BYTES MOD 256
E227- F0 05 1770 BEQ .8 FULL PAGE
E229- 88 1780 .7 DEY CLEAR PAGE FULL
E22A- 91 94 1790 STA (ARYPNT),Y
E22C- D0 FB 1800 BNE .7
E22E- C6 95 1810 .8 DEC ARYPNT+1 POINT TO NEXT PAGE
E230- C6 AE 1820 DEC STRNG2+1 COUNT THE PAGES
E232- D0 F5 1830 BNE .7 STILL MORE TO CLEAR
E234- E6 95 1840 INC ARYPNT+1 RECOVER LAST DEC, POINT AT 1ST ELEMENT
E236- 38 1850 SEC
E237- A5 6D 1860 LDA STREND COMPUTE OFFSET TO END OF ARRAYS
E239- E5 9B 1870 SBC LOWTR AND STORE IN ARRAY DESCRIPTOR
E23B- A0 02 1880 LDY #2
E23D- 91 9B 1890 STA (LOWTR),Y
E23F- A5 6E 1900 LDA STREND+1
E241- C8 1910 INY
E242- E5 9C 1920 SBC LOWTR+1
E244- 91 9B 1930 STA (LOWTR),Y
E246- A5 10 1940 LDA DIMFLG WAS THIS CALLED FROM "DIM" STATEMENT?
E248- D0 62 1950 BNE RTS.9 YES, WE ARE FINISHED
E24A- C8 1960 INY NO, NOW NEED TO FIND THE ELEMENT
1970 *--------------------------------
1980 * FIND SPECIFIED ARRAY ELEMENT
1990 *
2000 * (LOWTR),Y POINTS AT # OF DIMS IN ARRAY DESCRIPTOR
2010 * THE SUBSCRIPTS ARE ALL ON THE STACK AS INTEGERS
2020 *--------------------------------
2030 FIND.ARRAY.ELEMENT
E24B- B1 9B 2040 LDA (LOWTR),Y GET # OF DIMENSIONS
E24D- 85 0F 2050 STA NUMDIM
E24F- A9 00 2060 LDA #0 ZERO SUBSCRIPT ACCUMULATOR
E251- 85 AD 2070 STA STRNG2
E253- 85 AE 2080 FAE.1 STA STRNG2+1
E255- C8 2090 INY
E256- 68 2100 PLA PULL NEXT SUBSCRIPT FROM STACK
E257- AA 2110 TAX SAVE IN FAC+3,4
E258- 85 A0 2120 STA FAC+3 AND COMPARE WITH DIMENSIONED SIZE
E25A- 68 2130 PLA
E25B- 85 A1 2140 STA FAC+4
E25D- D1 9B 2150 CMP (LOWTR),Y
E25F- 90 0E 2160 BCC FAE.2 SUBSCRIPT NOT TOO LARGE
E261- D0 06 2170 BNE GSE SUBSCRIPT IS TOO LARGE
E263- C8 2180 INY CHECK LOW-BYTE OF SUBSCRIPT
E264- 8A 2190 TXA
E265- D1 9B 2200 CMP (LOWTR),Y
E267- 90 07 2210 BCC FAE.3 NOT TOO LARGE
2220 *--------------------------------
E269- 4C 96 E1 2230 GSE JMP SUBERR BAD SUBSCRIPTS ERROR
E26C- 4C 10 D4 2240 GME JMP MEMERR MEM FULL ERROR
2250 *--------------------------------
E26F- C8 2260 FAE.2 INY BUMP POINTER INTO DESCRIPTOR
E270- A5 AE 2270 FAE.3 LDA STRNG2+1 BYPASS MULTIPLICATION IF VALUE SO
E272- 05 AD 2280 ORA STRNG2 FAR = 0
E274- 18 2290 CLC
E275- F0 0A 2300 BEQ .1 IT IS ZERO SO FAR
E277- 20 AD E2 2310 JSR MULTIPLY.SUBSCRIPT NOT ZERO, SO MULTIPLY
E27A- 8A 2320 TXA ADD CURRENT SUBSCRIPT
E27B- 65 A0 2330 ADC FAC+3
E27D- AA 2340 TAX
E27E- 98 2350 TYA
E27F- A4 5E 2360 LDY INDEX RETRIEVE Y SAVED BY MULTIPLY.SUBSCRIPT
E281- 65 A1 2370 .1 ADC FAC+4 FINISH ADDING CURRENT SUBSCRIPT
E283- 86 AD 2380 STX STRNG2 STORE ACCUMULATED OFFSET
E285- C6 0F 2390 DEC NUMDIM LAST SUBSCRIPT YET?
E287- D0 CA 2400 BNE FAE.1 NO, LOOP TILL DONE
E289- 85 AE 2410 STA STRNG2+1 YES, NOW MULTIPLY BE ELEMENT SIZE
E28B- A2 05 2420 LDX #5 START WITH SIZE = 5
E28D- A5 81 2430 LDA VARNAM DETERMINE VARIABLE TYPE
E28F- 10 01 2440 BPL .2 NOT INTEGER
E291- CA 2450 DEX INTEGER, BACK DOWN SIZE TO 4 BYTES
E292- A5 82 2460 .2 LDA VARNAM+1 DISCRIMINATE BETWEEN REAL AND STR
E294- 10 02 2470 BPL .3 IT IS REAL
E296- CA 2480 DEX SIZE = 3 IF STRING, =2 IF INTEGER
E297- CA 2490 DEX
E298- 86 64 2500 .3 STX RESULT+2 SET UP MULTIPLIER
E29A- A9 00 2510 LDA #0 HI-BYTE OF MULTIPLIER
E29C- 20 B6 E2 2520 JSR MULTIPLY.SUBS.1 (STRNG2) BY ELEMENT SIZE
E29F- 8A 2530 TXA ADD ACCUMULATED OFFSET
E2A0- 65 94 2540 ADC ARYPNT TO ADDRESS OF 1ST ELEMENT
E2A2- 85 83 2550 STA VARPNT TO GET ADDRESS OF SPECIFIED ELEMENT
E2A4- 98 2560 TYA
E2A5- 65 95 2570 ADC ARYPNT+1
E2A7- 85 84 2580 STA VARPNT+1
E2A9- A8 2590 TAY RETURN WITH ADDR IN VARPNT
E2AA- A5 83 2600 LDA VARPNT AND IN Y,A
E2AC- 60 2610 RTS.9 RTS
2620 *--------------------------------
2630 * MULTIPLY (STRNG2) BY ((LOWTR),Y)
2640 * LEAVING PRODUCT IN A,X. (HI-BYTE ALSO IN Y.)
2650 * USED ONLY BY ARRAY SUBSCRIPT ROUTINES
2660 *--------------------------------
E2AD- 84 5E 2670 MULTIPLY.SUBSCRIPT STY INDEX SAVE Y-REG
E2AF- B1 9B 2680 LDA (LOWTR),Y GET MULTIPLIER
E2B1- 85 64 2690 STA RESULT+2 SAVE IN RESULT+2,3
E2B3- 88 2700 DEY
E2B4- B1 9B 2710 LDA (LOWTR),Y
2720 *--------------------------------
2730 MULTIPLY.SUBS.1
E2B6- 85 65 2740 STA RESULT+3 LOW BYTE OF MULTIPLIER
E2B8- A9 10 2750 LDA #16 MULTIPLY 16 BITS
E2BA- 85 99 2760 STA INDX
E2BC- A2 00 2770 LDX #0 PRODUCT = 0 INITIALLY
E2BE- A0 00 2780 LDY #0
E2C0- 8A 2790 .1 TXA DOUBLE PRODUCT
E2C1- 0A 2800 ASL LOW BYTE
E2C2- AA 2810 TAX
E2C3- 98 2820 TYA HIGH BYTE
E2C4- 2A 2830 ROL IF TOO LARGE, SET CARRY
E2C5- A8 2840 TAY
E2C6- B0 A4 2850 BCS GME TOO LARGE, "MEM FULL ERROR"
E2C8- 06 AD 2860 ASL STRNG2 NEXT BIT OF MUTLPLICAND
E2CA- 26 AE 2870 ROL STRNG2+1 INTO CARRY
E2CC- 90 0B 2880 BCC .2 BIT=0, DON'T NEED TO ADD
E2CE- 18 2890 CLC BIT=1, ADD INTO PARTIAL PRODUCT
E2CF- 8A 2900 TXA
E2D0- 65 64 2910 ADC RESULT+2
E2D2- AA 2920 TAX
E2D3- 98 2930 TYA
E2D4- 65 65 2940 ADC RESULT+3
E2D6- A8 2950 TAY
E2D7- B0 93 2960 BCS GME TOO LARGE, "MEM FULL ERROR"
E2D9- C6 99 2970 .2 DEC INDX 16-BITS YET?
E2DB- D0 E3 2980 BNE .1 NO, KEEP SHUFFLING
E2DD- 60 2990 RTS YES, PRODUCT IN Y,X AND A,X
3000 *--------------------------------
3010 * "FRE" FUNCTION
3020 *
3030 * COLLECTS GARBAGE AND RETURNS # BYTES OF MEMORY LEFT
3040 *--------------------------------
E2DE- A5 11 3050 FRE LDA VALTYP LOOK AT VALUE OF ARGUMENT
E2E0- F0 03 3060 BEQ .1 =0 MEANS REAL, =$FF MEANS STRING
E2E2- 20 00 E6 3070 JSR FREFAC STRING, SO SET IT FREE IS TEMP
E2E5- 20 84 E4 3080 .1 JSR GARBAG COLLECT ALL THE GARBAGE IN SIGHT
E2E8- 38 3090 SEC COMPUTE SPACE BETWEEN ARRAYS AND
E2E9- A5 6F 3100 LDA FRETOP STRING TEMP AREA
E2EB- E5 6D 3110 SBC STREND
E2ED- A8 3120 TAY
E2EE- A5 70 3130 LDA FRETOP+1
E2F0- E5 6E 3140 SBC STREND+1 FREE SPACE IN Y,A
3150 * FALL INTO GIVAYF TO FLOAT THE VALUE
3160 * NOTE THAT VALUES OVER 32767 WILL RETURN AS NEGATIVE
3170 *--------------------------------
3180 * FLOAT THE SIGNED INTEGER IN A,Y
3190 *--------------------------------
E2F2- A2 00 3200 GIVAYF LDX #0 MARK FAC VALUE TYPE REAL
E2F4- 86 11 3210 STX VALTYP
E2F6- 85 9E 3220 STA FAC+1 SAVE VALUE FROM A,Y IN MANTISSA
E2F8- 84 9F 3230 STY FAC+2
E2FA- A2 90 3240 LDX #$90 SET EXPONENT TO 2^16
E2FC- 4C 9B EB 3250 JMP FLOAT.1 CONVERT TO SIGNED FP
3260 *--------------------------------
3270 * "POS" FUNCTION
3280 *
3290 * RETURNS CURRENT LINE POSITION FROM MON.CH
3300 *--------------------------------
E2FF- A4 24 3310 POS LDY MON.CH GET A,Y = (MON.CH, GO TO GIVAYF
3320 *--------------------------------
3330 * FLOAT (Y) INTO FAC, GIVING VALUE 0-255
3340 *--------------------------------
E301- A9 00 3350 SNGFLT LDA #0 MSB = 0
E303- 38 3360 SEC <<< NO PURPOSE WHATSOEVER >>>
E304- F0 EC 3370 BEQ GIVAYF ...ALWAYS
3380 *--------------------------------
3390 * CHECK FOR DIRECT OR RUNNING MODE
3400 * GIVING ERROR IF DIRECT MODE
3410 *--------------------------------
E306- A6 76 3420 ERRDIR LDX CURLIN+1 =$FF IF DIRECT MODE
E308- E8 3430 INX MAKES $FF INTO ZERO
E309- D0 A1 3440 BNE RTS.9 RETURN IF RUNNING MODE
E30B- A2 95 3450 LDX #ERR.ILLDIR DIRECT MODE, GIVE ERROR
E30D- 2C 3460 .HS 2C TRICK TO SKIP NEXT 2 BYTES
3470 *--------------------------------
E30E- A2 E0 3480 UNDFNC LDX #ERR.UNDEFFUNC UNDEFINDED FUNCTION ERROR
E310- 4C 12 D4 3490 JMP ERROR
3500 *--------------------------------
3510 * "DEF" STATEMENT
3520 *--------------------------------
E313- 20 41 E3 3530 DEF JSR FNC. PARSE "FN", FUNCTION NAME
E316- 20 06 E3 3540 JSR ERRDIR ERROR IF IN DIRECT MODE
E319- 20 BB DE 3550 JSR CHKOPN NEED "("
E31C- A9 80 3560 LDA #$80 FLAG PTRGET THAT CALLED FROM "DEF FN"
E31E- 85 14 3570 STA SUBFLG ALLOW ONLY SIMPLE FP VARIABLE FOR ARG
E320- 20 E3 DF 3580 JSR PTRGET GET PNTR TO ARGUMENT
E323- 20 6A DD 3590 JSR CHKNUM MUST BE NUMERIC
E326- 20 B8 DE 3600 JSR CHKCLS MUST HAVE ")" NOW
E329- A9 D0 3610 LDA #TOKEN.EQUAL NOW NEED "="
E32B- 20 C0 DE 3620 JSR SYNCHR OR ELSE SYNTAX ERROR
E32E- 48 3630 PHA SAVE CHAR AFTER "="
E32F- A5 84 3640 LDA VARPNT+1 SAVE PNTR TO ARGUMENT
E331- 48 3650 PHA
E332- A5 83 3660 LDA VARPNT
E334- 48 3670 PHA
E335- A5 B9 3680 LDA TXTPTR+1 SAVE TXTPTR
E337- 48 3690 PHA
E338- A5 B8 3700 LDA TXTPTR
E33A- 48 3710 PHA
E33B- 20 95 D9 3720 JSR DATA SCAN TO NEXT STATEMENT
E33E- 4C AF E3 3730 JMP FNCDATA STORE ABOVE 5 BYTES IN "VALUE"
3740 *--------------------------------
3750 * COMMON ROUTINE FOR "DEFFN" AND "FN", TO
3760 * PARSE "FN" AND THE FUNCTION NAME
3770 *--------------------------------
E341- A9 C2 3780 FNC. LDA #TOKEN.FN MUST NOW SEE "FN" TOKEN
E343- 20 C0 DE 3790 JSR SYNCHR OR ELSE SYNTAX ERROR
E346- 09 80 3800 ORA #$80 SET SIGN BIT ON 1ST CHAR OF NAME,
E348- 85 14 3810 STA SUBFLG MAKING $C0 < SUBFLG < $DB
E34A- 20 EA DF 3820 JSR PTRGET3 WHICH TELLS PTRGET WHO CALLED
E34D- 85 8A 3830 STA FNCNAM FOUND VALID FUNCTION NAME, SO
E34F- 84 8B 3840 STY FNCNAM+1 SAVE ADDRESS
E351- 4C 6A DD 3850 JMP CHKNUM MUST BE NUMERIC
3860 *--------------------------------
3870 * "FN" FUNCTION CALL
3880 *--------------------------------
E354- 20 41 E3 3890 FUNCT JSR FNC. PARSE "FN", FUNCTION NAME
E357- A5 8B 3900 LDA FNCNAM+1 STACK FUNCTION ADDRESS
E359- 48 3910 PHA IN CASE OF A NESTED FN CALL
E35A- A5 8A 3920 LDA FNCNAM
E35C- 48 3930 PHA
E35D- 20 B2 DE 3940 JSR PARCHK MUST NOW HAVE "(EXPRESSION)"
E360- 20 6A DD 3950 JSR CHKNUM MUST BE NUMERIC EXPRESSION
E363- 68 3960 PLA GET FUNCTION ADDRESS BACK
E364- 85 8A 3970 STA FNCNAM
E366- 68 3980 PLA
E367- 85 8B 3990 STA FNCNAM+1
E369- A0 02 4000 LDY #2 POINT AT ADD OF ARGUMENT VARIABLE
E36B- B1 8A 4010 LDA (FNCNAM),Y
E36D- 85 83 4020 STA VARPNT
E36F- AA 4030 TAX
E370- C8 4040 INY
E371- B1 8A 4050 LDA (FNCNAM),Y
E373- F0 99 4060 BEQ UNDFNC UNDEFINED FUNCTION
E375- 85 84 4070 STA VARPNT+1
E377- C8 4080 INY Y=4 NOW
E378- B1 83 4090 .1 LDA (VARPNT),Y SAVE OLD VALUE OF ARGUMENT VARIABLE
E37A- 48 4100 PHA ON STACK, IN CASE ALSO USED AS
E37B- 88 4110 DEY A NORMAL VARIABLE!
E37C- 10 FA 4120 BPL .1
E37E- A4 84 4130 LDY VARPNT+1 (Y,X)= ADDRESS, STORE FAC IN VARIABLE
E380- 20 2B EB 4140 JSR STORE.FAC.AT.YX.ROUNDED
E383- A5 B9 4150 LDA TXTPTR+1 REMEMBER TXTPTR AFTER FN CALL
E385- 48 4160 PHA
E386- A5 B8 4170 LDA TXTPTR
E388- 48 4180 PHA
E389- B1 8A 4190 LDA (FNCNAM),Y Y=0 FROM MOVMF
E38B- 85 B8 4200 STA TXTPTR POINT TO FUNCTION DEF'N
E38D- C8 4210 INY
E38E- B1 8A 4220 LDA (FNCNAM),Y
E390- 85 B9 4230 STA TXTPTR+1
E392- A5 84 4240 LDA VARPNT+1 SAVE ADDRESS OF ARGUMENT VARIABLE
E394- 48 4250 PHA
E395- A5 83 4260 LDA VARPNT
E397- 48 4270 PHA
E398- 20 67 DD 4280 JSR FRMNUM EVALUATE THE FUNCTION EXPRESSION
E39B- 68 4290 PLA GET ADDRESS OF ARGUMENT VARIABLE
E39C- 85 8A 4300 STA FNCNAM AND SAVE IT
E39E- 68 4310 PLA
E39F- 85 8B 4320 STA FNCNAM+1
E3A1- 20 B7 00 4330 JSR CHRGOT MUST BE AT ":" OR EOL
E3A4- F0 03 4340 BEQ .2 WE ARE
E3A6- 4C C9 DE 4350 JMP SYNERR WE ARE NOT, SLYNTAX ERROR
E3A9- 68 4360 .2 PLA RETRIEVE TXTPTR AFTER "FN" CALL
E3AA- 85 B8 4370 STA TXTPTR
E3AC- 68 4380 PLA
E3AD- 85 B9 4390 STA TXTPTR+1
4400 * STACK NOW HAS 5-BYTE VALUE
4410 * OF THE ARGUMENT VARIABLE,
4420 * AND FNCNAM POINTS AT THE VARIABLE
4430 *--------------------------------
4440 * STORE FIVE BYTES FROM STACK AT (FNCNAM)
4450 *--------------------------------
4460 FNCDATA
E3AF- A0 00 4470 LDY #0
E3B1- 68 4480 PLA
E3B2- 91 8A 4490 STA (FNCNAM),Y
E3B4- 68 4500 PLA
E3B5- C8 4510 INY
E3B6- 91 8A 4520 STA (FNCNAM),Y
E3B8- 68 4530 PLA
E3B9- C8 4540 INY
E3BA- 91 8A 4550 STA (FNCNAM),Y
E3BC- 68 4560 PLA
E3BD- C8 4570 INY
E3BE- 91 8A 4580 STA (FNCNAM),Y
E3C0- 68 4590 PLA
E3C1- C8 4600 INY
E3C2- 91 8A 4610 STA (FNCNAM),Y
E3C4- 60 4620 RTS