
3250
BOEC
C8
3260
BOEO
C640
3270
BOEF
F00C
3280
BOFI
00F2
3290
BOF3
C8
3300
BOF4
203FBE
33l1tl
BDF7
9090
3320
BDF9
01C7
3330
BDFB
D0AD
3340
3350
BDFD
A538
3360
BDFF
DIHJ5
3370
BE01 E630
3380
BE03
4C96BD
3390
BE06
AItl00
3400
BE08 843B
3410
BE0A
2060BF
3420
BE0D
C924
3430
BE0F
D002
3440
BEll
E63B
3450
BEl3 C925
3460
BE15
DIHJ6
3470
BE17
A902
3480
BE19 853B
3490 BEIB
F00B
3500
BEID C928
35l1tl
BEIF
D01l7
3521l
BE21
A91l3
3531l
BE23
853B
3540 BE25
4C38BE
3550
3560
BE28
A53B
3570
BE2A
F00C
3580
BE2C
B139
3590
BE2E
C928
361l1l
BE30 D006
3610
BE32 E63B
3620
BE34 E63B
3630
BE36
E63B
3640
BE38
A63B
3650
BE3A
F631
3660
BE3C
4C96BD
3670
3680
3690
3701l
3710
3720
3730
3740
3750
BE3F
A201l
3760
BE41
A139
3771l
BE43
F029
3780
BE45 C98E
3790
BE47
F027
3800
BE49 C922
38l1tl
BE4B
FIl2C
3820
BE4D
20CIBE
3830
BE50
C920
3840
BE52
F0EB
3850
BE54 C92E
3860
BE56
D004
3870
BE58 C900
3880
BE5A
D010
3890
BE5C
C930
3900
BE5E
900E
3911l BE60 C93A
3921l
BE62 9008
3930"
BE64 C941
3941l
BE66
9006
3951l
BE68 C95B
3960
BE6A
B01l2
3970
BE6C
38
3980
BE6D
60
3990
BE6E
18
41l01l
BE6F
61l
4011l
4020 BE70 20CIBE
4030
BE73 A139
41140
BE75 F0C8
4050
BE77
D0F7
S5
FOUND
FVAR
Fl
F2
F3
TOTAL
GETCHR
Gl
BACK
BACKI
REM
INY
GET
SET
FOR
NEXT
CHARACTER
DEC
TESTLN
WE
HAVE'
TESTED
ANOTHER
CHARACTER
BEQ
FOUND
IF
Il
THEN
WE
HAVE
CHECKED
THE
STRING
BNE
S4LP TEST
THE
NEXT
CHARACTER
INY
GET
SET
FOR
SECOND
CHARACTER
IN
STRING
JSR
GETCHR
GET
THE
NEXT
CHARACTER
FROM
BASIC LINE
BCC
SRLOOP
;
NON-ALPHA
SO
PRESS
ON
CMP
(VARPNT),Y ;
ARE
THEY
THE
SAME
BNE
CONTSH
NO,
LETS
SEARCH
SOME
MORE
WHAT
ARE
WE
SEARCHING
FOR
LDA
SFLAG
BNE
FVAR
INC
NUMCNT
JMP
SRLOOP
LDY
11$00
STY
TEMP
JSR
NXTNAL
CMP
11'$
BNE
Fl
BRANCH
IF
SEARCHING
FOR
A
VARIABLE
INCREMENT
THE
NUMERIC
COUNTER
INITIALIZE
TEMP:
DETERMINE
VAR
TYPE
GET
THE
FIRST
CHAR
AFTER
THE
VARIABLE
IS
IT
A STRING?
INC
TEMP
CMP
11'%
BNE
F2
LDA
1I$1l2
STA
TEMP
BEQ
F3
NO
SET
TEMP
TO
1
IS
IT
AN
INTEGER?
NO
YES,
ADJUST
TEMP
SEE
IF
IT'S
SUBSCRIPTED
CMP
II'
(
BNE
F3
IS
IT
A
SUBSCRIPTED
FLOATING
POINT
VAR
NO
IT'S
NOT
LDA
1I$1l3
STA
TEMP
JMP
TOTAL
;
LDA
TEMP
BEQ
TOTAL
LDA
(LNPNT),Y
CMP
11'(
BNE
TOTAL
INC
TEMP
INC
TEMP
INC
TEMP
LDX
TEMP
INC
ZPAGE,X
JMP
SRLOOP
YES,
ADJUST
TEHP
TO
REFLECT
THIS
LETS
GO
TALLY
IS
IT
A SUBSCRIPTED
VARIABLE
NO,
LETS
TALLY
YES
ADJUST
TE~IP
TO
REFLECT
VHIS
ADJUST
THE
PROPER
V.
COUNTER
LETS
SEARCH
AGAIN
J-----------------------------------------
;
GET
CHARACTER
ROUTINE
;
RETURNS
WITH
CARRY
SET
IF
ALPHA/NUMERIC
;
CARRY
IS
CLEAR
IF
NOT
; Z
FLAG
USED
ONLY
FOR
NULL,
END
OF
LINE
i-----------------------------------------
;
LDX
11$00
;
LDA
(LNPNT,X)
BEQ
BACKI
CMP
#$8E
BEQ
REM
CMP
11$22
BEQ
QUOTE
JSR
BLNPNT
eMP
11$20
BEQ
GETCHR
CMP
i$2E
BNE
Gl
GET
SET
FOR
INDEXED
LOAD
;
GET
THE
NEXT
CHARACTER
IF
NULL
THEN
RETURN
IS
IT
THE
'REM'
YES,
LET'S
GO
TO
THE
NEXT
LINE
HAVE
WE
FOUND
A
QUOTATION
YES,
LETS
SKIP
IT
GET
SET
FOR
NEXT
CHARACTER
IS
IT
THE
SPACE
TRY
AGAIN
IS
IT
A'.'
NO,
PRESS
ON
CMP
11$00
THIS
WAS
ADDED
TO
CLEAR
THE
'z'
FLAG
BNE
BACK
CMP
i$31l
BCC
BACKI
CMP
1I$3A
BCC
BACK
CMP
#$41
BCC
BACKI
CMP
1I$5B
BCS
BACKI
SEC
RTS
CLC
RTS
;
CHAR>
ASCII
'Il'
YES,
LET'S
GO
BACK
CHAR
ASCII
'9'
OR
LESS
YES,
LET'S
RETURN
WITH
IT
CHAR
LESS
THAN
ASCII
'A'
YES,
LET'S
GO
BACK
CHAR
GREATER
THAN
ASCII
'z'
NO,
IT'S
NOT
SET
CARRY
FOR
ALPHA/NUMERIC
CLEAR
CARRY
(NON-ALPHA)
JSR
BLNPNT
;
GET
SET
FOR
NEXT
CHARACTER
LDA
(LNPNT,X) ;
GET
ITI
BEQ
GETCHR
WE
FOUND
A
NULL
SO
TRY
AGAIN
BNE
RE~I
NO
NULL
SO
GET
NEXT
CHARACTER
Page
29
PEEK[65]
Summer 1986
Comments to this Manuals