10 REM > SerFix/s
   20 REM Fixes double-null problem with MOS 5.00
   30 :
   40 Ver$="0.10":start%=&FFFF0380:DIM mcode% &400:SerInID=1
   50 INSV=&22A:RMV=&22C:CNPV=&22E:OSBYTE=&FFF4:OSARGS=&FFDA:OSVEC=&FFB6
   60 :
   70 zp=&A8:PtrBlk=&80:InPtr=PtrBlk:OutPtr=PtrBlk+2:Temp=PtrBlk+4
   80 :
   90 FOR P=0 TO 1
  100   O%=mcode%:P%=start%
  110   :
  120   [OPT P*3+4
  130   .Ins
  140   CPX #SerInID:BNE InsertCall   :\ Not serial input
  150   TAY:BNE InsertCall            :\ Not a null
  160   JSR InsertCall:BCC InsertCall :\ Put two nulls in
  170   RTS                           :\ Quit if buffer full
  180   .InsertCall
  190   JMP &FFFF
  200   :
  210   .go%
  220   LDA #0:LDX #1:JSR &FFF4       :\ What OS?
  230   PHP:SEI:CPX #5:BNE NotCompact :\ Only needs fixing on MOS 5.00
  240   :
  250   LDA INSV:STA InsertCall+1:LDA INSV+1:STA InsertCall+2
  260   LDA #Ins AND 255:STA INSV:LDA #Ins DIV 256:STA INSV+1
  270   :
  280   .NotCompact
  290   PLP:RTS:EQUS Ver$
  300 ]:NEXT
  310 PRINT"*Save SerFix ";~mcode%;" ";~O%;" "~go%OR&FFFF0000;" ";~start%