> ServROM/s  Display service calls : (7OSRDRM=&FFB9:OSASCI=&FFE3:OSNEWL=&FFE7:OSWRCH=&FFEE 2 mcode% &1000 <: Flen%=0: pass%=0 3 PP%=&8100-128*(pass%2) ZO%=mcode%+len%*(pass%2)2 dopt%="4647",pass%+1,1) n [OPT opt% x .Start BRK:EQUW RelocTable JMP Serv EQUB &82:EQUB Copy-Start 'EQUB &00:EQUS "Print Service calls" &EQUB &00:EQUS "1.02 (15 Mar 1989)" .Copy #EQUB &00:EQUS "(C)JGH":EQUB &00 : .Serv PHA:JSR PrHex TXA:PHA:JSR PrHex TYA:PHA:JSR PrHex JSR PrColon:LDX #0  .ServLp LDA &EF,X:JSR PrHex INX:CPX #5:BNE ServLp "TSX:LDA &103,X ,CMP #4:BEQ ServStr 6CMP #9:BEQ ServStr @CMP #&18:BEQ ServStr JCMP #&28:BEQ ServStr TCMP #&29:BEQ ServStr ^CMP #6:BEQ Serv6 hCMP #8:BNE ServExit r: | .Serv8 JSR PrArrow:LDY #0  .Serv8Lp LDA (&F0),Y:JSR PrHex INY:CPY #16:BNE Serv8Lp BEQ ServExit : .ServStr:\ String passed JSR PrArrow .ServStrLp LDA (&F2),Y:JSR OSASCI INY:CMP #13:BNE ServStrLp BEQ ServExitNL : .Serv6:\ BRK occured JSR PrArrow *LDY &28C:TYA:JSR PrHex :\ ROM number &JSR PrColon 0LDA &FD:STA &F6 :LDA &FE:STA &F7 D$JSR OSRDRM:JSR PrHex:JSR PrColon N .Serv6Lp XINC &F6:BNE P%+4:INC &F7 b6LDY &28C:JSR OSRDRM :\ Y corrupted pre-Master lTAX:BEQ ServExitNL vJSR OSWRCH:TAX:BNE Serv6Lp :  .ServExit JSR OSNEWL .ServExitNL PLA:TAY:PLA:TAX:PLA:RTS : !.PrColon:LDA #":":JMP OSWRCH !.PrArrow:LDA #">":JMP OSWRCH :  .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 :  .RelocTable *]:len%=RelocTable-Start: 4MakeRelocTable >8"*SAVE ServROM ";~mcode%+len%;" ";~O%;" 0 FFFBBC00" H R: \MakeRelocTable f@base80%=mcode%+len%:base81%=mcode%:byte%=0:count%=0:off%=0: pRbyte80%=base80%?off%:byte81%=base81%?off%: off%>=len%:byte80%=&80:byte81%=&80 z] ((byte81%-byte80%) &FE)<>0 "ERROR: Offset by more than one page at &";~&8000+off% M (byte80% &C0)=&80:byte%=byte%2+128*(byte81%-byte80%):count%=count%+1 1 count%=8:?O%=byte%:O%=O%+1:byte%=0:count%=0 &off%=off%+1:off%>=len% count%=0