ô > VARLIST ô By Jon Harston ô (C) The Micro User (.oswrch=&FFEE:osnewl=&FFE7:mcode%=&FFFF0900 2ã pass%=0 ¸ 1 < P%=mcode% F[OPT pass%*3 P \START ZBIT &27A:BPL vlist_start dBRK:OPT ¤s(½254+"TUBE"):BRK n.vlist_start x LDX #0 ‚ .loop ŒLDA &482,X:STA &A8:INX –"LDA &482,X:STA &A9:INX:STX &AA  JSR follow ªLDX &AA:CPX #116:BCC loop ´LDA &4F6:STA &A8 ¾LDA &4F7:STA &A9 ÈLDA #1:STA &AA:JSR follow ÒLDA &4F8:STA &A8 ÜLDA &4F9:STA &A9:DEC &AA æJSR follow:JMP osnewl ð.follow_exit:RTS ú .follow BIT &FF:BMI follow_exit LDA &A9:BEQ follow_exit LDY #2:LDA &AA:BEQ fn "CMP #1:BNE follow1 ,LDX #3:.proc_loop 6 LDA proctab,X:JSR oswrch:DEX @BPL proc_loop JBMI follow_loop T.fn:LDA #—"F":JSR oswrch ^LDA #—"N":JSR oswrch hJMP follow_loop r .follow1 |LSR A:CLC:ADC #—"@" †JSR oswrch:LDY #2 .follow_loop š%LDA (&A8),Y:CMP #—"0":BCC follow2 ¤"JSR oswrch:INY:BNE follow_loop ® .follow2 ¸CMP #0:BEQ real ÂJSR oswrch ÌCMP #—"%":BEQ integer ÖCMP #—"$":BEQ string àCMP #—"(":BEQ realarray ê BNE error ô .follow3 þJSR osnewl  .follow4 :LDY #0:LDA (&A8),Y:TAX:INY:LDA (&A8),Y:STA &A9:STX &A8 JMP follow &.string:JMP string_start 0 .real : DEY:LDA &AA:CMP #2:BCS real2 D+ADC &AA:STY &AF:ADC &AF:TAY:INY:STY &70 N .real2 X*TYA:SEC:SBC #10:TAY:CPY #246:BCC real2 bLDA #32:.real_loop l,JSR oswrch:INY:BNE real_loop:JMP follow4 v+.error:LDA #—"*":JSR oswrch:JMP follow3 €0.integer:INY:LDA (&A8),Y:CMP #—"(":BEQ array Š-LDA #—"=":JSR oswrch:LDA #—"&":JSR oswrch ”INY:INY:INY:INY:LDX #4 ž$.int_loop:LDA (&A8),Y:JSR pr_hex ¨$DEY:DEX:BNE int_loop:JMP follow3 ²(.array:JSR oswrch:.realarray:INY:INY ¼*LDA (&A8),Y:LSR A:INY:TAX:BNE array_go Æ$.array_loop:LDA #—",":JSR oswrch Ð".array_go:LDA #—"&":JSR oswrch Ú"LDA (&A8),Y:SEC:SBC #1:PHA:INY ä!LDA (&A8),Y:SBC #0:JSR pr_hex îPLA:JSR pr_hex:INY øDEX:BNE array_loop $LDA #—")":JSR oswrch:JMP follow3  5.string_start:INY:LDA (&A8),Y:CMP #—"(":BEQ array 'LDA #—"=":JSR oswrch:LDA #0:STA &AF  INY:LDA (&A8),Y:STA &AB *INY:LDA (&A8),Y:STA &AC 42INY:INY:LDA (&A8),Y:LDY #0:TAX:BEQ null_string >'LDA (&AB),Y:CMP #32:BCC string_loop H/CMP #127:BCS string_loop:LDA #34:JSR oswrch R.string_loop \#LDA (&AB),Y:PHA:JSR pr_char:PLA fINY:DEX:BNE string_loop pDCMP #32:BCC string_exit:CMP #127:BCS string_exit:BCC string_end2 z#.null_string:LDA #34:JSR oswrch „#.string_end2:LDA #34:JSR oswrch Ž.string_exit:JMP follow3 ˜".pr_char:CMP #127:BCS pr_check ¢CMP #32:BCS pr_ok ¬ .pr_check ¶$PHA:TXA:PHA:CPY #0:BEQ pr_check2 ÀLDA &AF:BEQ pr_check1 Ê!LDA #34:JSR oswrch:.pr_check1 Ô#LDA #—"+":JSR oswrch:.pr_check2 ÞLDX #0:STX &AF:.pr_c_loop è6LDA pr_table,X:JSR oswrch:INX:CPX #6:BNE pr_c_loop ò/PLA:TAX:PLA:JSR pr_hex:LDA #—")":JMP oswrch ü.pr_ok:CPY #0:BEQ pr_ok3 PHA:LDA &AF:BNE pr_ok2 +LDA #—"+":JSR oswrch:LDA #34:JSR oswrch .pr_ok2:PLA $.pr_ok3:STA &AF:JMP oswrch ..pr_table:OPT ¤s("CHR$(&") 8!.pr_hex:PHA:LSR A:LSR A:LSR A BLSR A:JSR pr_hex2:PLA L#.pr_hex2:€ #15:CMP #10:BCC over V%ADC #6:.over:ADC #—"0":JMP oswrch `.proctab:OPT ¤s("CORP") j]:í t#ñ"*SAVE VList ";~mcode%;" ";~P% ~à ˆ%ݤs(A$):$P%=A$:P%=P%+©A$:=pass%*3 ÿ