> FSCallSW/s 9 Sideways ROM to continuously display FS Calls calls : (7OSRDRM=&FFB9:OSASCI=&FFE3:OSNEWL=&FFE7:OSWRCH=&FFEE 2 mcode% &1000 <%ver$="1.20":date$="(15 Mar 1989)" F: Plen%=0: pass%=0 3 ZP%=&8100-128*(pass%2) dO%=mcode%+len%*(pass%2)2 nopt%="4647",pass%+1,1) x [OPT opt% .Start BRK:EQUW RelocTable JMP Serv EQUB &82:EQUB Copy-Start "EQUB &00:EQUS "Print FS Calls" EQUB &00:EQUS ver$+" "+date$ .Copy #EQUB &00:EQUS "(C)JGH":EQUB &00 : .Serv CMP #&0F:BNE ServExit PHA:LDY #0 .Serv0Flp #LDA FSCallBase+000,Y:STA &900,Y #LDA FSCallBase+256,Y:STA &A00,Y INY:BNE Serv0Flp " JSR &900 ,PLA 6 .ServExit @RTS J: T.FSCallBase ^] h P%=&900 r [OPT opt% |.FSCallStart  LDY #13  .InitLp LDA &212,Y:LDX Vectors,Y  STA Vectors,Y:TXA:STA &212,Y DEY:BPL InitLp RTS :  .Vectors !EQUW File:EQUW Args:EQUW BGet !EQUW BPut:EQUW GBPB:EQUW Find  EQUW Fsc :  .Calls 'EQUS "FILEARGSBGETBPUTGBPBFINDFSCV" :  .File &#JSR Store1:LDX #0:JSR PrCallAXY 0JSR PrWord2 :"LDY #0:LDA (&70),Y:STA &76:INY DLDA (&70),Y:STA &77:DEY NJSR PrName X%JSR Load1:JSR CallFile:JSR Store2 bJSR PrWord2:JMP Load2 l .CallFile vJMP (Vectors+0) :  .Args #JSR Store1:LDX #4:JSR PrCallAXY JSR PrZPage %JSR Load1:JSR CallArgs:JSR Store2 JSR PrZPage:JMP Load2  .CallArgs JMP (Vectors+2) :  .BGet JMP (Vectors+4) :  .BPut JMP (Vectors+6)  :  .GBPB  $JSR Store1:LDX #16:JSR PrCallAXY *JSR PrByte:JSR Pr3Words 4%JSR Load1:JSR CallGBPB:JSR Store2 >%JSR PrByte:JSR Pr3Words:JMP Load2 H .CallGBPB RJMP (Vectors+8) \: f .Find p$JSR Store1:LDX #20:JSR PrCallAXY zLDA &72:BEQ Close JSR PrName70  .Close %JSR Load1:JSR CallFind:JSR Store2  JMP Load2  .CallFind JMP (Vectors+10) : .Fsc $JSR Store1:LDX #24:JSR PrCallAXY .LDA &72:BEQ FscNoName:CMP #1:BEQ FscNoName -CMP #6:BEQ FscNoName:CMP #7:BEQ FscNoName JSR PrName70 .FscNoName /JSR Load1:JSR CallFscv:JSR Store2:JMP Load2  .CallFscv JMP (Vectors+12) $: . .PrSpace 8LDA #32:JMP OSWRCH B: L .PrCarry VPHP:PHA:JSR PrSpace `LDA #"C":JSR OSWRCH j"PLA:PLP:PHP:PHA:BCS PrCarrySet tLDA #"C":BNE PrCarryEnd ~.PrCarrySet  LDA #"S" .PrCarryEnd JSR OSWRCH:JSR PrSpace PLA:PLP:RTS : .PrCallAXY  LDY #4  .PrCallLp LDA Calls,X:JSR OSWRCH INX:DEY:BNE PrCallLp  BEQ PrAXY :  .Store2  JSR Store2b : .PrCarryAXY (JSR PrCarry 2: < .PrAXY FJSR PrSpace P"LDA #"A":JSR OSWRCH:JSR PrEqu ZLDA &72:JSR PrHex d: n .PrXY xLDX #1:.PrXYLp JSR PrSpace TXA:A #"X":JSR OSWRCH !JSR PrEqu:LDA &70,X:JSR PrHex DEX:BPL PrXYLp  .PrXYEnd RTS :  .PrEqu LDA #"=":JMP OSWRCH :  .PrZPage JSR PrSpace:LDX &74 'LDA 3,X:JSR PrHex:LDA 2,X:JSR PrHex 'LDA 1,X:JSR PrHex:LDA 0,X:JMP PrHex :  .PrName70 "#LDA &70:STA &76:LDA &71:STA &77 , .PrName 6JSR PrSpace:.PrNameLp @LDA (&76),Y:CMP #" " JBCC PrXYEnd TJSR OSWRCH:INY:BNE PrNameLp ^: h .Store1 rSTX &74:STY &75 | .Store2b STX &70:STY &71:STA &72 PHP:PLA:STA &73:RTS :  .PrHex PHA:LSR A:LSR A:LSR A:LSR A JSR PrNyb:PLA  .PrNyb  #15:CMP #10:BCC PrDig ADC #6:.PrDig ADC #48:JMP OSWRCH :  .PrByte JSR PrSpace:LDY #0 LDA (&70),Y:INY:JMP PrHex :  .PrWord2 &LDY #2:JSR PrWord 0 .Pr3Words :JSR PrWord:JSR PrWord D .PrWord N"JSR PrSpace:LDX #4:INY:INY:INY X .PrWordLp bLDA (&74),Y:DEY:JSR PrHex lDEX:BNE PrWordLp vINY:INY:INY:INY:INY RTS :  .Load1  .Load2 JSR OSNEWL LDA &73:PHA:LDA &72 LDX &70:LDY &71:PLP RTS : .FSCallEnd ] 'P%=FSCallEnd-FSCallStart+FSCallBase  [OPT opt% :  .RelocTable ]:len%=RelocTable-Start:  MakeRelocTable *:"*SAVE FSCallROM ";~mcode%+len%;" ";~O%;" 0 FFFBBC00" 4 >: HMakeRelocTable R@base80%=mcode%+len%:base81%=mcode%:byte%=0:count%=0:off%=0: \Rbyte80%=base80%?off%:byte81%=base81%?off%: off%>=len%:byte80%=&80:byte81%=&80 f] ((byte81%-byte80%) &FE)<>0 "ERROR: Offset by more than one page at &";~&8000+off% pM (byte80% &C0)=&80:byte%=byte%2+128*(byte81%-byte80%):count%=count%+1 z1 count%=8:?O%=byte%:O%=O%+1:byte%=0:count%=0 &off%=off%+1:off%>=len% count%=0