! DROPKICK header (Listing 1)  by Jeff Tullin " for Bas2 B/B+/E/M/C with SWR ( (c) BAU 1990 2: < 6 F: P osasci=&FFE3 Z osnwl=&FFE7 d accum=&70 n length=&71 x string=&72  address=&74  currentstring=&76 :  opt = 4 6 2  P%=&8000:O%=&3000 [OPT opt :  JMP osnwl  JMP entry  EQUB (&82)  EQUB (copy) EQUB (0) .title " EQUS ("DROPKICK SWR Utility")  EQUB (13)  .copy " EQUB (0) ," EQUS ("(C) 1989 Jeff Tullin") 6 EQUB (0) @ EQUB (13) J& EQUS (" Syntax: *SEEK ") T EQUB (13) ^- EQUS (" Load data into SWR at &8200") h EQUB (13) r EQUS (" Current data: ") | EQUB (0) .end % EQUS ("No (more) records found")  EQUB (13) :  .entry  STA accum  LDA &F3  PHA  LDA &F2  PHA  TYA  PHA  TXA  PHA  LDX #6 .savezeropage & LDA &71,X 0 PHA : DEX D BPL savezeropage N: X LDA accum b CMP# 3 l BEQ break v CMP# 9  BEQ help  CMP# 4  BEQ starcom :  .tobasic  LDX# 0 .restorezeropage  PLA  STA &71,X  INX  CPX# 7  BNE restorezeropage  PLA  TAX   PLA  TAY   PLA * STA &F2 4 PLA > STA &F3 H LDA accum R RTS \: f.printrecord p TYA z PHA  LDY# 0  .prloop  LDA (currentstring),Y  JSR osasci  CMP# 13  BEQ out  CMP# 0  BEQ out  INC currentstring  BNE prloop  INC currentstring+1  BNE prloop .out  INC currentstring  BNE ok  INC currentstring+1 $.ok . LDA currentstring 8 STA address B LDA currentstring+1 L STA address+1 V PLA ` TAY j RTS t: ~ .help  .break  CMP# 3  BEQ hello  LDA (&F2),Y  CMP# 13  BEQ hello  JMP tobasic :  .hello  PHA  LDA# (title 256)  STA currentstring  LDA# (title 256)   STA currentstring+1  JSR printrecord  PLA ( CMP# 3 2 BEQ morethanhelp < LDX# 6 F.extratext P JSR printrecord Z DEX d BNE extratext n JSR filename x.morethanhelp  JSR osnwl  JMP tobasic :  .command  EQUS ("SEEK") :  .starcom  LDX# 0 .checkcommand  LDA (&F2),Y  # 223  CMP command,X  BNE notforme  INX  INY  LDA (&F2),Y " CMP# "." , BEQ abbreviation 6 CPX# 4 @ BEQ action J BNE checkcommand T: ^ .notforme h JMP tobasic r: |.abbreviation  INY  .action .removespaces  LDA (&F2),Y  CMP# 32  BNE text  INY  CLC  BCC removespaces  .text  CLC  TYA  ADC &F2  STA string  LDA &F3  ADC# 0 & STA string+1 0 : LDA# 0 D STA address N LDA# &82 X STA address+1 b: l LDY# 255 v.findlength  INY  LDA (string),Y  CMP# 13  BNE findlength  STY length  : .newrecord  LDA address  STA currentstring  LDA address+1  STA currentstring+1 :  .scan  LDY# 0   LDA (address),Y  CMP# ("|")   BEQ exit * CMP (string),Y 4 BEQ remainder > .nextbyte H CLC R INC address \ BNE nocarry f INC address+1 p .nocarry z LDA (address),Y  CMP# 13  BNE scan  INC address  BNE newrecord  INC address+1  BNE newrecord : .remainder  LDY length  DEY  .check  LDA (address),Y  CMP (string),Y  BNE nextbyte  CPY# 0  BEQ suitable $ DEY . CLC 8 BCC check B .suitable L JSR printrecord V JMP scan ` .exit j LDA# (end 256) t STA currentstring ~ LDA# (end 256)  STA currentstring+1  JSR printrecord  JSR osnwl LDA #0  STA accum  JMP tobasic : .filename LDA# &82  STA address+1 LDA# 0  STA address  TAY .findname  LDA (address),Y  CMP# "|" ( BEQ found 2 INC address < BNE findname F INC address+1 P BNE findname Z .found d INY n.printfilename x LDA (address),Y CMP# 13  BEQ endoftitle CMP# 32  BCC nogood CMP# 123  BCS nogood  JSR osasci  INY CPY# 16  BCC printfilename .endoftitle  JMP osnwl .nogood  INY  BNE printfilename : " NOP:NOP , EQUS "|None" 6 EQUB (13) @] J T: ^: c&"Press SPACE to save code":=32 h&*SAVE "header" 3000 +208 8000 8000