10 REM > PatchNULA
   20 REM Patch NuLA v1.02 and v1.03 ROM to use logical MODE numbers
   30 :
   40 file$="VNULA103"
   50 DIM mem% &3FFF
   60 OSCLI "LOAD "+file$+". "+STR$~mem%
   70 ver$=CHR$mem%?&13+CHR$mem%?&15+CHR$mem%?&16
   80 IFver$<>"102":IFver$<>"103":PRINT"ERROR: Unknown version":END
   90 file$=LEFT$(file$,LENfile$-3)+ver$
  100 :
  110 off1%=&01B9:IFver$="103":off1%=&01C1
  120 off2%=&01D7:IFver$="103":off2%=&01DF
  130 off3%=&0621:IFver$="103":off3%=&06D4
  140 off4%=&0659:IFver$="103":off4%=&070C
  150 off5%=&071C:IFver$="103":off5%=&07CF
  160 off6%=&0885:IFver$="103":off6%=&0938
  170 off7%=&09FC:IFver$="103":off7%=&0AAF
  180 off8%=&09E7:IFver$="103":off8%=&0A9A
  190 off9%=&06FC:IFver$="103":off9%=&07AF
  200 end% =&2FCC:IFver$="103":end% =&31E4
  210 tran%=&AA000020+(end%+&8000)*256:REM JSR trans:TAX
  220 chck%=&00000020+(end%+&8009)*256:REM JSR check
  230 :
  240 mem%?&0017=ASC"+"
  250 mem%?(off1%+0)=ASC"0"
  260 mem%?(off1%+1)=ASCRIGHT$(ver$,1)
  270 mem%?(off1%+2)=ASC"+"
  280 mem%?(off2%+0)=ASC"0"
  290 mem%?(off2%+1)=ASCRIGHT$(ver$,1)
  300 mem%?(off2%+2)=ASC"+"
  310 mem%!off3%=tran%           :REM JSR TRANS:TAX
  320 mem%!off4%=tran%           :REM JSR TRANS:TAX
  330 mem%!off5%=tran%           :REM JSR TRANS:TAX
  340 mem%!off6%=tran%           :REM JSR TRANS:TAX
  350 mem%!off7%=tran%           :REM JSR TRANS:TAX
  360 mem%?off8%=&00
  370 mem%!(off9%+00)=chck%      :REM JSR &AFD5
  380 mem%!(off9%+03)=&EAC4B0    :REM BCS &86C5:NOP
  390 mem%!(off9%+06)=&0BA9A885  :REM STA &A8:LDA #&0B
  400 mem%!(end%+00)=&BDAA       :REM TAX:LDA &AFE7-&60,X
  410 mem%!(end%+02)=end%+&801B-&60:REM &AFE7-&60
  420 mem%!(end%+04)=&7F2980C9   :REM CMP #&80:AND #127
  430 mem%?(end%+08)=&60         :REM RTS
  440 mem%!(end%+09)=&0DB070C9   :REM CMP #&70:BCS &AFE6
  450 mem%!(end%+13)=&BA488A48   :REM PHA:TXA:PHA:TSX
  460 mem%!(end%+17)=&0102BD     :REM LDA &102,X
  470 mem%!(end%+20)=&20         :REM JSR &AFCC
  480 mem%!(end%+21)=end%+&8000
  490 mem%!(end%+23)=&6068AA68   :REM PLA:TAX:PLA:RTS
  500 mem%!(end%+27)=&02820100
  510 mem%!(end%+31)=&87048503
  520 mem%!(end%+35)=&068A8905
  530 mem%!(end%+39)=&8F088D07
  540 size%=end%+43
  550 OSCLI "SAVE "+file$+"+. "+STR$~(mem%)+"+"+STR$~(size%)+" 0 FFFBBC00"