100% found this document useful (2 votes)
74 views35 pages

Twilight Saga The Breaking Dawn Part 1

The document provides information on ordering the Twilight Saga: Breaking Dawn Part 1 from alibris.com, including its ISBN, file formats, and customer service details. It emphasizes the availability of multiple formats like PDF and EPUB for download. Additionally, it encourages visitors to explore a wide collection of resources on the website.

Uploaded by

selenepu9281
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
74 views35 pages

Twilight Saga The Breaking Dawn Part 1

The document provides information on ordering the Twilight Saga: Breaking Dawn Part 1 from alibris.com, including its ISBN, file formats, and customer service details. It emphasizes the availability of multiple formats like PDF and EPUB for download. Additionally, it encourages visitors to explore a wide collection of resources on the website.

Uploaded by

selenepu9281
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Twilight Saga The Breaking Dawn Part 1

Order directly from [Link]


( 4.4/5.0 ★ | 498 downloads )
-- Click the link to download --

[Link]
530025192135866&type=15&murl=http%3A%2F%[Link]%2Fsearch%2
Fbooks%2Fisbn%2F0025192135866
Twilight Saga The Breaking Dawn Part
1

ISBN: 0025192135866
Category: Media > DVDs & Movies
File Fomat: PDF, EPUB, DOC...
File Details: 13.8 MB
Language: English
Website: [Link]
Short description: New Size: 0x0x0; All orders professionally packed
and shipped from the USA within 24 hours. Multilingual, friendly, and
intelligent customer service!

DOWNLOAD: [Link]
offerid=1494105.26530025192135866&type=15&murl=http%3A%2F%2F
[Link]%2Fsearch%2Fbooks%2Fisbn%2F0025192135866
Twilight Saga The
Breaking Dawn Part 1

• Click the link: [Link]


6&type=15&murl=http%3A%2F%[Link]%2Fsearch%2Fbooks%2Fisbn%2F0025192135866 to do
latest version of Twilight Saga The Breaking Dawn Part 1 in multiple formats such as PDF, EPUB, and
more.
• Don’t miss the chance to explore our extensive collection of high-quality resources, books, and guides on
our website. Visit us regularly to stay updated with new titles and gain access to even more valuable
materials.
.
AE83 6C0A03 AE86 A900 AE88 850D AE8A 207300 AE8D
B003 AE8F 4CF3BC AE92 2013B1 AE95 9003 AE97 4C28AF AE9A
C9FF AE9C D00F AE9E A9A8 AEAO AOAE AEA2 20A2BB AEA5
4C7300 AEA8 82490F AEAD AEAF AEB1 AEB3 AEB5 AEB7 AEB9
AEBB AEBD AEBF AEC1 AEC3 AEC5 AEC6 AEC9 C92E FODE C9AB
F058 C9AA F0D1 C922 DOOF A57A A47B 6900 9001 C8 2087B4
4CE2B7 AECC C9A8 AECE D013 AEDO A018 AED2 D03B 2158 2159
2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171
2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183
2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195
2196 2197 2198 2199 2200 2201 2202 SAE83 JMP (X030A) ;get
arithmetic element (normally AE86) > ;get arithmetic element into
flp accu LDA $00 STA ZOD BAE8A JSR X0O73 BCS BAE92 BAE8F JMP
SBCF3 BAE92 JSR SB113 BCC BAE9A JMP JAF28 BAE9A CMP $FF
BNE BAEAD LDA TAEA8 JSR SBBA2 JMP X0073 ;set string flag to not
string ;get next character ;if numeric, ;gather number ; check for
alphabetic character ;if so, get value for variable ;if code for PI ;let
AY point to value for PI ;load value into flp accu ;get next charcter
flp value for PI TAEA8 .BY $82,$49,$0F,$DA,$A1 BAEAD CMP '. BEQ
BAE8F CMP $AB BEQ BAFOD CMP $AA BEQ BAE8A CMP '" BNE
BAECC SAEBD LDA Z7A LDY Z7B ADC $00 BCC BAEC6 INY BAEC6
JSR SB487 JMP SB7E2 BAECC CMP $A8 BNE BAEE3 LDY $18 BNE
BAFOF ;if decimal point ; gather number ;if minus sign ;do recursive
get value ;if plus ; ignore ;if quote ;get pointer to first char of string
;into Y ;get ptr to desc of constant string ;set current ptr after string
;if NOT ;set index for NOT ;do recursive get value 48
2204 2205 ; monadic "NOT" command AED4 20BFB1 2206
WAED4 JSR SB1BF AED7 A565 AED9 49FF AEDB A8 AEDC A564
AEDE 49FF AEEO 4C91B3 2212 2213 2207 2208 2209 2210 2211
LDA Z65 EOR $FF TAY LDA Z64 EOR $FF JMP JB391 ; convert flp to
integer ;get complement of low byte into A ;get complement of high
byte in A ; convert integer to flp continuation of GET operand ;if FH
2214 2215 2216 BAEE3 CMP $A5 2217 BNE BAEEA JMP JB3F4 AEE3
C9A5 AEE5 D003 AEE7 4CF4B3 2218 2219 ; AEEA C9B4 2220 BAEEA
CMP $B4 AEEC 9003 2221 BCC BAEF1 AEEE 4CA7AF 2222 JMP
JAFA7 2223 ; AEF1 20FAAE 2224 BAEF1 JSR SAEFA AEF4 209EAD
2225 JSR SAD9E 2226 ; 2227 ; check and skip characters 2228 ; ;
expand function ;if code for SGN or higher ;go apply function ;
SYNTAX Error if no jevaluate expression '(" present AEF7 A929 2229
SAEF7 LDA ') ; check for ")" AEF9 2C 2230 .BY $2C ;skip next
instruction AEFA A928 2231 SAEFA LDA '( ; check for "(" AEFC 2C
2232 .BY $2C ;skip next instruction AEFD A92C 2233 SAEFD LDA ', ;
check for " , " AEFF A000 2234 SAEFF LDY $00 ; check for code in A
AF01 D17A 2235 CMP (Z7A),Y ;if current character < > to parame
AF03 D003 2236 BNE JAF08 ;then SYNTAX Error AF05 4C7300 2237
2238 ; JMP X0073 ;else get next character and return AF08 A20B
2239 JAF08 LDX $0B ; point to SYNTAX Error message AFOA 4C37A4
2240 2241 ; JMP JA437 ; print message 2242 ; recursive get value
2243 ; AFOD A015 2244 BAFOD LDY $15 ;set index for "-" AFOF 68
2245 BAFOF PLA ; remove own return address AF10 68 2246 PLA
AF11 4CFAAD 2247 2248 ; JMP JADFA ;do pseudo diadic 2249 ;
check variable pointer range 2250 ; AF14 38 2251 SAF14 SEC AF15
A564 2252 LDA Z64 AF17 E900 2253 SBC $00 AF19 A565 2254 LDA
Z65 AF1B E9A0 2255 SBC $A0 AF1D 9008 2256 BCC BAF27 ;exit
with C clear if pointer < $A0 AF1F A9A2 2257 LDA $A2 AF21 E564
2258 SBC Z64 AF23 A9E3 2259 LDA $E3 AF25 E565 2260 SBC Z65 ;
clear C if $E342 < pointer AF27 60 2261 BAF27 RTS 49
;get value of variable 2263 2264 AF28 208BB0 2265 JAF28
JSR SB08B AF2B 8564 2266 STA Z64 AF2D 8465 2267 STY Z65 AF2F
A645 2268 LDX Z45 AF31 A446 2269 LDY Z46 AF33 A50D 2270 LDA
ZOD AF35 F026 2271 BEQ BAF5D AF37 A900 2272 LDA $00 AF39
8570 2273 STA Z70 AF3B 2014AF 2274 JSR SAF14 AF3E 90 1C 2275
BCC BAF5C AF40 E054 2276 CPX 'T AF42 D018 2277 BNE BAF5C
AF44 C0C9 2278 CPY $C9 AF46 D014 2279 BNE BAF5C AF48 2084A1
' 2280 JSR SAF84 AF4B 845E 2281 STY Z5E AF4D 88 2282 DEY AF4E
8471 2283 STY Z71 AF50 A006 2284 LDY $06 AF52 84 5D 2285 STY
Z5D AF54 A024 2286 LDY $24 AF56 2068BE 2287 JSR SBE68 AF59
4C6FB4 2288 2289 ; JMP JB46F AF5C 60 2290 BAF5C 2291 ; : RTS
AF5D 240E 2292 BAF5D i BIT ZOE AF5F 100D 2293 BPL BAF6E AF61
A00O 2294 LDY $00 AF63 B164 2295 LDA (Z64),Y AF65 AA 2296
TAX AF66 C8 2297 INY AF67 B164 2298 LDA (Z64),Y AF69 A8 2299
TAY AF6A 8A 2300 TXA AF6B 4C91B3 2301 2302 ; JMP JB391 AF6E
2014AF 2303 BAF6E JSR SAF14 AF71 902D 2304 BCC BAFAO AF73
E054 2305 CPX 'T AF75 D01B 2306 BNE BAF92 AF77 C049 2307 CPY
'I AF79 D025 2308 BNE BAFAO AF7B 2084AF 2309 JSR SAF84 AF7E
98 2310 TYA AF7F A2A0 2311 LDX $A0 AF81 4C4FBC 2312 JMP
JBC4F {gather name and get pointer to variable ;save pointer to
variable ;get name of variable ;if not a string ;go check for integer
and flp ; check for pointer < $A000 or > $E342 ;yes, return ;if first
character of variable not T, ; return j if second character ■= "I$" ;get
time in flp accu ; clear exponent base 10 {initialize output index ;and
t of digits before decimal point ;set table index for time conversion
;convert flp to string ;get description of string into flp accu ;if integer
variable ;get integer value in AY {convert integer to flp {if not
normal variable {and if first character is T ;and second character is I
{get time into flp accu {set exponent {sign and guard bits 50
2314 2315 AF84 20DEFF 2316 AF87 8664 2317 AF89 8463
AF8B 8565 AF8D AOOO AF8F 8462 AF91 60 get time in flp accu ;
fetch time 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327
2328 2329 SAF84 JSR XFFDE STX Z64 STY Z63 STA Z65 LDY $00
STY Z62 RTS ;store time AF92 E053 AF94 DOOA AF96 C054 AF98
D006 AF9A 20B7FF 2330 AF9D 4C3CBC 2331 2332 AFAO A564 2333
AFA2 A465 2334 AFA4 4CA2BB 2335 2336 2337 2338 2339 2340
2341 ; continue to get value of variable ;if first character is S ;and
second character is T AFA7 OA AFA8 48 AFA9 AA AFAA 207300 2342
AFAD E08F 2343 AFAF 9020 2344 AFB1 20FAAE 2345 AFB4 209EAD
2346 AFB7 20FDAE 2347 AFBA 208FAD 2348 AFBD 68 2349 AFBE AA
2350 AFBF A565 2351 AFC1 48 2352 AFC2 A564 2353 AFC4 48 2354
AFC5 8A 2355 AFC6 48 2356 AFC7 209EB7 2357 AFCA 68 2358
AFCB A8 2359 AFCC 8A 2360 AFCD 48 2361 AFCE 4CD6AF 2362
2363 AFD1 20F1AE 2364 AFD4 68 2365 AFD5 A8 2366 AFD6 B9EA9F
2367 AFD9 8555 2368 AFDB B9EB9F 2369 AFDE 8556 2370 AFEO
205400 2371 AFE3 4C8DAD 2372 BAF92 CPX 'S BNE BAFAO CPY 'T
BNE BAFAO JSR XFFB7 JMP JBC3C BAFAO LDA Z64 LDY Z65 JMP
SBBA2 ;apply function JAFA7 ASL A PHA TAX JSR X0073 CPX $8F
BCC BAFD1 JSR SAEFA JSR SAD9E JSR SAEFD JSR SAD8F PLA TAX
LDA Z65 PHA LDA Z64 PHA TXA PHA JSR SB79E PLA TAY TXA PHA
JMP JAFD6 ;get status word ;move signed # from A into flp accu ;for
normal variables, put pointer in AY ;load flp accu from AY ; index
byte * 2 ;save index ;get next character ;if function with more than
1 parameter ;next character must be "(" ;evaluate expression ;next
character must be "," ; result must be a string value ; res tore index
;save pointer to description on stack ;save index again ;get next
integer value into X ; restore index ; index in Y ;save integer
parameter ;get value in parenthesis ; restore index BAFD1 JSR
BAEF1 PLA TAY JAFD6 LDA X9FEA.Y ;get pointer to function routine
STA Z55 ;into Z55/Z56 LDA X9FEA+1.Y STA Z56 JSR X0054 ;
perform function JMP SAD8D ; return with correct string flag 51
AFE6 AOFF AFE8 2C AFE9 AFEB AFED AFFO AFF2 AFF4
AFF6 AFF8 AFFA AFFC AFFF BOO 2 B004 BOOb B008 BOOA BOOB
BOOL BOOF BOll B013 AOOO S40B 20BFB1 A564 450B 8507 A565
450B 8508 20FCBB 20BFB1 A565 450B 2508 450B A8 A564 450B
2507 450B «C91B3 2374 2375 2376 2377 2378 2379 2380 2381
2362 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393
2394 2395 2396 2397 2398 2399 2400 2401 ; "OH" command
WAFE6 LDY $FF .BY $2C ; "AWD" command WAFE9 LuY STY JSR
LDA EOR STA LDA EOR STA JSR JSR LDA EOR AND EOR TAY LDA
EOR AND EOR JMP $00 ZOB SB1BF Z64 ZOB Z07 Z65 ZOB Z08
SBBFC SB1BI Z65 ZOB Z08 ZOB Z64 ZOB Z07 ZOB JB391 ;set
parameter to complement operands ;skip next instruction ; set no
complement of operands ; store the parameter ; convert left
operand to integer ;get high byte ; complement if OK ; save result
;get low byte ; complement if OR ; save result ;move second flp
accu to first flp accu ; convert right operand to integer ;get low byte
; complement if OR ;AND with left operand ; complement if OR ;
save result ;get high byte ; complement if OR ;AKD with other
operand ; complement if OR ; convert integer from AY to flp accu 52
B016 B019 B01B BOID BOIF B021 B023 B025 B027 B02A
B02B 2090AD B013 A56E 097F 256A 856A A969 AOOO 205BBC AA
4C61BO B02E A900 B030 850D B032 C64D B034 20A6B6 B037 8561
B039 8662 B03B 8463 B03D A56C B03F A46D B041 20AAB6 B044
866C B046 846D B048 AA B049 38 B04A E561 B04C FO08 B04E
A901 B050 9004 B052 A661 B054 A9FF B056 8566 B058 AOFF BO 5
A E8 B05B C8 B05C CA B05D D007 B05F A666 B061 300F B063 18
B064 900C B066 B16C B068 D162 B06A FOEF B06C A2FF B06E B002
B070 A201 B072 E8 B073 8A B074 2A B075 2512 B077 F002 B079
A9FF B07B 4C3CBC 2403 ;"" 2404 ; 2405 WB016 2406 2407 2408
2409 2410 2411 2412 2413 2414 2415 2416 ; 2417 BB02E 2418
2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430
2431 2432 2433 2434 2435 2436 2437 BB056 2438 2439 2440
BB05B 2441 2442 2443 2444 JB061 2445 2446 2447 BB066 2448
2449 2450 2451 2452 2453 BB072 2454 2455 2456 2457 2458 2459
BB07B command JSR SAD90 BCS BB02E LDA Z6E ORA $7F AND Z6A
STA Z6A LDA Z69 JSR SBC5B TAX JMP JB061 LDA $00 STA ZOD DEC
Z4D JSR SB6A6 STA Z61 STX Z62 STY Z63 LDA Z6C LDY Z6D JSR
SB6AA STX Z6C STY Z6D TAX SEC SBC Z61 BEQ BB056 LDA $01
BCC BB056 LDX Z61 LDA $FF STA Z66 LDY $FF INX INY DEX BNE
BB066 LDX Z66 BMI BB072 CLC BCC BB072 LDA (Z6C),Y CMP
(Z62),Y BEQ BB05B LDX $FF BCS BB072 LDX $01 INX TXA ROL A
AND Z12 BEQ BB07B LDA $FF JMP JBC3C ; check value of A ;if
string, go compare strings ; Include sign bit ;into byte 1 ;of fraction
of second flp accu ;set AY to second flp accu ;compare AY with flp
accu (save result of comparison ; check with <=> code ; reset string
flag ;also remove saved string flag ;de-allocate temp, string (right
op) ;get text pointer of left operand ;de-allocate temp, string (left
op) ;save text pointer ;save length of left operand ; compare lengths
(left-right) ;if equal, A=0 ;set A to 1 ;if left operand longer, ;get
length of shorter string ;and set A to -1 ;save sign of left-right ;set
start index into strings ;point to next character ;if more characters,
compare ;if not, restore sign of left-right ;set correct C bit ;JMP ;get
character from left string ;compare to character from right string ;if
equal, repeat ;X = -1 if character from left higher ;X = 1 if character
from left lower ;X - 0, 1 or 2 for left > = < ; convert to 1, 2 or 4
;mask with <=> code ;if zero, result = false (0) ;if non-zero, result
= true (-1) ;go get signed # from A into flp accu 53
B07E 20FDAE B081 AA B082 2090B0 B085 207900 B088
D0F4 B08A 60 B08B B08D B090 B092 B094 B097 B09A B09C A200
207900 860C 8545 207900 2013B1 B003 4C08AF B09F B0A1 B0A3
B0A5 B0A8 BOAA BO AD BOAF BOBO B0B3 B0B5 B0B8 BOBA BOBC
BOBE BOCO B0C2 B0C4 B0C6 B0C8 BOCA BOCC BOCE BODO B0D2
B0D4 B0D5 BOD 7 B0D8 BODB BODD BODE BOEO B0E2 B0E4 A200
860D 860E 207300 9005 2013B1 900B AA 207300 90FB 2013B1
B0F6 C924 D006 A9FF 850D D010 C925 D013 A510 DODO A980
850E 0545 8545 8A 0980 AA 207300 8646 38 0510 E928 D003
4CD1B1 B0E7 AOOO B0E9 8410 BOEB A52D BOED A62E 2461 2462
2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474
2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486
2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498
2499 2500 2501 2502 2503 2504 2505 2506 2507 2.508 2509 2510
2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 ; "DIM"
command » BB07E JSR SAEFD WB081 TAX JSR SB090 JSR X0079
BNE BB07E RTS ; SYNTAX Error If not "," ; gather name and pointer
to variable ;get current character ;lf not end of statement, repeat
;get name and pointer to a variable BBOAF BBOBO SB08B LDX $00
JSR X0079 SB090 STX ZOC SB092 STA Z45 JSR X0079 JSR SB113
BCS BB09F BB09C JMP JAF08 » BB09F LDX $00 STX ZOD STX ZOE
JSR X0073 BCC BBOAF JSR SB113 BCC BBOBA TAX JSR XO073 BCC
BBOBO JSR SB113 BCS BBOBO BBOBA CMP '$ BNE BB0C4 LDA $FF
STA ZOD BNE BB0D4 BB0C4 CMP '% BNE BBODB LDA Z10 BNE
BB09C LDA $80 STA ZOE ORA Z45 STA Z45 BBOD4 TXA ORA $80
TAX JSR XO073 BBODB STX Z46 SEC ORA Z10 SBC '( BNE BBOE7
JMP JB1D1 BBOE7 LDY $00 STY Z10 LDA Z2D LDX Z2E ;set code for
ref, not declaration ;get current character ;set reference/declaration
flag ;store first character of name ;get current character ;if not
alphabetic ;then SYNTAX Error message ;set flags ;to not string ;and
not integer ;get next character ;if numeric ;or alphabetic ;save
second character in X ;get next character ; until first non-numeric
character ;not alphabetic ;if terminator is "$" ;then set flag for
strings ;if terminator is "%" ;and integers not allowed ;then SYNTAX
Error ;else set integer flag and ;add bit 7 to first char of name ;add
bit 7 to 2nd char of name ;for both string and integer ;get next
character ;save second character name ;if arrays allowed ;and next
character is "(" ; handle dimensioned variable ;reset no integers or
arrays switch ;AX=pointer to variable name table 54
BOEF 8660 B0F1 855F B0F3 E430 B0F5 D004 B0F7 C52F
B0F9 F022 BOFB A545 BOFD D15F BOFF D008 B101 A546 B103 C8
B104 D15F B106 F07D B108 88 B109 18 B10A A55F B10C 6907
B10E 90E1 BUO E8 Bill DODC 2521 BBOEF SIX Z60 2522 BB0F1 STA
Z5F 2523 CPX Z30 2524 BNE BBOFB 2525 CMP Z2F 2526 BEQ
BB11D 2527 BBOFB LDA Z45 2528 2529 2530 2531 2532 2533 2534
2535 BB109 2536 2537 2538 2539 2540 2541 B113 C941 B115 9005
B117 E95B B119 38 B11A E9A5 B11C 60 BUD 68 B11E 48 B11F
C92A B121 D005 B123 A913 B125 AOBF B127 60 B128 B12A B12C
B12E B130 B132 B134 B136 B138 B13B B13D B13F B141 B143 B145
B147 CMP (Z5F),Y BNE BB109 LDA Z46 INY CMP (Z5F),Y BEQ BB185
DEY CLC LDA Z5F ADC $07 BCC BB0F1 INX BNE BBOEF ;lf at end of
name table ;then variable not found ;lf name matches ;then variable
found ;set AX to entry + 7 2542 2543 2544 2545 2546 2547 2548
2549 2550 2551 ; continue search > ; check character in A ; return
with C-l ;return with C=0 A545 A446 C954 DOOB C0C9 FOEF C049
D003 4C08AF C953 D004 C054 F0F5 A52F A430 855F SB113 CMP 'A
BCC BB11C SBC 'Z+l SEC SBC $A5 2552 BB11C RTS 2553 ; 2554 ;
variable not found 2555 ; 2556 BB11D PLA 2557 PIIA 2558 CMP $2A
2559 BNE BB128 2560 BB123 LDA $13 2561 LDY $BF 2562 RTS
2563 ; 2564 BB128 LDA Z45 2565 2566 2567 2568 2569 2570 2571
LDY Z46 CMP 'T BNE BB13B CPY $C9 BEQ BB123 CPY 'I BNE BB13B
2572 BB138 JMP JAF08 2573 ; 2574 BB13B CMP 'S 2575 BNE BB143
2576 CPY 'T 2577 BEQ BB138 2578 BB143 LDA Z2F 2579 LDY Z^O
2580 STA Z5F alphabetic not ;if character < "A" ; return with C = 0
;if character > "Z" then C - 0 ;else return with C=l ;if low byte of
return address - $2A (if called from GET VALUE OF VARIABLE) ;
return with AY pointing to ;a dummy variable (value 0) ;if name =
TI$ ; return with dummy value ;if narae=TI ;then SYNTAX Error ;if
name- ST ;then SYNTAX Error ;set AY to pointer to end of name
table ;and save as start of input for move 55
B149 BUB B14D B14F B151 B153 B154 B156 B158 B159
B15B B15D B160 B162 B164 B165 B167 B169 B16B B16D B16F B170
B172 B174 B176 B177 B179 B17A B17C B17D B17F B180 B182 B183
8460 A531 A432 855A 845B 18 6907 9001 C8 8558 8459 20B8A3
A558 A459 C8 852F 8430 A000 A545 915F C8 A546 915F A900 C8
915F C8 915F C8 915F C8 915F C8 915F B185 A55F B187 18 B188
6902 B18A A460 B18C 9001 B18E C8 B18F 8547 B191 8448 B193 60
2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592
2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604
2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616
2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 STY LDA
LDY STA STY CLC ADC BCC INY BB159 STA STY JSR LDA LDY INY
STA STY LDY LDA STA INY LDA STA LDA INY STA INY STA INY STA
INY STA INY STA Z60 Z31 Z32 Z5A Z5B $07 BB159 Z58 Z59 SA3B8
Z58 Z59 Z2F Z30 $00 Z45 (Z5F),Y Z46 (Z5F),Y $00 (Z5F),Y (Z5F),Y
(Z5F),Y (Z5F),Y (Z5F),Y ; variable found BB185 LDA Z5F CLC ADC
$02 LDY Z60 BCC BB18F INY BB18F STA Z47 STY Z48 RTS »AY-
pointer to end of array area ;add 7 to pointer for one entry ;into
pointer to end of output for move ; check for space and move bytes
;AY=beginning of output area ;for move routine ;move to pointer to
end of name table ;store first byte of name in byte 0 ;store second
byte of name in byte 1 ;clear bytes 2-6 (value) ;return pointer to
entry ;plus 2 ;in variable address and AY 56
B194 A50B B196 OA B197 6905 B199 655F B19B A460
B19D 9001 B19F C8 B1A0 8558 B1A2 8459 B1A4 60 B1A5 908000
B1AA 20BFB1 B1AD A564 B1AF A465 B1B1 60 B1B2 207300 B1B5
209EAD B1B8 208DAD BIBB A566 B1BD 300D B1BF B1C1 B1C3
B1C5 B1C7 B1C9 B1CC BICE A561 C990 9009 A9A5 A0B1 205BBC
D07A 4C9BBC 2628 2629 2630 2631 2632 2633 2634 2635 2636
2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648
2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660
2661 2662 2663 2664 2665 2666 2667 2668 2669 ; compute pointer
to array body SB194 LDA ZOB ASL A ADC $05 ADC Z5F LDY Z60 BCC
BB1A0 INY BB1A0 STA Z58 STY Z59 RTS ;get t of dimensions ;* 2
;add fixed overhead ;add low byte of array pointer ;get high byte of
array pointer ; increment if carry ;save pointer to body of array ;flp
number for conversion to integer TB1A5 .BY $90, $80, $00, $00, $00
•routine to convert floating point number to fixed point ; convert flp
to fixed point ; return with value in AY JSR SB1BF LDA Z64 LDY Z65
RTS ; convert value from statement into integer SB1B2 JSR X0073
JSR SAD9E SB1B8 JSR SAD8D LDA Z66 BHI BB1CC ;get next
character ;get value from statement ; check for non- string ;if flp
accu negative, ; ILLEGAL QUANTITY Error » ; convert flp number to
integer SB1BF LDA Z61 ;get exponent CMP $90 ;if < 16 BCC BB1CE
; convert LDA TB1A5 JSR SBC5B ; compare AY to flp accu BB1CC
BNE JB248 ;if not >, ILLEGAL QUANTITY Error BB1CE JMP SBC9B
;convert flp accu to 4 byte integer 57
2671 ;get pointer to dimensioned variable 2672 : B1D1
A50C 2673 JB1D1 LDA ZOC ;save reference flag B1D3 050E 2674
ORA ZOE ;and integer flag B1D5 48 2675 PHA B1D6 A50D 2676 LDA
ZOD ;save string flag B1D8 48 2677 PHA B1D9 A000 2678 LDY $00
initialize count # of dimensions B1DB 98 2679 BB1DB TYA B1DC 48
2680 PHA ;save count B1DD A546 2681 LDA Z46 B1DF 48 2682 PHA
;save second character of name B1E0 A545 2683 LDA Z45 B1E2 48
2684 PHA ;save first character of name B1E3 20B2B1 2685 JSR
SB1B2 ; convert value from statement to J B1E6 68 2686 PLA B1E7
8545 2687 STA Z45 ;restore first character of name B1E9 68 2688
PLA B1EA 8546 2689 STA Z46 ; restore second character of name
B1EC 68 2690 PLA B1ED A8 2691 TAY ; restore count B1EE BA 2692
TSX iget stack pointer B1EF BD0201 2693 LDA X0102.X B1F2 48
2694 PHA ;move saved flags to top of stack B1F3 BD0101 2695 LDA
X0101.X B1F6 48 2696 PHA B1F7 A564 2697 LDA Z64 ;save array
index in their place B1F9 9D0201 2698 STA X0102.X B1FC A565
2699 LDA Z65 B1FE 9D0101 2700 STA X0101.X B201 C8 2701 INY ;
increment dimension pointer B202 207900 2702 JSR X0079 ;get
current character B205 C92C 2703 CMP ', ;if "," B207 F0D2 2704
BEQ BB1DB ; repeat for next array index B209 840B 2705 STY ZOB
;save total number of dimensions B20B 20F7AE : 2706 JSR SAEF7
;skip ")•' B20E 68 2707 PLA B20F 850D B211 68 2708 2709 STA
ZOD PLA ; restore string flag B212 850E 2710 STA ZOE ;restore
integer flag B214 297F 2711 AND $7F B216 850C 2712 STA ZOC
;and reference flag B218 A62F 2713 LDX Z2F B21A A530 2714 LDA
Z30 ;AX = pointer to array area B21C 865F 2715 BB21C : SIX Z5F
B21E 8560 2716 STA Z60 ;save in temporary pointer B220 C532
2717 CMP Z32 B222 D004 2718 BNE BB228 B224 E431 2719 CPX
Z31 ;if end of array area reached B226 F039 2720 BEQ BB261 ;then
array not found B228 A000 2721 BB228 LDY $00 B22A B15F 2722
LDA (Z5F),Y ;get first character of name B22C C8 2723 INY B22D
C545 2724 CMP Z45 ;if equal B22F D006 2725 BNE BB237 B231
A546 2726 LDA Z46 B233 D15F 2727 CMP (Z5F),Y ;and second
character of name also B235 F016 2728 BEQ BB24D ;then array
found B237 C8 2729 BB237 INY B238 B15F 2730 LDA (Z5F),Y ;get
low byte of length integer 58
B23A 18 2731 CLC B23B 655F 2732 ADC Z5F B23D AA
2733 TAX B23E C8 2734 INY B23F B15F 2735 LDA (Z5F),Y B241
6560 2736 ADC Z60 B243 90D7 2737 BCC BB21C B245 A212 2738
BB245 LDX $12 B247 2C 2739 2740 .BY $2C B248 A20E 2741 JB248
LDX $0E B24A 4C37A4 2742 BB24A JMP JA437 B24D A213 2743
BB24D LDX $13 B24F A50C 2744 LDA ZOC B251 D0F7 2745 BNE
BB24A B253 2094B1 2746 JSR SB194 B256 A50B 2747 LDA ZOB
B258 A004 2748 LDY $04 B25A D15F 2749 CMP (Z5F),Y B25C D0E7
2750 BNE BB245 B25E 4CEAB2 2751 JMP JB2EA ;add to array
pointer ;and save result in X ;get high byte of length ;add to array
pointer ; repeat if not overflow ; point to BAD SUBSCRIPT Error
message ;skip next instruction ; point to ILLEGAL QUANTITY Error
message ; print message ; point to BAD SUBSCRIPT Error message
;if declaration ;then fatal error ; compute pointer to array body ;if
actual # of dimensions ;not equal to declared # ;then error ;else
compute array reference 59
2753 ; allocate array 2754 ; B261 2094B1 2755 BB261 JSR
SB194 B264 2008A4 2756 JSR SA408 B267 AOOO 2757 LDY $00
B269 8472 2758 STY Z72 B26B A205 2759 LDX $05 B26D A545
2760 LDA Z45 B26F 915F 2761 STA (Z5F),Y B271 1001 2762 BPL
BB274 B273 CA 2763 DEX B274 C8 2764 BB274 INY B275 A546
2765 LDA Z46 B277 915F 2766 STA (Z5F),Y B279 1002 2767 BPL
BB27D B27B CA 2768 DEX B27C CA 2769 DEX B27D 8671 2770
BB27D SIX Z71 B27F A50B 2771 LDA ZOB B281 C8 2772 INY B282
C8 2773 INY B283 C8 2774 INY B284 915F 2775 STA (Z5F),Y B286
A20B 2776 BB286 LDX $0B B288 A900 2777 LDA $00 B28A 240C
2778 BIT ZOC B28C 5008 2779 BVC BB296 B28E 68 2780 PLA B28F
18 2781 CLC B290 6901 2782 ADC $01 B292 AA 2783 TAX B293 68
2784 PLA B294 6900 2785 ADC $00 B296 C8 2786 BB296 INY B297
915F 2787 STA (Z5F),Y B299 C8 2788 INY B29A 8A 2789 TXA B29B
915F 2790 STA (Z5F),Y B29D 204CB3 2791 JSR SB34C B2A0 8671
2792 STX Z71 B2A2 8572 2793 STA Z72 B2A4 A422 2794 LDY Z22
B2A6 C60B 2795 DEC ZOB B2A8 DODC 2796 BNE BB286 B2AA 6559
2797 ADC Z59 B2AC B05D 2798 BCS BB30B B2AE 8559 2799 STA
Z59 B2B0 A8 2800 TAY B2B1 8A 2801 TXA B2B2 6558 2802 ADC Z58
B2B4 9003 2803 BCC BB2B9 B2B6 C8 2804 INY B2B7 F052 2805
BEQ BB30B B2B9 2008A4 2806 BB2B9 JSR SA408 B2BC 8531 2807
STA Z31 B2BE 8432 2808 STY Z32 B2C0 A900 2809 LDA $00 B2C2
E672 2810 INC Z72 B2C4 A471 2811 LDY Z71 B2C6 F005 2812 BEQ
BB2CD ; compute pointer to virtual array body ; check array area for
overflow initialize high byte of length ;set length per element ;get
first character of name ;into + 0 of array header ;if integer ; adjust
length per element ;move second character of name ;into + 1 of
array header ;if integer or string ; correct length per element ;set
initial low byte of length ;move # of dimensions ;into + 4 of array
header ;set default dimension (11) ;if declaration ;skip ;else get limit
from stack ;add 1 for element # 0 ; limit into AX ;move limit into
next byte of header ; low byte also ;AX - length * limit ;save into
length ; restore index into array header jdecrement # of dimensions
; repeat until done ;add high byte of length to body pointer ;if
overflow, OUT OF MEMORY Error ;save pointer to end of body ;also
in Y ;add low byte of length to body pointer ;if overflow ; increment
high byte ;if overflow, OUT OF MEMORY Error ; check array area for
overflow ;set new end of array area ;get length ;if low byte of length
not zero 60
B2C8 88 2813 : BB2C8 DEY B2C9 9158 2814 STA (Z58),Y
B2CB DOFB 2815 BNE BB2C8 B2CD C659 2816 BB2CD DEC Z59
B2CF C672 2817 DEC Z72 B2D1 DOF5 2818 BNE BB2C8 B2D3 E659
2819 INC Z59 B2D5 38 2820 SEC B2D6 A531 2821 LDA Z31 B2D8
E55F 2822 SBC Z5F B2DA A002 2823 LDY $02 B2DC 915F 2824 STA
(Z5F),Y B2DE A532 2825 LDA Z32 B2EO C8 2826 INY B2E1 E560
2827 SBC Z60 B2E3 915F 2828 STA (Z5F),Y B2E5 A50C 2829 LDA
ZOC B2E7 D062 2830 BNE BB34B B2E9 C8 2831 2832 f INY 2833 ;
compute reference 2834 ; B2EA B15F 2835 JB2EA LDA (Z5F) ,Y
B2EC 850B 2836 STA ZOB B2EE A900 2837 LDA $00 B2FO 8571
2838 STA Z71 B2F2 8572 2839 BB2F2 STA Z72 B2F4 C8 2840 INY
B2F5 68 2841 PLA B2F6 AA 2842 TAX B2F7 8564 2843 STA Z64
B2F9 68 2844 PLA B2FA 8565 2845 STA Z65 B2FC D15F 2846 CMP
(Z5F),Y B2FE 90OE 2847 BCC BB30E B300 D006 2848 BNE BB308
B302 C8 2849 INY B303 8A 2850 TXA B304 D15F 2851 CMP (Z5F),Y
B306 9007 2852 BCC BB30F B308 4C45B2 2853 BB308 JMP BB245
B30B 4C35A4 2854 2855 BB30B JMP BA435 B30E C8 2856 BB30E
INY B30F A572 2857 BB30F LDA Z72 B311 0571 2858 ORA Z71
B313 18 2859 CLC B314 FOOA 2860 BEQ BB320 B316 204CB3 i
2861 JSR SB34C B319 8A 2862 TXA B31A 6564 2863 ADC Z64 B31C
AA 2864 TAX B31D 98 2865 TYA B31E A422 2866 LDY Z22 B320
6565 2867 BB320 i ADC Z65 B322 8671 2868 STX Z71 B324 C60B
2869 DEC ZOB B326 DOCA 2870 BNE BB2F2 B328 8572 2871 STA
Z72 B32A A205 2872 LDX $05 ; decrement index ; store zero in
array byte ;until low byte of length is zero ;then set pointer to next
block of 256 ;and decrement high byte of length ;repeat until length
is zero ;get address of end of array area ;minus pointer to array area
;store low byte in + 2 of array header ;move high byte of difference
;into + 3 of array header ;if declaration ;then return ;else point to
declared # of dimentions to array element ;get It of dimensions
from array header ;save it ;initialize offset in body ;get low byte of
index from stack ;into X ;and flp accu ;get high byte of index from
stack ;into A and flp accu ;compare index to limit ;if lower, OK ;if
higher, BAD SUBSCRIPT Error ;if equal ; compare low bytes ;if lower,
OK ;else BAD SUBSCRIPT Error ;0UT OF MEMORY Error ;if total
index so far = 0 ;skip multiplication ;XY = offset * limit ;add low
byte of array index to A ; restore index to array header ;add high
byte of array index to A ;save low byte of new offset ;if not last
index, ; repeat for next index ;save high byte of offset ;set length
per element for flp # 61
B32C A545 2873 LDA Z45 B32E 1001 2874 BPL BB331
B330 CA 2875 DEX B331 A546 2876 BB331 LDA Z46 B333 1002
2877 BPL BB337 B335 CA 2878 DEX B336 CA 2879 DEX B337 8628
2880 BB337 STX Z28 B339 A900 2881 LDA $00 B33B 2055B3 2882
JSR SB355 B33E 8 A 2883 TXA B33F 6558 2884 ADC Z58 B341 8547
2885 STA Z47 B343 98 2886 TYA B344 6559 2887 ADC Z59 B346
8548 2888 STA Z48 B348 AS 2889 TAY B349 A547 2890 LDA Z47
B34B 60 2891 BB34B . RTS ;lf Integer ; correct length per element
;lf Integer or string ; correct length per element ;XY - offset * length
per element ;add to pointer to array body ; store result into variable
address ;high byte also ; return with AY = variable address 62
2893 ;XY = XA ! length 2894 » B34C 8422 2895 SB34C STY
Z22 B34E B15F 2896 LDA (Z5F),Y B350 8528 2897 STA Z28 B352 88
2898 DEY B353 B15F 2899 LDA (Z5F),Y B355 8529 2900 SB355 STA
Z29 B357 A910 2901 LDA $10 B359 855D 2902 STA Z5D B35B A200
2903 LDX $00 B35D AOOO 2904 LDY $00 B35F 8A 2905 BB35F TXA
B360 OA 2906 ASL A B361 AA 2907 TAX B362 98 2908 TYA B363 2A
2909 ROL A B364 AS 2910 TAY B365 B0A4 2911 BCS BB30B B367
0671 2912 ASL Z71 B369 2672 2913 ROL Z72 B36B 900B 2914 BCC
BB378 B36D 18 2915 CLC B36E 8 A 2916 TXA B36F 6528 2917 ADC
Z28 B371 AA 2918 TAX B372 98 2919 TYA B373 6529 2920 ADC Z29
B375 A8 2921 TAY B376 B093 2922 BCS BB30B B378 C65D 2923
BB378 DEC Z5D B37A D0E3 2924 BNE BB35F B37C 60 2925 RTS
limit from array data ;save Index in array header ;get low byte of
limit ;save it ;get high byte of limit ;and save it too ;set # bits for
multiplication ; initialize result fields ;XY * 2 ;if overflow, OUT OF
MEMORY Error ; shift high bit out of length ;if set ;add low byte of
limit to XY ;high byte also ;if overflow, OUT OF MEMORY Error ;
repeat for all bits of length 63
B37D B37F B381 B384 B387 B388 B38A B38C B38D B38F
A50D F003 20A6B6 2026B5 38 A533 E531 A8 A534 E532 B391 A200
B393 860D B395 8562 B397 8463 B399 A290 B39B 4C44BC B39E 38
B39F 20F0FF B3A2 A900 B3A4 FOEB B3A6 A63A B3A8 E8 B3A9
DOAO B3AB A215 B3AD 2C B3AE A21B B3BO 4C37A4 2927 2928
2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940
2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952
2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964
;"FRE" command WB37D LDA ZOD BEQ BB384 JSR SB6A6 BB384
JSR SB526 SEC LDA Z33 SBC Z31 TAY LDA Z34 SBC Z32 ;if string
flag set ;de-allocate temporary string storage ; perform garbage
clean-up ; compute difference between ;pointer to allocated string
area ;and pointer to end of array area ; convert length into flp accu ;
routine to convert integer to floating point JB391 LDX $00 STX ZOD
STA Z62 STY Z63 LDX $90 JMP JBC44 ;"P0S" command > WB39E
SEC JSR XFFF0 JB3A2 LDA $00 BEQ JB391 ; clear string flag ;store
integer from AY into flp accu ;load exponent (16) ; convert to
floating point t ;set carry to read cursor position ; perform read
cursor position into XY ; convert integer into flp accu ; check for
non-direct mode SB3A6 LDX Z3A INX BNE BB34B LDX $15 .BY $2C
BB3AE LDX $1B JMP JA437 ;get program/direct flag ;if direct, ; point
to ILLEGAL DIRECT Error message ;skip next instruction ; point to
UNDEF'D FUNCTION Error message ; print error 64
2966 ;"DEF" command 2967 i B3B3 20E1B3 2968 WB3B3
JSR SB3E1 B3B6 20A6B3 2969 JSR SB3A6 B3B9 20FAAE 2970 JSR
SAEFA B3BC A980 2971 LDA $80 B3BE 8510 2972 STA Z10 B3C0
208BB0 2973 JSR SB08B B3C3 208DAD 2974 JSR SAD8D B3C6
20F7AE 2975 JSR SAEF7 B3C9 A9B2 2976 LDA $B2 B3CB 20FFAE
2977 JSR SAEFF B3CE 48 2978 PHA B3CF A548 2979 LDA Z48 B3D1
48 2980 PHA B3D2 A547 2981 LDA Z47 B3D4 48 2982 PHA B3D5
A57B 2983 LDA Z7B B3D7 48 2984 PHA B3D8 A57A 2985 LDA Z7A
B3DA 48 2986 PHA B3DB 20F8A8 2987 JSR JA8F8 B3DE 4C4FB4
2988 2989 JMP JB44F 2990 ;get function name 2991 » B3E1 A9A5
2992 SB3E1 LDA $A5 B3E3 20FFAE 2993 JSR SAEFF B3E6 0980 2994
ORA $80 B3E8 8510 2995 STA Z10 B3EA 2092B0 2996 JSR SB092
B3ED 854E 2997 STA Z4E B3EF 844F 2998 STY Z4F B3F1 4C8DAD
2999 3000 JMP SAD8D 3001 ; expand FN call 3002 ; B3F4 20E1B3
3003 JB3F4 JSR SB3E1 B3F7 A54F 3004 LDA Z4F B3F9 48 3005 PHA
B3FA A54E 3006 LDA Z4E B3FC 48 3007 PHA B3FD 20F1AE 3008
JSR BAEF1 B400 208DAD 3009 JSR SAD8D B403 68 3010 PLA B404
854E 3011 STA Z4E B406 68 3012 PLA B407 854F 3013 STA Z4F
B409 A002 3014 LDY $02 B40B B14E 3015 LDA (Z4E),Y B40D 8547
3016 STA Z47 B40F AA 3017 TAX B410 C8 3018 INY B411 B14E
3019 LDA (Z4E),Y B413 F099 3020 BEQ BB3AE B415 8548 3021 STA
Z48 B417 C8 3022 INY B418 B147 3023 BB418 LDA (Z47),Y B41A 48
3024 PHA B41B 88 3025 DEY ;get function name ; check for non-
direct mode ;next character must be "(" ;set no integers/array
elements allowed ; gather name and get pointer to variable ; check
value to be non-string ;next value must be ")" ;next character must
be "=" ;save first character of definition ;save pointer to variable of
function ;save current character pointer ; execute command DATA
:set value for function name ;if next character not code for FN ;then
SYNTAX Error ;else set bit 7 of ;no integers or array elements flag ;
gather name and get pointer to variable ;save pointer to variable ;
check value to be non-string ;get function name ;save pointer to
name on variable stack ;get parathensized value ; check that value is
non-string ; restore pointer to variable name ;get index to variable ;
save pointer to formal parameters ;high byte also ;if data byte + 3 is
zero, fatal error ;save formal parameters on stack 65
B41C 10FA 3026 BPL BB418 B41E A448 3027 LDY Z48 B420
20D4BB 3028 JSR SBBD4 B423 A57B 3029 LDA Z7B B425 48 3030
PHA B426 A57A 3031 LDA Z7A B428 48 3032 PHA B429 B14E 3033
LDA (Z4E),Y B42B 857A 3034 STA Z7A B42D C8 3035 INY B42E
B14E 3036 LDA (Z4E),Y B430 857B 3037 STA Z7B B432 A548 3038
LDA Z48 B434 48 3039 PHA B435 A547 3040 LDA Z47 B437 48 3041
PHA B438 208AAD 3042 JSR SAD8A B43B 68 3043 PLA B43C 854E
3044 STA Z4E B43E 68 3045 PLA B43F 854F 3046 STA Z4F B441
207900 3047 JSR X0079 B444 F003 3048 BEQ BB449 B446 4C08AF
3049 3050 JMP JAF08 » B449 68 3051 BB449 PLA B44A 857A 3052
STA Z7A B44C 68 3053 PLA B44D 857B 3054 STA Z7B B44F AOOO
3055 JB44F LDY $00 B451 68 3056 PLA B452 914E 3057 STA
(Z4E),Y B454 68 3058 PLA B455 C8 3059 INY B456 914E 3060 STA
(Z4E),Y B458 68 3061 PLA B459 C8 3062 INY B45A 914E 3063 STA
(Z4E),Y B45C 68 3064 PLA B45D C8 3065 INY B45E 914E 3066 STA
(Z4E),Y B460 68 3067 PLA B461 C8 3068 INY B462 914E 3069 STA
(Z4E),Y B464 60 3070 RTS ;get pointer to formal parameters in XY ;
store flp accu Into formal parameters ;save current character pointer
on stack ;move current pointer of definition ;into current character
pointer ;get next non-string value ;set pointer to formal parameters
;get current character ;if not zero or ":" ; SYNTAX Error ; restore
current character pointer jand restore formal parameters ;set index
into variable ;save stack into variable, byte + 0 ;byte + 1 ;byte + 2
;byte + 3 ;byte + 4 66
B465 B468 B46A B46D B46E B46F B471 B473 B475 B477
B479 B47B 208DAD AOOO 20DFBD 68 68 A9FF AOOO F012 A664
A465 8650 8451 B47D 20F4B4 B480 8662 B482 8463 B484 8561
B486 60 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081
3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093
;"STR$" command WB465 JSR SAD8D LDY $00 JSR SBDDF PLA PLA
JB46F LDA $FF LDY $00 BEQ SB487 SB475 LDX Z64 LDY Z65 STX
Z50 STY Z51 ;check if parameter non-string ; start output area at
$00FF ; convert to string ; remove own return address ;set AY to
point to string ;on bottom of stack ;get description of constant string
;move pointer to string description ;into Z50/Z51 {allocate area
according to A SB47D JSR SB4F4 STX Z62 STY Z63 STA Z61 RTS ;
allocate area ; store pointer ; store length 67
B487 B489 B48B B48D B48F B491 B493 B495 B497 B498
B49A B49C B49E B4A0 B4A2 B4A4 B4A6 B4A8 B4A9 B4AB B4AC
B4AE B4B0 B4B2 B4B4 B4B5 B4B7 B4B9 B4BB B4BD B4BF B4C0
B4C3 B4C5 B4C7 A222 8607 8608 856F 8470 8562 8463 AOFF C8
B16F FOOC C507 F004 C508 D0F3 C922 F001 18 8461 98 656F 8571
A670 9001 E8 8672 A570 F004 C902 DOOB 98 2075B4 A66F A470
2088B6 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104
3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116
3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128
3129 3130 3131 ;get description of constant string into flp accu
SB487 SB48D BB497 BB4A4 BB4A8 BB4A9 BB4B5 BB4BF LDX '" STX
Z07 STX Z08 STA Z6F STY Z70 STA Z62 STY Z63 LDY $FF INY LDA
(Z6F),' BEQ BB4A8 CMP Z07 BEQ BB4A4 CMP Z08 BNE BB497 CMP '"
BEQ BB4A9 CLC STY Z61 TYA ADC Z6F STA Z71 LDX Z70 BCC BB4B5
INX STX Z72 LDA Z70 BEQ BB4BF CMP $02 BNE BB4CA TYA JSR
SB475 LDX Z6F LDY Z70 JSR SB688 ;set both termintors ; store
pointer to beginning of string ;in temporary pointer ;and in flp accu
initialize string index ;get next character ;if zero ;or first terminator,
;or second terminator, then end found ;if terminator = quote ;save
length ;and set pointer beyond string ;if from statement in Direct
mode, ;get length ; allocate area ;save pointer to it ;move string into
it 68
3133 ;save descriptoi 3134 » B4CA A616 3135 BB4CA LDX
Z16 B4CC E022 3136 CPX
B4F4 B4F6 B4F7 B4F9 B4FA B4FC B4FE B500 B501 B503
B505 B507 B509 B50B B50D B50F B511 B513 B514 B515 460F 48
49FF 38 6533 A434 B001 88 C432 9011 D004 C531 900B 8533 8434
8535 8436 AA 68 60 B516 A210 B518 A50F B51A 30B6 B51C 2026B5
B51F A980 B521 850F B523 68 B524 DODO B526 B528 B52A B52C
B52E B530 B532 B534 B536 B538 B53A B53C B53E B540 B542 B544
B546 B548 B54B B54D B54F B551 B553 B555 B557 B559 A637 A538
8633 8534 AOOO 844F 844E A531 A632 855F 8660 A919 A200 8522
8623 C516 F005 20C7B5 F0F7 A907 8553 A52D A62E 8522 8623
E430 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169
3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181
3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193
3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205
3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217
3218 ; allocate t of bytes in A SB4F4 LSR ZOF BB4F6 PHA EOR $FF
SEC ADC Z33 LDY Z34 BCS BB501 DEY BB501 CPY Z32 BCC BB516
BNE BB50B CMP Z31 BCC BB516 BB50B STA Z33 STY Z34 STA Z35
STY Z36 TAX PLA RTS BB516 LDX $10 LDA ZOF BMI BB4D2 JSR
SB526 LDA $80 STA ZOF PLA BNE BB4F6 ; clear error flag ;save
length ; subtract length from string storage ptr ;high byte also ;if
above ; array area ;set new string storage pointer ;set utility string
pointer also ;and set AX ; restore length ;if no memory left ; print
OUT OF MEMORY Error ;else perform garbage clean-up ; clear flag
;restore # bytes to allocate ;and perform allocation string garbage
clean-up ;get memory limit SB526 LDX Z37 LDA Z38 JB52A STX Z33
STA Z34 LDY $00 STY Z4F STY Z4E LDA Z31 LDX Z32 STA Z5F STX
Z60 LDA Z19 STA Z22 STX Z23 BB544 CMP Z16 BEQ BB54D JSR
SB5C7 BEQ BB544 BB54D LDA $07 STA Z53 LDA Z2D LDX Z2E STA
Z22 STX Z23 BB559 CPX Z30 ;set new string storage pointer ;set no
descriptor of highest text yet ;get end of array area initialize value
for highest text ptr ;AX - ptr to bottom of descriptor stack ;and store
in temporary pointer ;if not top index of descriptor stack ;find
highest text area ;set step to 7 ;move pointer to name table ;into
temporary pointer 70
B55B D004 B55D C52F B55F F005 B561 20BDB5 B564 F0F3
B566 8558 B568 8659 B56A A903 B56C 8553 B56E A558 B570 A659
B572 E432 B574 D007 B576 C531 B578 D003 B57A 4C06B6 B57D
8522 B57F 8623 B581 AOOO B583 B122 B585 AA B586 C8 B587
B122 B589 08 B58A C8 B58B B122 B58D 6558 B58F 8558 B591 C8
B592 B122 B594 6559 B596 8559 B598 28 B599 10D3 B59B 8A
B59C 30DO B59E C8 B59F B122 B5A1 AOOO B5A3 OA B5A4 6905
B5A6 6522 B5A8 8522 B5AA 9002 B5AC E623 B5AE A623 B5B0 E459
B5B2 D004 B5B4 C558 B5B6 FOBA B5B8 20C7B5 B5BB F0F3 3219
3220 3221 3222 BB561 3223 3224 BB566 3225 3226 3227 3228
BB56E 3229 3230 BB572 3231 3232 3233 3234 3235 BB57D 3236
3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248
3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260
3261 3262 3263 3264 BB5AE 3265 BB5B0 3266 3267 3268 3269
BB5B8 3270 BNE BB561 CMP Z2F BEQ BB566 JSR SB5BD BEQ
BB559 STA Z58 SIX Z59 LDA $03 STA Z53 LDA Z58 LDX Z59 CPX
Z32 BNE BB57D CMP Z31 BNE BB57D JMP JB606 STA Z22 STX Z23
LDY $00 LDA (Z22),Y TAX INY LDA (Z22),Y PHP INY LDA (Z22),Y
ADC Z58 STA Z58 INY LDA (Z22),Y ADC Z59 STA Z59 PLP BPL
BB56E TXA BMI BB56E INY LDA (Z22),Y LDY $00 ASL A ADC $05
ADC Z22 STA Z22 BCC BB5AE INC Z23 LDX Z23 CPX Z59 BNE BB5B8
CMP Z58 BEQ BB572 JSR SB5C7 BEQ BB5B0 ;lf end of name table
;not reached yet ;find highest text area ;save pointer into array area
; reset step to 3 ;get pointer to next array ;i£ end of array area
;move text area ;else save array pointer ;into temporary pointer
;save first character of name ;save status of second character of
name ;add length of array ;to array pointer ;high byte also ; second
character of variable name ;must have bit 7 set for string ; first
character of variable name ;must have bit 7 low for string ;get # of
dimensions ;and initialize Y ; compute offset to first element ; point
to first element ;if not pointing beyond last element ;find highest
text address ;and repeat for next address 71

You might also like