> AS/SRC  J.G.Harston, 15-Feb-1990 / Save BASIC program with embedded filename (2 Demonstrates writing code in BASIC workspace 2< Up to 256 bytes will fit in string buffer at &600-&6FF <: F+ Based on CSAVER, Micro User, Apr 1988 P+ and *AS, Micro User, Nov 1989 Z: d, mcode% &200 : memory to assemble to n+load%=&600 : Address to load to xosbyte=&FFF4 ptr=&70:cr=&0D:rem=&F4  L%=4 7 3 P%=load%:O%=mcode% [OPT L% .exec% )\ Header identifies this as 6502 code /JMP start:BRK:BRK:BRK :\ Entry point 1EQUB &42:EQUB copy-exec% :\ &42=6502 code )EQUB &01:EQUS "AutoSave" :\ Title &EQUB &00:EQUS "1.00 (15 Feb 1990)" .copy "EQUB &00:EQUS "(C)J.G.Harston" EQUB &00   .start 9LDA #187 :\ Read BASIC ROM number " .chkbasic ,DSTX ptr :\ Store ROM number from first pass 68LDX #0:LDY #255:JSR OSBYTE :\ Read OSBYTE variable @D #71:CMP #187:BNE chkbasic:\ Loop back to read current language J3TXA: ptr: #63 :\ Compare ROM numbers T.BEQ basicok :\ They match ^PLA:PLA:TAY:INY h;CPY #&F9:BCC error2 :\ Not on second processor r7PLA:STA &EE:STA &F2 :\ Restore environment |PLA:STA &EF:STA &F3  .error2 (BRK:EQUB 249:EQUS "Not in BASIC":BRK   .basicok 9LDA #21:LDX #0:JSR osbyte :\ Clear keyboard buffer LDA &18:STA ptr+1 *LDY #0:STY ptr+0 :\ ptr=> LDA (ptr),Y 8CMP #13:BNE exit :\ No program in memory INY:LDA (ptr),Y 1CMP #&FF:BEQ exit :\ Empty program  LDY #3  .remloop 6INY:LDA (ptr),Y :\ Get byte from line 4CMP #cr:BEQ exit :\ Found , no 6CMP #rem:BNE remloop :\ Loop until found &.spaceloop 0INY:LDA (ptr),Y :8CMP #32:BEQ spaceloop :\ Step past any spaces D.CMP #">":BEQ foundname :\ > filename N/CMP #34:BEQ foundname :\ "filename X8DEY :\ No prefix, step back b.foundname l?TYA:PHA:LDX #0 :\ Remember offset to filename v .loop :LDY save,X:JSR osbyte138 :\ Insert characters from .INX:CPX #4:BNE loop :\ ǚ ?PLA:TAY :\ Get back offset to filename  .getname :INY:TYA:PHA:LDA (ptr),Y :\ Get filename character /CMP #cr:BEQ addcr :\ End of line 5CMP #34:BEQ addcr :\ Terminating quote 8TAY:JSR osbyte138 :\ Insert the character PLA:TAY:BNE getname  .addcr PLA  .osbyte138  *TXA:PHA :\ Save X  .save HEQUS "SA.""" R]: \