Эмулятор Tiny C64

Хотите поиграться со старым добрым бейсиком? Этот эмулятор отобразит чудо прошлого века. Моя первая игра была сделана на одной из подобных машин.
Платформы: Windows , Linux.
Автор: D.J.Peters.  2008 год.

Tiny c64

' c64.bas

#IF __FB_DEBUG__

# DEFINE dprint(msg) Open Err For Output As #99:Print #99,"debug: " & msg:Close #99

#ELSE

# DEFINE dprint(msg):

#ENDIF



Type MEMORY
  Public:
  Declare Constructor

  Declare Destructor

  Declare Function ReadByte   (adr As Ushort) As Byte

  Declare Function ReadUByte  (adr As Ushort) As Ubyte

  Declare Function ReadUShort (adr As Ushort) As Ushort

  Declare Sub      WriteByte  (adr As Ushort,b8 As Byte)
  Declare Sub      WriteUByte (adr As Ushort,b8 As Ubyte)
  Declare Sub      WriteUShort(adr As Ushort,w16 As Ushort)

  Private:
  Declare Function Peek8   (adr As Integer) As Ubyte

  Declare Sub      Poke8   (adr As Integer,v As Ubyte)

  As Integer os_end     = &HFFFF
  As Integer os_base    = &HE000
  As Integer io_end     = &HDFFF
  As Integer flopy_end  = &HDFFF
  As Integer flopy_base = &HDF00
  As Integer cpm_end    = &HDEFF
  As Integer cpm_base   = &HDE00
  As Integer cia2_end   = &HDDFF
  As Integer cia2_base  = &HDD00
  As Integer cia1_end   = &HDCFF
  As Integer cia1_base  = &HDC00
  As Integer col_end    = &HDBFF
  As Integer col_base   = &HD800
  As Integer sid_end    = &HD7FF
  As Integer sid_base   = &HD400
  As Integer vic_end    = &HD3FF
  As Integer vic_base   = &HD000
  As Integer io_base    = &HD000
  As Integer basic_end  = &HBFFF
  As Integer basic_base = &HA000

  As Ubyte   mem64 (&HFFFE) ' Ram
  As Ubyte   kernal(&H1FFF) ' OS
  As Ubyte   basic (&H1FFF) ' Basic
  As Ubyte   char  (&H07FF) ' Font
  As Ubyte   col   (&H03E7) ' color triples
End Type




Enum ADR_MODES
_UNK ' unknow
_IMP ' instruction only
_IMM ' 1 byte operand (immidate)
' opr = mem(pc)
_ABS ' 2 byte lo hi
' adr = mem(pc) + mem(pc+1)*256
_ZERO  ' 1 byte lo    (zero page hi=0)
' adr = mem(pc) and 255
_ZEROX ' 1 byte lo    (zero page x hi=0)
' adr = (mem(pc)+x) and 255
_ZEROY ' 1 byte lo    (zero page y hi=0)
' adr = (mem(pc)+y) and 255
_ABSX  ' 2 byte lo hi (abs x)
' adr = mem(pc ) + mem(pc+1)*256 + x
_ABSY  ' 2 byte lo hi (abs y)
' adr = mem(pc ) + mem(pc+1)*256 + y
_REL   ' 1 byte lo    (rel. branch -128 - +127)
' adr= PC + lo
_INDX  ' 1 byte lo (ind x)
' adr =(mem(pc )+x) and 255
' adr = mem(adr) + mem(adr+1)*256
_INDY  ' 2 byte lo hi (ind y)
' adr = mem(pc ) + mem(pc +1)*256 + y
_IND   ' 2 byte lo hi (jmp indirect)
' adr = mem(pc ) + mem(pc +1)*256
' pc  = mem(adr) + mem(adr+1)*256
End Enum


Type FLAGS
  As Ubyte  C:1

  As Ubyte  Z:1

  As Ubyte  I:1

  As Ubyte  D:1

  As Ubyte  B:1

  As Ubyte  H:1

  As Ubyte  V:1

  As Ubyte  N:1

End Type


Type CPU6510_T As CPU6510 Ptr


  Type MULTI
    Union

      As Ushort u16
      As  Short s16
      Type

        Union

          As Ubyte ulo
          As  Byte slo
        End Union

        Union

          As Ubyte uhi
          As  Byte shi
        End Union

      End Type

    End Union

  End Type


  Type OPCODE
    As Ubyte       code
    As Zstring * 4 nam
    As Integer     adrmode,bytes,ticks
    As MULTI       op
    As Sub(Byval lpCPU As CPU6510_T) decode
  End Type


  Type CPU6510
    Public:
    Declare Constructor(mem  As MEMORY Ptr)
    Declare Destructor

    Declare Operator Cast      As String

    Declare Function Tick(flg  As integer=&H7FFFFFFF) As Integer

    Declare Function ADR_IMM   As Ushort

    Declare Function ADR_REL   As Ushort

    Declare Function ADR_ZERO  As Ushort

    Declare Function ADR_ZEROX As Ushort

    Declare Function ADR_ZEROY As Ushort

    Declare Function ADR_ABS   As Ushort

    Declare Function ADR_ABSX  As Ushort

    Declare Function ADR_ABSY  As Ushort

    Declare Function ADR_IND   As Ushort

    Declare Function ADR_INDX  As Ushort

    Declare Function ADR_INDY  As Ushort

    Declare Function ADR_UNK   As Ushort ' unknow
    Declare Sub      Push   (v As Ubyte)
    Declare Function Pull      As Ubyte


    Union ' status register P
      As Ubyte P
      As FLAGS F
    End Union

    Union ' accumulator A
      As Ubyte   A ' A unsigned
      As  Byte  sA ' A signed
    End Union

    Union ' index register X
      As Ubyte   X ' X unsigned
      As  Byte  sX ' X signed
    End Union

    Union ' index register Y
      As Ubyte   Y ' X unsigned
      As  Byte  sY ' X signed
    End Union

    Union ' program counter PC
      As Ushort PC
      Type

        As Ubyte PL ' as lo hi bytes
        As Ubyte PH
      End Type

    End Union

    Union ' stack pointer
      As Ushort SP
      Type

        As Ubyte S     ' as lo bytes
        As Ubyte MSB   ' msb allways hi
      End Type

    End Union

    As MEMORY Ptr mem
    As OPCODE     code
    Private:
    As OPCODE Opcodes(255)
    As String StrAdrModes(12)
  End Type


  Type OLdSchool
    Public:
    Declare Constructor

    Declare Destructor

    As MEMORY  Ptr MEM
    As CPU6510 Ptr CPU
  End Type


  COLOR_ROM:
  Data &H19191d,&Hfcfcf9,&H4c933a,&Hfab6fa
  Data &Hedd27d,&H6f6acf,&Hd84f44,&H8bfbfb
  Data &H5bd89c,&H077f53,&H9fef83,&H535757

  Data &Ha7a3a7,&Hbfb7fb,&Hffa397,&He7efe9

  Constructor OLdSchool
  Dim As Integer i,c
  dprint("OldSchool()")
  Screenres 320+8*8,200+8*8,,8

  For i=0 To 15

    Read c:Palette i,c
  Next

  Line (0,0)-(319+8*8,199+8*8),3,bf
  mem=new MEMORY
  cpu=new CPU6510(mem)
  End Constructor


  Destructor OLdSchool
  Delete CPU
  Delete MEM
  dprint("OldSchool~")
  Sleep 1000

  End Destructor


  Constructor MEMORY
  Dim As Integer i
  ' init all ROM's
  Restore KERNAL_ROM
  For i=0 To 8191:Read kernal(i):Next

  Restore BASIC_ROM
  For i=0 To 8191:Read basic(i):Next

  Restore CHAR_ROM
  For i=0 To 2047:Read char(i):Next

  poke8(0,255):poke8(1,255)
  End Constructor


  Destructor MEMORY
  dprint("MEMORY~")
  End Destructor


Function MEMORY.peek8(adr As Integer) As Ubyte

    Select Case adr
    Case &HE000 To &HFFFF:Return kernal(adr-&HE000)
    Case &HA000 To &HBFFF:Return basic (adr-&HA000)
    Case &HD800 To &HDBFF:Return col   (adr-&HD800)
    Case &HD000 To &HD3FF
    Dim As Integer reg=adr And &H003f
    If reg=&H12 Then Return 0 Else Return &HFF
    Case Else : Return mem64(adr)
    End Select

End Function




Sub MEMORY.poke8(adr As Integer,v As Ubyte)
  mem64(adr)=v
  If adr>=&HD800 And adr<=&HDBFF Then

    adr-=&HD800:col(adr)=v
    adr+=1024:v=mem64(adr)
  End If


  Select Case adr
  Case 1024 To 2023

  adr-=1024

  Dim As Integer b,c=v:c shl=3

  Dim As Integer xs=adr Mod 40:xs Shl =3:xs+=8*4

  Dim As Integer ys=adr  \  40:ys Shl =3:ys+=8*4

  Screenlock

  For y As Integer = 0 To 7

    For x As Integer = 0 To 7

      If char(c) And (128 Shr x) Then

        Pset(xs+x,ys+y),3

      Else

        Pset(xs+x,ys+y),col(adr)
      End If

    Next

    c+=1

  Next

  Screenunlock ys,ys+8

  End Select

End Sub



Function MEMORY.ReadUByte(adr As Ushort) As Ubyte

  Return peek8(adr)
End Function

Function MEMORY.ReadByte(adr As Ushort) As Byte

  Return peek8(adr)
End Function

Function MEMORY.ReadUShort(adr As Ushort) As Ushort

  Return peek8(adr) Or peek8(adr+1) Shl 8

End Function


Sub MEMORY.WriteByte(adr As Ushort,b8 As Byte)
  poke8(adr,b8)
End Sub

Sub MEMORY.WriteUByte(adr As Ushort,b8 As Ubyte)
  poke8(adr,b8)
End Sub

Sub MEMORY.WriteUShort(adr As Ushort,w16 As Ushort)
  poke8(adr,Lobyte(w16)):poke8(adr+1,Hibyte(w16))
End Sub


Constructor CPU6510(lpMem As memory Ptr)
dprint("CPU6510()")
mem=lpMem
Restore INSTRUCTION_SET
'opcode,name,adrmode,ticks,operand,decoder
For i As integer=0 To 255

  With Opcodes(i)
  Read .code,.nam,.adrmode,.bytes,.ticks,.decode
  End With

Next

Restore ADDRESS_MODES
For i As integer=0 To 12

  Read StrAdrModes(i)
Next

' direction and data port
'mem->WriteUByte(0,&H27)
'mem->WriteUByte(1,&HE7)
' flags
'F.H=1
' stack pointer
MSB=1 ':S=&HFF
' reset vector
PC=&HFCE2
End Constructor


Destructor CPU6510
dprint("CPU6510~")
End Destructor


Operator CPU6510.CAST As String

Return "PC:" & Hex(PC,4) & _
" A:" & Hex(A ,2) & _
" X:" & Hex(X ,2) & _
" Y:" & Hex(Y ,2) & _
" S:" & Hex(S ,2) & _
"   N:" & F.N & _
" V:" & F.V & _
" -"  & _
" B:" & F.B & _
" D:" & F.D & _
" I:" & F.I & _
" Z:" & F.Z & _
" C:" & F.C
End Operator


Function CPU6510.Tick(flg As integer=&H7FFFFFFF) As Integer

  Static As Integer Ticks
  Dim As String msg
  Dim As MULTI v
  ' get next opcode
  code=opcodes(mem->readubyte(PC))

  ' clear union
  code.op.u16=0

  Ticks+=1


  #IF __FB_DEBUG__

  If flg=Ticks Then


    dprint("tick: flag=1")

    msg   = Ticks & Chr(13,10)
    msg & =  "A:" & Hex(A,2) & _
    " X:" & Hex(X,2) & _
    " Y:" & Hex(Y,2) & _
    " S:" & Hex(S,2) & _
    " P:" & Bin(P,8) & Chr(13,10)

    msg & = Hex(pc,4) & " " & Hex(code.code,2) & " " & code.nam & " " & stradrmodes(code.adrmode)
  End If

  #ENDIF

  PC+=1

  Select Case As Const code.adrmode
    Case _UNK
      #IF __FB_DEBUG__

      dprint(msg & Chr(13,10))
      PL=mem->readubyte(&HFFFC)
      PH=mem->readubyte(&HFFFD)
      Beep:Sleep:End

      #ENDIF
    Case _IMP
      #IF __FB_DEBUG__

      If flg=Ticks Then

        dprint(msg & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.decode(@this)
    Case _IMM
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.ulo=mem->readubyte(pc)
        dprint(msg & " #$" & Hex(v.ulo,2) & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_IMM()
      code.decode(@this)
    Case _ABS
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16=mem->readushort(pc)
        dprint(msg & "  $" & Hex(v.u16,4) & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ABS()
      code.decode(@this)
    Case _ZERO
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.ulo=mem->readubyte(pc)
        dprint(msg & " $" & Hex(v.ulo,2) & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ZERO()
      code.decode(@this)
    Case _ZEROX
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.ulo=mem->readubyte(pc)
        dprint(msg & " $" & Hex(v.ulo,2) & ",X" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ZEROX()
      code.decode(@this)
    Case _ZEROY
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.ulo=mem->readubyte(pc)
        dprint(msg & " $" & Hex(v.ulo,2) & ",Y" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ZEROY()
      code.decode(@this)
    Case _ABSX
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16=mem->readushort(pc)
        dprint(msg & " $" & Hex(v.u16,4) & ",X" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ABSX()
      code.decode(@this)
    Case _ABSY
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16=mem->readushort(pc)
        dprint(msg & " $" & Hex(v.u16,4) & ",Y" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_ABSY()
      code.decode(@this)
    Case _REL
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16 =pc
        v.s16+=mem->ReadByte(pc)+1

        dprint(msg & " $" & Hex(v.u16,4) & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_REL()
      code.decode(@this)
    Case _INDX
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16=mem->ReadUShort(pc)
        dprint(msg & " ($" & Hex(v.u16,4) & ",X)" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_INDX()
      code.decode(@this)
    Case _INDY
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.ulo=mem->ReadUByte(pc)
        dprint(msg & " ($" & Hex(v.ulo,4) & "),Y" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_INDY()
      code.decode(@this)
    Case _IND
      #IF __FB_DEBUG__

      If flg=Ticks Then

        v.u16=mem->ReadUShort(pc)
        dprint(msg & " ($" & Hex(v.u16,4) & ")" & Chr(13,10))
        Sleep

      Endif
      #ENDIF
      code.op.u16=ADR_IND()
      code.decode(@this)
  End Select

  Return 0

End Function

'
' 6510 address modes
'
Function CPU6510.ADR_UNK As Ushort

  #IF _FB_DEBUG__
  dprint("! adr unknow !")
  Beep:Sleep:End

  #ENDIF
  Sleep:Return 0

End Function


Function CPU6510.ADR_IMM As Ushort ' 1 byte #$xx
  ' mem(pc)
  Function = PC
  PC+=1

End Function


Function CPU6510.ADR_REL As Ushort  ' 1 byte (rel. branch -128 - +127)
  function=PC
  PC+=1

End Function


Function CPU6510.ADR_ABS As Ushort  ' 2 byte $xx:xx
  ' adr = mem(pc) + mem(pc+1)*256
  Function = mem->ReadUShort(pc)
  pc+=2

End Function


Function CPU6510.ADR_ZERO As Ushort ' 1 byte $00:xx
  ' adr = mem(pc) and 255
  Function = mem->ReadUByte(pc) And &HFF
  pc+=1

End Function


Function CPU6510.ADR_ZEROX As Ushort' 1 byte 00:xx,x
  ' adr = (mem(pc)+x) and 255
  Function = (mem->ReadUByte(pc)+x) And &HFF
  pc+=1

End Function


Function CPU6510.ADR_ZEROY As Ushort' 1 byte 00:xx,y
  ' adr = (mem(pc)+y) and 255
  Function = (mem->ReadUByte(pc)+y) And &HFF
  pc+=1

End Function


Function CPU6510.ADR_ABSX As Ushort ' 2 byte $xx:xx,x
  ' adr = mem(pc ) + mem(pc+1)*256 + x
  Function  = mem->ReadUShort(PC) + X
  PC+=2

End Function


Function CPU6510.ADR_ABSY As Ushort ' 2 byte $xx:xx,y
  ' adr = mem(pc ) + mem(pc+1)*256 + y
  Function = mem->ReadUShort(PC) + Y
  PC+=2

End Function


Function CPU6510.ADR_INDX As Ushort ' 1 byte ($XX,x)
  ' adr =(mem(pc )+x) and 255
  ' adr = mem(adr) + mem(adr+1)*256
  Dim As MULTI v
  v.u16=(mem->ReadUByte(pc)+x) And &HFF
  v.u16=mem->ReadUShort(v.u16)
  pc+=1

  Return v.u16
End Function


Function CPU6510.ADR_INDY As Ushort ' 1 byte ($XX),y
  ' v.ulo=mem->ReadUByte(pc)
  ' adr = mem(pc ) + mem(pc +1)*256 + y
  Dim As MULTI v
  v.u16=mem->ReadUshort(mem->ReadUByte(PC))
  v.u16+=y
Function = v.u16
    pc+=1

End Function


Function CPU6510.ADR_IND As Ushort ' 2 byte ($xx:xx)
  ' adr = mem(pc ) + mem(pc +1)*256
  ' pc  = mem(adr) + mem(adr+1)*256
  Dim As MULTI v
  v.u16=mem->ReadUShort(pc)
  v.u16=mem->ReadUShort(v.u16)
  pc+=2

  Return v.u16
End Function


Sub CPU6510.Push(b As Ubyte)
  mem->WriteUByte(sp,b)
  s-=1

End Sub


Function CPU6510.PULL As Ubyte

  s+=1

  Return mem->ReadUbyte(sp)
End Function


'
' 6510 instructions
'
Sub INS_UNK(lpCPU As CPU6510_T)
  #IF __FB_DEBUG__

  dprint("! unk")
  Beep:Sleep:End

  #ENDIF
End Sub


Sub INS_ADC(lpCPU As CPU6510_T)
  Dim As MULTI v
  Dim As Ubyte ub
  ub=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  v.u16=lpCPU->A + ub
  If lpCPU->F.c=1 Then v.u16+=1

  lpCPU->F.v=iif(((Not (lpCPU->A Xor    ub) And &H80) And _
  (    (lpCPU->A Xor v.ulo) And &H80)),1,0)
  lpCPU->A=v.ulo
  lpCPU->F.c=iif(v.u16>255,1,0)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_AND(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->A And lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_ASL(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.c = Iif(v.ulo And &H80,1,0)
  v.ulo Shl = 1

  lpCPU->mem->WriteUbyte(lpCPU->Code.op.u16,v.ulo)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_ASLA(lpCPU As CPU6510_T) ' ac
  lpCPU->F.c = Iif(lpCPU->A And &H80,1,0)
  lpCPU->A Shl = 1

  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_BCC(lpCPU As CPU6510_T)
  If lpCPU->F.c=0 Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BCS(lpCPU As CPU6510_T)
  If lpCPU->F.c Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BEQ(lpCPU As CPU6510_T)
  If lpCPU->F.z=1 Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BIT(lpCPU As CPU6510_T)
  Dim As Byte b
  b=lpCPU->mem->Readbyte(lpCPU->Code.op.u16)
  lpCPU->F.n=iif(b And &H80,1,0)
  lpCPU->F.v=iif(b And &H40,1,0)
  lpCPU->F.z=iif(0=(b And lpCPU->sX),1,0)
End Sub


Sub INS_BMI(lpCPU As CPU6510_T)
  If lpCPU->F.n Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BNE(lpCPU As CPU6510_T)
  If lpCPU->F.z=0 Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BPL(lpCPU As CPU6510_T)
  If lpCPU->F.n=0 Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BRK(lpCPU As CPU6510_T)
  lpCPU->pc+=1

  lpCPU->push(lpCPU->ph)
  lpCPU->push(lpCPU->pl)
  lpCPU->push(lpCPU->p )
  lpCPU->F.b=1

  lpCPU->F.i=1

  lpCPU->pc = lpCPU->mem->ReadUShort(&HFFFE)
End Sub


Sub INS_BVC(lpCPU As CPU6510_T)
  If lpCPU->F.v=0 Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_BVS(lpCPU As CPU6510_T)
  If lpCPU->F.v Then

    Dim As MULTI v
    v.u16 =lpCPU->pc
    v.s16-=1

    v.s16+=lpCPU->mem->ReadByte(lpCPU->Code.op.u16)+1

    lpCPU->pc=v.u16
  End If

End Sub


Sub INS_CLC(lpCPU As CPU6510_T)
  lpCPU->F.C=0

End Sub


Sub INS_CLD(lpCPU As CPU6510_T)
  lpCPU->F.D=0

End Sub


Sub INS_CLI(lpCPU As CPU6510_T)
  lpCPU->F.I=0

End Sub


Sub INS_CLV(lpCPU As CPU6510_T)
  lpCPU->F.V=0

End Sub


Sub INS_CMP(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.u16 = lpCPU->A-lpCPU->mem->ReadUByte(lpCPU->Code.op.u16)
  lpCPU->F.c=iif(v.u16<=255,1,0)
  lpCPU->F.z=iif(v.ulo =  0,1,0)
  lpCPU->F.n=iif(v.slo <  0,1,0)
End Sub


Sub INS_CPX(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.u16 = lpCPU->X-lpCPU->mem->ReadUByte(lpCPU->Code.op.u16)
  lpCPU->F.c=iif(v.u16<=255,1,0)
  lpCPU->F.z=iif(v.ulo =  0,1,0)
  lpCPU->F.n=iif(v.slo <  0,1,0)
End Sub


Sub INS_CPY(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.u16 = lpCPU->Y-lpCPU->mem->ReadUByte(lpCPU->Code.op.u16)
  lpCPU->F.c=iif(v.u16<=255,1,0)
  lpCPU->F.z=iif(v.ulo =  0,1,0)
  lpCPU->F.n=iif(v.slo <  0,1,0)
End Sub


Sub INS_DEC(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->mem->ReadUByte(lpCPU->Code.op.u16)
  v.slo-=1

  lpCPU->F.z=iif(v.slo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
  lpCPU->mem->WriteUByte(lpCPU->Code.op.u16,v.ulo)
End Sub


Sub INS_DEX(lpCPU As CPU6510_T)
  lpCPU->sX-=1

  lpCPU->F.z=iif(lpCPU->X =0,1,0)
  lpCPU->F.n=iif(lpCPU->sX<0,1,0)
End Sub


Sub INS_DEY(lpCPU As CPU6510_T)
  lpCPU->sY-=1

  lpCPU->F.z=iif(lpCPU->Y =0,1,0)
  lpCPU->F.n=iif(lpCPU->sY<0,1,0)
End Sub


Sub INS_EOR(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->A Xor lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_INC(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  v.s16+=1

  lpCPU->mem->WriteByte(lpCPU->Code.op.u16,v.ulo)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_INX(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->X
  v.s16+=1

  lpCPU->X=v.ulo
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_INY(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->Y
  v.s16+=1

  lpCPU->Y=v.ulo
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_JMP(lpCPU As CPU6510_T)
  lpCPU->PC=lpCPU->Code.op.u16
End Sub


Sub INS_JSR(lpCPU As CPU6510_T)
  lpCPU->PC-=1

  lpCPU->Push(lpCPU->PH)
  lpCPU->Push(lpCPU->PL)
  lpCPU->PC=lpCPU->Code.op.u16
End Sub


Sub INS_LDA(lpCPU As CPU6510_T)
  lpCPU->A  =lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.Z=iif(lpCPU->A=0,1,0)
  lpCPU->F.N=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_LDX(lpCPU As CPU6510_T)
  lpCPU->X  =lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.Z=iif(lpCPU->X=0,1,0)
  lpCPU->F.N=iif(lpCPU->sX<0,1,0)
End Sub


Sub INS_LDY(lpCPU As CPU6510_T)
  lpCPU->Y  =lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.Z=iif(lpCPU->Y =0,1,0)
  lpCPU->F.N=iif(lpCPU->sY<0,1,0)
End Sub


Sub INS_LSR(lpCPU As CPU6510_T)
  Dim As MULTI v
  v.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.c=iif(v.ulo And &H01,1,0)
  v.ulo Shr = 1

  lpCPU->mem->WriteUByte(lpCPU->Code.op.u16,v.ulo)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<1,1,0)
End Sub


Sub INS_LSRA(lpCPU As CPU6510_T) ' ac
  lpCPU->F.c=iif(lpCPU->A And &H01,1,0)
  lpCPU->A Shr = 1

  lpCPU->F.Z=iif(lpCPU->A =0,1,0)
  lpCPU->F.N=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_NOP(lpCPU As CPU6510_T)
  'dprint("NOP")
End Sub


Sub INS_ORA(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->A Or lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_PHA(lpCPU As CPU6510_T)
  lpCPU->Push(lpCPU->A)
End Sub


Sub INS_PHP(lpCPU As CPU6510_T)
  lpCPU->Push(lpCPU->P)
End Sub


Sub INS_PLA(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->Pull()
  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_PLP(lpCPU As CPU6510_T)
  lpCPU->P=lpCPU->Pull()
End Sub


Sub INS_ROL(lpCPU As CPU6510_T)
  Dim As MULTI v
  Dim As Ubyte cary
  v.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  cary=iif(lpCPU->F.c=1,1,0)
  lpCPU->F.c=iif(v.ulo And &H80,1,0)
  v.ulo shl=1

  If cary Then v.ulo Or =1

  lpCPU->mem->WriteUByte(lpCPU->Code.op.u16,v.ulo)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<1,1,0)
End Sub

Sub INS_ROLA(lpCPU As CPU6510_T) ' ac
  Dim As Ubyte cary
  cary=iif(lpCPU->F.c=1,1,0)
  lpCPU->F.c=iif(lpCPU->A And &H80,1,0)
  lpCPU->A shl= 1

  If cary Then lpCPU->A Or =1

  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_ROR(lpCPU As CPU6510_T)
  Dim As MULTI v
  Dim As Ubyte cary
  cary=iif(lpCPU->F.c=1,1,0)
  v.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  lpCPU->F.c=iif(v.ulo And &H01,1,0)
  v.ulo shr=1

  If cary Then v.ulo Or = &H80

  lpCPU->mem->WriteUByte(lpCPU->Code.op.u16,v.ulo)
  lpCPU->F.z=iif(v.ulo=0,1,0)
  lpCPU->F.n=iif(v.slo<0,1,0)
End Sub


Sub INS_RORA(lpCPU As CPU6510_T) ' ac
  Dim As Ubyte cary
  cary=iif(lpCPU->F.c=1,1,0)
  lpCPU->F.c=iif(lpCPU->A And &H01,1,0)
  lpCPU->A shr= 1

  If cary Then lpCPU->A Or =&H80

  lpCPU->F.z=iif(lpCPU->A =0,1,0)
  lpCPU->F.n=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_RTI(lpCPU As CPU6510_T)
  lpCPU->P =lpCPU->pull()
  lpCPU->PL=lpCPU->pull()
  lpCPU->PH=lpCPU->pull()
  lpCPU->PC+=1

End Sub


Sub INS_RTS(lpCPU As CPU6510_T)
  lpCPU->PL=lpCPU->pull()
  lpCPU->PH=lpCPU->pull()
  lpCPU->PC+=1

End Sub


Sub INS_SBC(lpCPU As CPU6510_T)
  Dim As multi v,b
  b.ulo=lpCPU->mem->ReadUbyte(lpCPU->Code.op.u16)
  v.u16=lpCPU->A - b.ulo
  If lpCPU->F.c=0 Then v.s16-=1

  lpCPU->F.v=iif((((lpCPU->A Xor b.ulo) And &H80) And _
  ((lpCPU->A Xor v.ulo) And &H80)),1,0)
  lpCPU->A=v.ulo
  lpCPU->F.c=iif(v.u16<=255,1,0)
  lpCPU->F.z=iif(v.ulo =  0,1,0)
  lpCPU->F.n=iif(v.slo <  0,1,0)
End Sub


Sub INS_SEC(lpCPU As CPU6510_T)
  lpCPU->F.C=1

End Sub


Sub INS_SED(lpCPU As CPU6510_T)
  lpCPU->F.D=1

End Sub


Sub INS_SEI(lpCPU As CPU6510_T)
  lpCPU->F.I=1

End Sub


Sub INS_STA(lpCPU As CPU6510_T)
  lpCPU->mem->WriteUByte(lpCPU->code.op.u16,lpCPU->A)
End Sub


Sub INS_STX(lpCPU As CPU6510_T)
  lpCPU->mem->WriteUByte(lpCPU->code.op.u16,lpCPU->X)
End Sub


Sub INS_STY(lpCPU As CPU6510_T)
  lpCPU->mem->WriteUByte(lpCPU->code.op.u16,lpCPU->Y)
End Sub


Sub INS_TAX(lpCPU As CPU6510_T)
  lpCPU->X=lpCPU->A
  lpCPU->F.Z=iif(lpCPU->X =0,1,0)
  lpCPU->F.N=iif(lpCPU->sX<0,1,0)
End Sub


Sub INS_TAY(lpCPU As CPU6510_T)
  lpCPU->Y=lpCPU->A
  lpCPU->F.Z=iif(lpCPU->Y =0,1,0)
  lpCPU->F.N=iif(lpCPU->sY<0,1,0)
End Sub


Sub INS_TSX(lpCPU As CPU6510_T)
  lpCPU->X=lpCPU->S
  lpCPU->F.Z=iif(lpCPU->X =0,1,0)
  lpCPU->F.N=iif(lpCPU->sX<0,1,0)
End Sub


Sub INS_TXA(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->X
  lpCPU->F.Z=iif(lpCPU->A =0,1,0)
  lpCPU->F.N=iif(lpCPU->sA<0,1,0)
End Sub


Sub INS_TXS(lpCPU As CPU6510_T)
  lpCPU->S=lpCPU->X
End Sub


Sub INS_TYA(lpCPU As CPU6510_T)
  lpCPU->A=lpCPU->Y
  lpCPU->F.Z=iif(lpCPU->A =0,1,0)
  lpCPU->F.N=iif(lpCPU->sA<0,1,0)
End Sub


INSTRUCTION_SET:
Data   0,"BRK",_IMP   ,7,0,@INS_BRK
Data   1,"ORA",_INDX  ,6,2,@INS_ORA
Data   2,"***",_UNK   ,0,0,@INS_UNK
Data   3,"***",_UNK   ,0,0,@INS_UNK
Data   4,"***",_UNK   ,0,0,@INS_UNK
Data   5,"ORA",_ZERO  ,3,2,@INS_ORA
Data   6,"ASL",_ZERO  ,0,0,@INS_ASL
Data   7,"***",_UNK   ,0,0,@INS_UNK
Data   8,"PHP",_IMP   ,3,1,@INS_PHP
Data   9,"ORA",_IMM   ,2,2,@INS_ORA
Data  10,"ASL",_IMP   ,2,1,@INS_ASLA
Data  11,"***",_UNK   ,0,0,@INS_UNK
Data  12,"***",_UNK   ,0,0,@INS_UNK
Data  13,"ORA",_ABS   ,4,3,@INS_ORA
Data  14,"ASL",_ABS   ,0,0,@INS_ASL
Data  15,"***",_UNK   ,0,0,@INS_UNK

Data  16,"BPL",_REL   ,0,0,@INS_BPL
Data  17,"ORA",_INDY  ,0,0,@INS_ORA
Data  18,"***",_UNK   ,0,0,@INS_UNK
Data  19,"***",_UNK   ,0,0,@INS_UNK
Data  20,"***",_UNK   ,0,0,@INS_UNK
Data  21,"ORA",_ZEROX ,0,0,@INS_ORA
Data  22,"ASL",_ZEROX ,0,0,@INS_ASL
Data  23,"***",_UNK   ,0,0,@INS_UNK
Data  24,"CLC",_IMP   ,0,0,@INS_CLC
Data  25,"ORA",_ABSY  ,0,0,@INS_ORA
Data  26,"***",_UNK   ,0,0,@INS_UNK
Data  27,"***",_UNK   ,0,0,@INS_UNK
Data  28,"***",_UNK   ,0,0,@INS_UNK
Data  29,"ORA",_ABSX  ,0,0,@INS_ORA
Data  30,"ASL",_ABSX  ,0,0,@INS_ASL
Data  31,"***",_UNK   ,0,0,@INS_UNK

Data  32,"JSR",_ABS   ,0,0,@INS_JSR
Data  33,"AND",_INDX  ,0,0,@INS_AND
Data  34,"***",_UNK   ,0,0,@INS_UNK
Data  35,"***",_UNK   ,0,0,@INS_UNK
Data  36,"BIT",_ZERO  ,0,0,@INS_BIT
Data  37,"AND",_ZERO  ,0,0,@INS_AND
Data  38,"ROL",_ZERO  ,0,0,@INS_ROL
Data  39,"***",_UNK   ,0,0,@INS_UNK
Data  40,"PLP",_IMP   ,0,0,@INS_PLP
Data  41,"AND",_IMM   ,0,0,@INS_AND
Data  42,"ROL",_IMP   ,0,0,@INS_ROLA
Data  43,"***",_UNK   ,0,0,@INS_UNK
Data  44,"BIT",_ABS   ,0,0,@INS_BIT
Data  45,"AND",_ABS   ,0,0,@INS_AND
Data  46,"ROL",_ABS   ,0,0,@INS_ROL
Data  47,"***",_UNK   ,0,0,@INS_UNK

Data  48,"BMI",_REL   ,0,0,@INS_BMI
Data  49,"AND",_INDY  ,0,0,@INS_AND
Data  50,"***",_UNK   ,0,0,@INS_UNK
Data  51,"***",_UNK   ,0,0,@INS_UNK
Data  52,"***",_UNK   ,0,0,@INS_UNK
Data  53,"AND",_ZEROX ,0,0,@INS_AND
Data  54,"ROL",_ZEROX ,0,0,@INS_ROL
Data  55,"***",_UNK   ,0,0,@INS_UNK
Data  56,"SEC",_IMP   ,0,0,@INS_SEC
Data  57,"AND",_ABSY  ,0,0,@INS_AND
Data  58,"***",_UNK   ,0,0,@INS_UNK
Data  59,"***",_UNK   ,0,0,@INS_UNK
Data  60,"***",_UNK   ,0,0,@INS_UNK
Data  61,"AND",_ABSX  ,0,0,@INS_AND
Data  62,"ROL",_ABSX  ,0,0,@INS_ROL
Data  63,"***",_UNK   ,0,0,@INS_UNK

Data  64,"RTI",_IMP   ,0,0,@INS_RTI
Data  65,"EOR",_INDX  ,0,0,@INS_EOR
Data  66,"***",_UNK   ,0,0,@INS_UNK
Data  67,"***",_UNK   ,0,0,@INS_UNK
Data  68,"***",_UNK   ,0,0,@INS_UNK
Data  69,"EOR",_ZERO  ,0,0,@INS_EOR
Data  70,"LSR",_ZERO  ,0,0,@INS_LSR
Data  71,"***",_UNK   ,0,0,@INS_UNK
Data  72,"PHA",_IMP   ,0,0,@INS_PHA
Data  73,"EOR",_IMM   ,0,0,@INS_EOR
Data  74,"LSR",_IMP   ,0,0,@INS_LSRA
Data  75,"***",_UNK   ,0,0,@INS_UNK
Data  76,"JMP",_ABS   ,0,0,@INS_JMP
Data  77,"EOR",_ABS   ,0,0,@INS_EOR
Data  78,"LSR",_ABS   ,0,0,@INS_LSR
Data  79,"***",_UNK   ,0,0,@INS_UNK

Data  80,"BVC",_REL   ,0,0,@INS_BVC
Data  81,"EOR",_INDY  ,0,0,@INS_EOR
Data  82,"***",_UNK   ,0,0,@INS_UNK
Data  83,"***",_UNK   ,0,0,@INS_UNK
Data  84,"***",_UNK   ,0,0,@INS_UNK
Data  85,"EOR",_ZEROX ,0,0,@INS_EOR
Data  86,"LSR",_ZEROX ,0,0,@INS_LSR
Data  87,"***",_UNK   ,0,0,@INS_UNK
Data  88,"CLI",_IMP   ,0,0,@INS_CLI
Data  89,"EOR",_ABSY  ,0,0,@INS_EOR
Data  90,"***",_UNK   ,0,0,@INS_UNK
Data  91,"***",_UNK   ,0,0,@INS_UNK
Data  92,"***",_UNK   ,0,0,@INS_UNK
Data  93,"EOR",_ABSX  ,0,0,@INS_EOR
Data  94,"LSR",_ABSX  ,0,0,@INS_LSR
Data  95,"***",_UNK   ,0,0,@INS_UNK

Data  96,"RTS",_IMP   ,0,0,@INS_RTS
Data  97,"ADC",_INDX  ,0,0,@INS_ADC
Data  98,"***",_UNK   ,0,0,@INS_UNK
Data  99,"***",_UNK   ,0,0,@INS_UNK
Data 100,"***",_UNK   ,0,0,@INS_UNK
Data 101,"ADC",_ZERO  ,0,0,@INS_ADC
Data 102,"ROR",_ZERO  ,0,0,@INS_ROR
Data 103,"***",_UNK   ,0,0,@INS_UNK
Data 104,"PLA",_IMP   ,0,0,@INS_PLA
Data 105,"ADC",_IMM   ,0,0,@INS_ADC
Data 106,"ROR",_IMP   ,0,0,@INS_RORA
Data 107,"***",_UNK   ,0,0,@INS_UNK
Data 108,"JMP",_IND   ,0,0,@INS_JMP
Data 109,"ADC",_ABS   ,0,0,@INS_ADC
Data 110,"ROR",_ABS   ,0,0,@INS_ROR
Data 111,"***",_UNK   ,0,0,@INS_UNK

Data 112,"BVS",_REL   ,0,0,@INS_BVS
Data 113,"ADC",_INDY  ,0,0,@INS_ADC
Data 114,"***",_UNK   ,0,0,@INS_UNK
Data 115,"***",_UNK   ,0,0,@INS_UNK
Data 116,"***",_UNK   ,0,0,@INS_UNK
Data 117,"ADC",_ZEROX ,0,0,@INS_ADC
Data 118,"ROR",_ZEROX ,0,0,@INS_ROR
Data 119,"***",_UNK   ,0,0,@INS_UNK
Data 120,"SEI",_IMP   ,0,0,@INS_SEI
Data 121,"ADC",_ABSY  ,0,0,@INS_ADC
Data 122,"***",_UNK   ,0,0,@INS_UNK
Data 123,"***",_UNK   ,0,0,@INS_UNK
Data 124,"***",_UNK   ,0,0,@INS_UNK
Data 125,"ADC",_ABSX  ,0,0,@INS_ADC
Data 126,"ROR",_ABSX  ,0,0,@INS_ROR
Data 127,"***",_UNK   ,0,0,@INS_UNK

Data 128,"***",_UNK   ,0,0,@INS_UNK
Data 129,"STA",_INDX  ,0,0,@INS_STA
Data 130,"***",_UNK   ,0,0,@INS_UNK
Data 131,"***",_UNK   ,0,0,@INS_UNK
Data 132,"STY",_ZERO  ,0,0,@INS_STY
Data 133,"STA",_ZERO  ,0,0,@INS_STA
Data 134,"STX",_ZERO  ,0,0,@INs_STX
Data 135,"***",_UNK   ,0,0,@INS_UNK
Data 136,"DEY",_IMP   ,0,0,@INS_DEY
Data 137,"***",_UNK   ,0,0,@INS_UNK
Data 138,"TXA",_IMP   ,0,0,@INS_TXA
Data 139,"***",_UNK   ,0,0,@INS_UNK
Data 140,"STY",_ABS   ,0,0,@INS_STY
Data 141,"STA",_ABS   ,0,0,@INS_STA
Data 142,"STX",_ABS   ,0,0,@INS_STX
Data 143,"***",_UNK   ,0,0,@INS_UNK

Data 144,"BCC",_REL   ,0,0,@INS_BCC
Data 145,"STA",_INDY  ,0,0,@INS_STA
Data 146,"***",_UNK   ,0,0,@INS_UNK
Data 147,"***",_UNK   ,0,0,@INS_UNK
Data 148,"STY",_ZEROX ,0,0,@INS_STY
Data 149,"STA",_ZEROX ,0,0,@INS_STA
Data 150,"STX",_ZEROY ,0,0,@INS_STX
Data 151,"***",_UNK   ,0,0,@INS_UNK
Data 152,"TYA",_IMP   ,0,0,@INS_TYA
Data 153,"STA",_ABSY  ,0,0,@INS_STA
Data 154,"TXS",_IMP   ,0,0,@INS_TXS
Data 155,"***",_UNK   ,0,0,@INS_UNK
Data 156,"***",_UNK   ,0,0,@INS_UNK
Data 157,"STA",_ABSX  ,0,0,@INS_STA
Data 158,"***",_UNK   ,0,0,@INS_UNK
Data 159,"***",_UNK   ,0,0,@INS_UNK

Data 160,"LDY",_IMM   ,0,0,@INS_LDY
Data 161,"LDA",_INDX  ,0,0,@INS_LDA
Data 162,"LDX",_IMM   ,0,0,@INS_LDX
Data 163,"***",_UNK   ,0,0,@INS_UNK
Data 164,"LDY",_ZERO  ,0,0,@INS_LDY
Data 165,"LDA",_ZERO  ,0,0,@INS_LDA
Data 166,"LDX",_ZERO  ,0,0,@INS_LDX
Data 167,"***",_UNK   ,0,0,@INS_UNK
Data 168,"TAY",_IMP   ,0,0,@INS_TAY
Data 169,"LDA",_IMM   ,0,0,@INS_LDA
Data 170,"TAX",_IMP   ,0,0,@INS_TAX
Data 171,"***",_UNK   ,0,0,@INS_UNK
Data 172,"LDY",_ABS   ,0,0,@INS_LDY
Data 173,"LDA",_ABS   ,0,0,@INS_LDA
Data 174,"LDX",_ABS   ,0,0,@INS_LDX
Data 175,"***",_UNK   ,0,0,@INS_UNK

Data 176,"BCS",_REL   ,0,0,@INS_BCS
Data 177,"LDA",_INDY  ,0,0,@INS_LDA
Data 178,"***",_UNK   ,0,0,@INS_UNK
Data 179,"***",_UNK   ,0,0,@INS_UNK
Data 180,"LDY",_ZEROX ,0,0,@INS_LDY
Data 181,"LDA",_ZEROX ,0,0,@INS_LDA
Data 182,"LDX",_ZEROY ,0,0,@INS_LDX
Data 183,"***",_UNK   ,0,0,@INS_UNK
Data 184,"CLV",_IMP   ,0,0,@INS_CLV
Data 185,"LDA",_ABSY  ,0,0,@INS_LDA
Data 186,"TSX",_IMP   ,0,0,@INS_TSX
Data 187,"***",_UNK   ,0,0,@INS_UNK
Data 188,"LDY",_ABSX  ,0,0,@INS_LDY
Data 189,"LDA",_ABSX  ,0,0,@INS_LDA
Data 190,"LDX",_ABSY  ,0,0,@INS_LDX
Data 191,"***",_UNK   ,0,0,@INS_UNK

Data 192,"CPY",_IMM   ,0,0,@INS_CPY
Data 193,"CMP",_INDX  ,0,0,@INS_CMP
Data 194,"***",_UNK   ,0,0,@INS_UNK
Data 195,"***",_UNK   ,0,0,@INS_UNK
Data 196,"CPY",_ZERO  ,0,0,@INS_CPY
Data 197,"CMP",_ZERO  ,0,0,@INS_CMP
Data 198,"DEC",_ZERO  ,0,0,@INS_DEC
Data 199,"***",_UNK   ,0,0,@INS_UNK
Data 200,"INY",_IMP   ,0,0,@INS_INY
Data 201,"CMP",_IMM   ,0,0,@INS_CMP
Data 202,"DEX",_IMP   ,0,0,@INS_DEX
Data 203,"***",_UNK   ,0,0,@INS_UNK
Data 204,"CPY",_ABS   ,0,0,@INS_CPY
Data 205,"CMP",_ABS   ,0,0,@INS_CMP
Data 206,"DEC",_ABS   ,0,0,@INS_DEC
Data 207,"***",_UNK   ,0,0,@INS_UNK

Data 208,"BNE",_REL   ,0,0,@INS_BNE
Data 209,"CMP",_INDY  ,0,0,@INS_CMP
Data 210,"***",_UNK   ,0,0,@INS_UNK
Data 211,"***",_UNK   ,0,0,@INS_UNK
Data 212,"***",_UNK   ,0,0,@INS_UNK
Data 213,"CMP",_ZEROX ,0,0,@INS_CMP
Data 214,"DEC",_ZEROX ,0,0,@INS_DEC
Data 215,"***",_UNK   ,0,0,@INS_UNK
Data 216,"CLD",_IMP   ,0,0,@INS_CLD
Data 217,"CMP",_ABSY  ,0,0,@INS_CMP
Data 218,"***",_UNK   ,0,0,@INS_UNK
Data 219,"***",_UNK   ,0,0,@INS_UNK
Data 220,"***",_UNK   ,0,0,@INS_UNK
Data 221,"CMP",_ABSX  ,0,0,@INS_CMP
Data 222,"DEC",_ABSX  ,0,0,@INS_DEC
Data 223,"***",_UNK   ,0,0,@INS_UNK

Data 224,"CPX",_IMM   ,0,0,@INS_CPX
Data 225,"SBC",_INDX  ,0,0,@INS_SBC
Data 226,"***",_UNK   ,0,0,@INS_UNK
Data 227,"***",_UNK   ,0,0,@INS_UNK
Data 228,"CPX",_ZERO  ,0,0,@INS_CPX
Data 229,"SBC",_ZERO  ,0,0,@INS_SBC
Data 230,"INC",_ZERO  ,0,0,@INS_INC
Data 231,"***",_UNK   ,0,0,@INS_UNK
Data 232,"INX",_IMP   ,0,0,@INS_INX
Data 233,"SBC",_IMM   ,0,0,@INS_SBC
Data 234,"NOP",_IMP   ,0,0,@INS_NOP
Data 235,"***",_UNK   ,0,0,@INS_UNK
Data 236,"CPX",_ABS   ,0,0,@INS_CPX
Data 237,"SBC",_ABS   ,0,0,@INS_SBC
Data 238,"INC",_ABS   ,0,0,@INS_INC
Data 239,"***",_UNK   ,0,0,@INS_UNK

Data 240,"BEQ",_REL   ,0,0,@INS_BEQ
Data 241,"SBC",_INDY  ,0,0,@INS_SBC
Data 242,"***",_UNK   ,0,0,@INS_UNK
Data 243,"***",_UNK   ,0,0,@INS_UNK
Data 244,"***",_UNK   ,0,0,@INS_UNK
Data 245,"SBC",_ZEROX ,0,0,@INS_SBC
Data 246,"INC",_ZEROX ,0,0,@INS_INC
Data 247,"***",_UNK   ,0,0,@INS_UNK
Data 248,"SED",_IMP   ,0,0,@INS_SED
Data 249,"SBC",_ABSY  ,0,0,@INS_SBC
Data 250,"***",_UNK   ,0,0,@INS_UNK
Data 251,"***",_UNK   ,0,0,@INS_UNK
Data 252,"***",_UNK   ,0,0,@INS_UNK
Data 253,"SBC",_ABSX  ,0,0,@INS_SBC
Data 254,"INC",_ABSX  ,0,0,@INS_INC
Data 255,"***",_UNK   ,0,0,@INS_UNK

ADDRESS_MODES:
Data "UNK"
Data "IMP"
Data "IMM"
Data "ABS"
Data "ZERO"
Data "ZEROX"
Data "ZEROY"
Data "ABSX"
Data "ABSY"
Data "REL"
Data "INDX"
Data "INDY"
Data "IND"



KERNAL_ROM:
Data 133, 86, 32, 15,188,165, 97,201,136,144,  3, 32,212,186, 32,204

Data 188,165,  7, 24,105,129,240,243, 56,233,  1, 72,162,  5,181,105

Data 180, 97,149, 97,148,105,202, 16,245,165, 86,133,112, 32, 83,184

Data  32,180,191,169,196,160,191, 32, 89,224,169,  0,133,111,104, 32

Data 185,186, 96,133,113,132,114, 32,202,187,169, 87, 32, 40,186, 32

Data  93,224,169, 87,160,  0, 76, 40,186,133,113,132,114, 32,199,187

Data 177,113,133,103,164,113,200,152,208,  2,230,114,133,113,164,114

Data  32, 40,186,165,113,164,114, 24,105,  5,144,  1,200,133,113,132

Data 114, 32,103,184,169, 92,160,  0,198,103,208,228, 96,152, 53, 68

Data 122,  0,104, 40,177, 70,  0, 32, 43,188, 48, 55,208, 32, 32,243

Data 255,134, 34,132, 35,160,  4,177, 34,133, 98,200,177, 34,133,100

Data 160,  8,177, 34,133, 99,200,177, 34,133,101, 76,227,224,169,139

Data 160,  0, 32,162,187,169,141,160,224, 32, 40,186,169,146,160,224

Data  32,103,184,166,101,165, 98,133,101,134, 98,166, 99,165,100,133

Data  99,134,100,169,  0,133,102,165, 97,133,112,169,128,133, 97, 32

Data 215,184,162,139,160,  0, 76,212,187,201,240,208,  7,132, 56,134

Data  55, 76, 99,166,170,208,  2,162, 30, 76, 55,164, 32,210,255,176

Data 232, 96, 32,207,255,176,226, 96, 32,173,228,176,220, 96, 32,198

Data 255,176,214, 96, 32,228,255,176,208, 96, 32,138,173, 32,247,183

Data 169,225, 72,169, 70, 72,173, 15,  3, 72,173, 12,  3,174, 13,  3

Data 172, 14,  3, 40,108, 20,  0,  8,141, 12,  3,142, 13,  3,140, 14

Data   3,104,141,15,3,96,32,212,225,166,45,164,46,169,43,32

Data 216,255,176,149,96,169,1,44,169,0,133,10,32,212,225,165

Data  10,166,43,164,44,32,213,255,176,87,165,10,240,23,162,28

Data  32,183,255,41,16,208,23,165,122,201,2,240,7,169,100,160

Data 163,76,30,171,96,32,183,255,41,191,240,5,162,29,76,55

Data 164,165,123,201,2,208,14,134,45,132,46,169,118,160,163,32

Data  30,171,76,42,165,32,142,166,32,51,165,76,119,166,32,25

Data 226,32,192,255,176,11,96,32,25,226,165,73,32,195,255,144

Data 195,76,249,224,169,0,32,189,255,162,1,160,0,32,186,255

Data  32,6,226,32,87,226,32,6,226,32,0,226,160,0,134,73

Data  32,186,255,32,6,226,32,0,226,138,168,166,73,76,186,255

Data  32,14,226,76,158,183,32,121,0,208,2,104,104,96,32,253

Data 174,32,121,0,208,247,76,8,175,169,0,32,189,255,32,17

Data 226,32,158,183,134,73,138,162,1,160,0,32,186,255,32,6

Data 226,32,0,226,134,74,160,0,165,73,224,3,144,1,136,32

Data 186,255,32,6,226,32,0,226,138,168,166,74,165,73,32,186

Data 255,32,6,226,32,14,226,32,158,173,32,163,182,166,34,164

Data  35,76,189,255,169,224,160,226,32,103,184,32,12,188,169,229

Data 160,226,166,110,32,7,187,32,12,188,32,204,188,169,0,133

Data 111,32,83,184,169,234,160,226,32,80,184,165,102,72,16,13

Data  32,73,184,165,102,48,9,165,18,73,255,133,18,32,180,191

Data 169,234,160,226,32,103,184,104,16,3,32,180,191,169,239,160

Data 226,76,67,224,32,202,187,169,0,133,18,32,107,226,162,78

Data 160,0,32,246,224,169,87,160,0,32,162,187,169,0,133,102

Data 165,18,32,220,226,169,78,160,0,76,15,187,72,76,157,226

Data 129,73,15,218,162,131,73,15,218,162,127,0,0,0,0,5

Data 132,230,26,45,27,134,40,7,251,248,135,153,104,137,1,135

Data  35,53,223,225,134,165,93,231,40,131,73,15,218,162,165,102

Data  72,16,3,32,180,191,165,97,72,201,129,144,7,169,188,160

Data 185,32,15,187,169,62,160,227,32,67,224,104,201,129,144,7

Data 169,224,160,226,32,80,184,104,16,3,76,180,191,96,11,118

Data 179,131,189,211,121,30,244,166,245,123,131,252,176,16,124,12

Data  31,103,202,124,222,83,203,193,125,20,100,112,76,125,183,234

Data  81,122,125,99,48,136,126,126,146,68,153,58,126,76,204,145

Data 199,127,170,170,170,19,129,0,0,0,0,32,204,255,169,0

Data 133,19,32,122,166,88,162,128,108,0,3,138,48,3,76,58

Data 164,76,116,164,32,83,228,32,191,227,32,34,228,162,251,154

Data 208,228,230,122,208,2,230,123,173,96,234,201,58,176,10,201

Data  32,240,239,56,233,48,56,233,208,96,128,79,199,82,88,169

Data  76,133,84,141,16,3,169,72,160,178,141,17,3,140,18,3

Data 169,145,160,179,133,5,132,6,169,170,160,177,133,3,132,4

Data 162,28,189,162,227,149,115,202,16,248,169,3,133,83,169,0

Data 133,104,133,19,133,24,162,1,142,253,1,142,252,1,162,25

Data 134,22,56,32,156,255,134,43,132,44,56,32,153,255,134,55

Data 132,56,134,51,132,52,160,0,152,145,43,230,43,208,2,230

Data  44,96,165,43,164,44,32,8,164,169,115,160,228,32,30,171

Data 165,55,56,229,43,170,165,56,229,44,32,205,189,169,96,160

Data 228,32,30,171,76,68,166,139,227,131,164,124,165,26,167,228

Data 167,134,174,162,11,189,71,228,157,0,3,202,16,247,96,0

Data  32,66,65,83,73,67,32,66,89,84,69,83,32,70,82,69

Data  69,13,0,147,13,32,32,32,32,42,42,42,42,32,67,79

Data  77,77,79,68,79,82,69,32,54,52,32,66,65,83,73,67

Data  32,86,50,32,42,42,42,42,13,13,32,54,52,75,32,82

Data  65,77,32,83,89,83,84,69,77,32,32,0,92,72,32,201

Data 255,170,104,144,1,138,96,170,170,170,170,170,170,170,170,170

Data 170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170

Data 170,170,170,170,170,170,170,170,170,170,173,134,2,145,243,96

Data 105,2,164,145,200,208,4,197,161,208,247,96,25,38,68,25

Data  26,17,232,13,112,12,6,6,209,2,55,1,174,0,105,0

Data 162,0,160,220,96,162,40,160,25,96,176,7,134,214,132,211

Data  32,108,229,166,214,164,211,96,32,160,229,169,0,141,145,2

Data 133,207,169,72,141,143,2,169,235,141,144,2,169,10,141,137

Data   2,141,140,2,169,14,141,134,2,169,4,141,139,2,169,12

Data 133,205,133,204,173,136,2,9,128,168,169,0,170,148,217,24

Data 105,40,144,1,200,232,224,26,208,243,169,255,149,217,162,24

Data  32,255,233,202,16,250,160,0,132,211,132,214,166,214,165,211

Data 180,217,48,8,24,105,40,133,211,202,16,244,181,217,41,3

Data  13,136,2,133,210,189,240,236,133,209,169,39,232,180,217,48

Data   6,24,105,40,232,16,246,133,213,96,32,160,229,76,102,229

Data 169,3,133,154,169,0,133,153,162,47,189,184,236,157,255,207

Data 202,208,247,96,172,119,2,162,0,189,120,2,157,119,2,232

Data 228,198,208,245,198,198,152,88,24,96,32,22,231,165,198,133

Data 204,141,146,2,240,247,120,165,207,240,12,165,206,174,135,2

Data 160,0,132,207,32,19,234,32,180,229,201,131,208,16,162,9

Data 120,134,198,189,230,236,157,118,2,202,208,247,240,207,201,13

Data 208,200,164,213,132,208,177,209,201,32,208,3,136,208,247,200

Data 132,200,160,0,140,146,2,132,211,132,212,165,201,48,27,166

Data 214,32,237,230,228,201,208,18,165,202,133,211,197,200,144,10

Data 176,43,152,72,138,72,165,208,240,147,164,211,177,209,133,215

Data  41,63,6,215,36,215,16,2,9,128,144,4,166,212,208,4

Data 112,2,9,64,230,211,32,132,230,196,200,208,23,169,0,133

Data 208,169,13,166,153,224,3,240,6,166,154,224,3,240,3,32

Data  22,231,169,13,133,215,104,170,104,168,165,215,201,222,208,2

Data 169,255,24,96,201,34,208,8,165,212,73,1,133,212,169,34

Data  96,9,64,166,199,240,2,9,128,166,216,240,2,198,216,174

Data 134,2,32,19,234,32,182,230,104,168,165,216,240,2,70,212

Data 104,170,104,24,88,96,32,179,232,230,211,165,213,197,211,176

Data  63,201,79,240,50,173,146,2,240,3,76,103,233,166,214,224

Data  25,144,7,32,234,232,198,214,166,214,22,217,86,217,232,181

Data 217,9,128,149,217,202,165,213,24,105,40,133,213,181,217,48

Data   3,202,208,249,76,240,233,198,214,32,124,232,169,0,133,211

Data  96,166,214,208,6,134,211,104,104,208,157,202,134,214,32,108

Data 229,164,213,132,211,96,72,133,215,138,72,152,72,169,0,133

Data 208,164,211,165,215,16,3,76,212,231,201,13,208,3,76,145

Data 232,201,32,144,16,201,96,144,4,41,223,208,2,41,63,32

Data 132,230,76,147,230,166,216,240,3,76,151,230,201,20,208,46

Data 152,208,6,32,1,231,76,115,231,32,161,232,136,132,211,32

Data  36,234,200,177,209,136,145,209,200,177,243,136,145,243,200,196

Data 213,208,239,169,32,145,209,173,134,2,145,243,16,77,166,212

Data 240,3,76,151,230,201,18,208,2,133,199,201,19,208,3,32

Data 102,229,201,29,208,23,200,32,179,232,132,211,136,196,213,144

Data   9,198,214,32,124,232,160,0,132,211,76,168,230,201,17,208

Data  29,24,152,105,40,168,230,214,197,213,144,236,240,234,198,214

Data 233,40,144,4,133,211,208,248,32,124,232,76,168,230,32,203

Data 232,76,68,236,41,127,201,127,208,2,169,94,201,32,144,3

Data  76,145,230,201,13,208,3,76,145,232,166,212,208,63,201,20

Data 208,55,164,213,177,209,201,32,208,4,196,211,208,7,192,79

Data 240,36,32,101,233,164,213,32,36,234,136,177,209,200,145,209

Data 136,177,243,200,145,243,136,196,211,208,239,169,32,145,209,173

Data 134,2,145,243,230,216,76,168,230,166,216,240,5,9,64,76

Data 151,230,201,17,208,22,166,214,240,55,198,214,165,211,56,233

Data  40,144,4,133,211,16,42,32,108,229,208,37,201,18,208,4

Data 169,0,133,199,201,29,208,18,152,240,9,32,161,232,136,132

Data 211,76,168,230,32,1,231,76,168,230,201,19,208,6,32,68

Data 229,76,168,230,9,128,32,203,232,76,79,236,70,201,166,214

Data 232,224,25,208,3,32,234,232,181,217,16,244,134,214,76,108

Data 229,162,0,134,216,134,199,134,212,134,211,32,124,232,76,168

Data 230,162,2,169,0,197,211,240,7,24,105,40,202,208,246,96

Data 198,214,96,162,2,169,39,197,211,240,7,24,105,40,202,208

Data 246,96,166,214,224,25,240,2,230,214,96,162,15,221,218,232

Data 240,4,202,16,248,96,142,134,2,96,144,5,28,159,156,30

Data  31,158,129,149,150,151,152,153,154,155,165,172,72,165,173,72

Data 165,174,72,165,175,72,162,255,198,214,198,201,206,165,2,232

Data  32,240,233,224,24,176,12,189,241,236,133,172,181,218,32,200

Data 233,48,236,32,255,233,162,0,181,217,41,127,180,218,16,2

Data   9,128,149,217,232,224,24,208,239,165,241,9,128,133,241,165

Data 217,16,195,230,214,238,165,2,169,127,141,0,220,173,1,220

Data 201,251,8,169,127,141,0,220,40,208,11,160,0,234,202,208

Data 252,136,208,249,132,198,166,214,104,133,175,104,133,174,104,133

Data 173,104,133,172,96,166,214,232,181,217,16,251,142,165,2,224

Data  24,240,14,144,12,32,234,232,174,165,2,202,198,214,76,218

Data 230,165,172,72,165,173,72,165,174,72,165,175,72,162,25,202

Data  32,240,233,236,165,2,144,14,240,12,189,239,236,133,172,181

Data 216,32,200,233,48,233,32,255,233,162,23,236,165,2,144,15

Data 181,218,41,127,180,217,16,2,9,128,149,218,202,208,236,174

Data 165,2,32,218,230,76,88,233,41,3,13,136,2,133,173,32

Data 224,233,160,39,177,172,145,209,177,174,145,243,136,16,245,96

Data  32,36,234,165,172,133,174,165,173,41,3,9,216,133,175,96

Data 189,240,236,133,209,181,217,41,3,13,136,2,133,210,96,160

Data  39,32,240,233,32,36,234,169,32,145,209,32,218,228,234,136

Data  16,245,96,168,169,2,133,205,32,36,234,152,164,211,145,209

Data 138,145,243,96,165,209,133,243,165,210,41,3,9,216,133,244

Data  96,32,234,255,165,204,208,41,198,205,208,37,169,20,133,205

Data 164,211,70,207,174,135,2,177,209,176,17,230,207,133,206,32

Data  36,234,177,243,141,135,2,174,134,2,165,206,73,128,32,28

Data 234,165,1,41,16,240,10,160,0,132,192,165,1,9,32,208

Data   8,165,192,208,6,165,1,41,31,133,1,32,135,234,173,13

Data 220,104,168,104,170,104,64,169,0,141,141,2,160,64,132,203

Data 141,0,220,174,1,220,224,255,240,97,168,169,129,133,245,169

Data 235,133,246,169,254,141,0,220,162,8,72,173,1,220,205,1

Data 220,208,248,74,176,22,72,177,245,201,5,176,12,201,3,240

Data   8,13,141,2,141,141,2,16,2,132,203,104,200,192,65,176

Data  11,202,208,223,56,104,42,141,0,220,208,204,104,108,143,2

Data 164,203,177,245,170,196,197,240,7,160,16,140,140,2,208,54

Data  41,127,44,138,2,48,22,112,73,201,127,240,41,201,20,240

Data  12,201,32,240,8,201,29,240,4,201,17,208,53,172,140,2

Data 240,5,206,140,2,208,43,206,139,2,208,38,160,4,140,139

Data   2,164,198,136,16,28,164,203,132,197,172,141,2,140,142,2

Data 224,255,240,14,138,166,198,236,137,2,176,6,157,119,2,232

Data 134,198,169,127,141,0,220,96,173,141,2,201,3,208,21,205

Data 142,2,240,238,173,145,2,48,29,173,24,208,73,2,141,24

Data 208,76,118,235,10,201,8,144,2,169,6,170,189,121,235,133

Data 245,189,122,235,133,246,76,224,234,129,235,194,235,3,236,120

Data 236,20,13,29,136,133,134,135,17,51,87,65,52,90,83,69

Data   1,53,82,68,54,67,70,84,88,55,89,71,56,66,72,85

Data  86,57,73,74,48,77,75,79,78,43,80,76,45,46,58,64

Data  44,92,42,59,19,1,61,94,47,49,95,4,50,32,2,81

Data   3,255,148,141,157,140,137,138,139,145,35,215,193,36,218,211

Data 197,1,37,210,196,38,195,198,212,216,39,217,199,40,194,200

Data 213,214,41,201,202,48,205,203,207,206,219,208,204,221,62,91

Data 186,60,169,192,93,147,1,61,222,63,33,95,4,34,160,2

Data 209,131,255,148,141,157,140,137,138,139,145,150,179,176,151,173

Data 174,177,1,152,178,172,153,188,187,163,189,154,183,165,155,191

Data 180,184,190,41,162,181,48,167,161,185,170,166,175,182,220,62

Data  91,164,60,168,223,93,147,1,61,222,63,129,95,4,149,160

Data   2,171,131,255,201,14,208,7,173,24,208,9,2,208,9,201

Data 142,208,11,173,24,208,41,253,141,24,208,76,168,230,201,8

Data 208,7,169,128,13,145,2,48,9,201,9,208,238,169,127,45

Data 145,2,141,145,2,76,168,230,255,255,255,255,255,255,255,255

Data  28,23,1,159,26,19,5,255,156,18,4,30,3,6,20,24

Data  31,25,7,158,2,8,21,22,18,9,10,146,13,11,15,14

Data 255,16,12,255,255,27,0,255,28,255,29,255,255,31,30,255

Data 144,6,255,5,255,255,17,255,255,0,0,0,0,0,0,0

Data   0,0,0,0,0,0,0,0,0,0,155,55,0,0,0,8

Data   0,20,15,0,0,0,0,0,0,14,6,1,2,3,4,0

Data   1,2,3,4,5,6,7,76,79,65,68,13,82,85,78,13

Data   0, 40, 80,120,160,200,240, 24, 64,104,144,184,224, 8, 48, 88

Data 128,168,208,248, 32, 72,112,152,192,  9, 64, 44, 9, 32, 32,164

Data 240, 72, 36,148, 16, 10, 56,102,163, 32, 64,237,70,148, 70,163

Data 104,133,149,120,32,151,238,201,63,208,3,32,133,238,173,0

Data 221,9,8,141,0,221,120,32,142,238,32,151,238,32,179,238

Data 120,32,151,238,32,169,238,176,100,32,133,238,36,163,16,10

Data  32,169,238,144,251,32,169,238,176,251,32,169,238,144,251,32

Data 142,238,169,8,133,165,173,0,221,205,0,221,208,248,10,144

Data  63,102,149,176,5,32,160,238,208,3,32,151,238,32,133,238

Data 234,234,234,234,173,0,221,41,223,9,16,141,0,221,198,165

Data 208,212,169,4,141,7,220,169,25,141,15,220,173,13,220,173

Data  13,220,41,2,208,10,32,169,238,176,244,88,96,169,128,44

Data 169,3,32,28,254,88,24,144,74,133,149,32,54,237,173,0

Data 221,41,247,141,0,221,96,133,149,32,54,237,120,32,160,238

Data  32,190,237,32,133,238,32,169,238,48,251,88,96,36,148,48

Data   5,56,102,148,208,5,72,32,64,237,104,133,149,24,96,120

Data  32,142,238,173,0,221,9,8,141,0,221,169,95,44,169,63

Data  32,17,237,32,190,237,138,162,10,202,208,253,170,32,133,238

Data  76,151,238,120,169,0,133,165,32,133,238,32,169,238,16,251

Data 169,1,141,7,220,169,25,141,15,220,32,151,238,173,13,220

Data 173,13,220,41,2,208,7,32,169,238,48,244,16,24,165,165

Data 240,5,169,2,76,178,237,32,160,238,32,133,238,169,64,32

Data  28,254,230,165,208,202,169,8,133,165,173,0,221,205,0,221

Data 208,248,10,16,245,102,164,173,0,221,205,0,221,208,248,10

Data  48,245,198,165,208,228,32,160,238,36,144,80,3,32,6,238

Data 165,164,88,24,96,173,0,221,41,239,141,0,221,96,173,0

Data 221,9,16,141,0,221,96,173,0,221,41,223,141,0,221,96

Data 173,0,221,9,32,141,0,221,96,173,0,221,205,0,221,208

Data 248,10,96,138,162,184,202,208,253,170,96,165,180,240,71,48

Data  63,70,182,162,0,144,1,202,138,69,189,133,189,198,180,240

Data   6,138,41,4,133,181,96,169,32,44,148,2,240,20,48,28

Data 112,20,165,189,208,1,202,198,180,173,147,2,16,227,198,180

Data 208,223,230,180,208,240,165,189,240,237,208,234,112,233,80,230

Data 230,180,162,255,208,203,173,148,2,74,144,7,44,1,221,16

Data  29,80,30,169,0,133,189,133,181,174,152,2,134,180,172,157

Data   2,204,158,2,240,19,177,249,133,182,238,157,2,96,169,64

Data  44,169,16,13,151,2,141,151,2,169,1,141,13,221,77,161

Data   2,9,128,141,161,2,141,13,221,96,162,9,169,32,44,147

Data   2,240,1,202,80,2,202,202,96,166,169,208,51,198,168,240

Data  54,48,13,165,167,69,171,133,171,70,167,102,170,96,198,168

Data 165,167,240,103,173,147,2,10,169,1,101,168,208,239,169,144

Data 141,13,221,13,161,2,141,161,2,133,169,169,2,76,59,239

Data 165,167,208,234,133,169,96,172,155,2,200,204,156,2,240,42

Data 140,155,2,136,165,170,174,152,2,224,9,240,4,74,232,208

Data 248,145,247,169,32,44,148,2,240,180,48,177,165,167,69,171

Data 240,3,112,169,44,80,166,169,1,44,169,4,44,169,128,44

Data 169,2,13,151,2,141,151,2,76,126,239,165,170,208,241,240

Data 236,133,154,173,148,2,74,144,41,169,2,44,1,221,16,29

Data 208,32,173,161,2,41,2,208,249,44,1,221,112,251,173,1

Data 221,9,2,141,1,221,44,1,221,112,7,48,249,169,64,141

Data 151,2,24,96,32,40,240,172,158,2,200,204,157,2,240,244

Data 140,158,2,136,165,158,145,249,173,161,2,74,176,30,169,16

Data 141,14,221,173,153,2,141,4,221,173,154,2,141,5,221,169

Data 129,32,59,239,32,6,239,169,17,141,14,221,96,133,153,173

Data 148,2,74,144,40,41,8,240,36,169,2,44,1,221,16,173

Data 240,34,173,161,2,74,176,250,173,1,221,41,253,141,1,221

Data 173,1,221,41,4,240,249,169,144,24,76,59,239,173,161,2

Data  41,18,240,243,24,96,173,151,2,172,156,2,204,155,2,240

Data 11,41,247,141,151,2,177,247,238,156,2,96,9,8,141,151

Data 2,169,0,96,72,173,161,2,240,17,173,161,2,41,3,208

Data 249,169,16,141,13,221,169,0,141,161,2,104,96,13,73,47

Data 79,32,69,82,82,79,82,32,163,13,83,69,65,82,67,72

Data 73,78,71,160,70,79,82,160,13,80,82,69,83,83,32,80

Data 76,65,89,32,79,78,32,84,65,80,197,80,82,69,83,83

Data 32,82,69,67,79,82,68,32,38,32,80,76,65,89,32,79

Data 78,32,84,65,80,197,13,76,79,65,68,73,78,199,13,83

Data 65,86,73,78,71,160,13,86,69,82,73,70,89,73,78,199

Data 13,70,79,85,78,68,160,13,79,75,141,36,157,16,13,185

Data 189,240,8,41,127,32,210,255,200,40,16,243,24,96,165,153

Data 208,8,165,198,240,15,120,76,180,229,201,2,208,24,132,151

Data 32,134,240,164,151,24,96,165,153,208,11,165,211,133,202,165

Data 214,133,201,76,50,230,201,3,208,9,133,208,165,213,133,200

Data 76,50,230,176,56,201,2,240,63,134,151,32,153,241,176,22

Data 72,32,153,241,176,13,208,5,169,64,32,28,254,198,166,166

Data 151,104,96,170,104,138,166,151,96,32,13,248,208,11,32,65

Data 248,176,17,169,0,133,166,240,240,177,178,24,96,165,144,240

Data 4,169,13,24,96,76,19,238,32,78,241,176,247,201,0,208

Data 242,173,151,2,41,96,208,233,240,238,72,165,154,201,3,208

Data 4,104,76,22,231,144,4,104,76,221,237,74,104,133,158,138

Data 72,152,72,144,35,32,13,248,208,14,32,100,248,176,14,169

Data 2,160,0,145,178,200,132,166,165,158,145,178,24,104,168,104

Data 170,165,158,144,2,169,0,96,32,23,240,76,252,241,32,15

Data 243,240,3,76,1,247,32,31,243,165,186,240,22,201,3,240

Data 18,176,20,201,2,208,3,76,77,240,166,185,224,96,240,3

Data 76,10,247,133,153,24,96,170,32,9,237,165,185,16,6,32

Data 204,237,76,72,242,32,199,237,138,36,144,16,230,76,7,247

Data 32,15,243,240,3,76,1,247,32,31,243,165,186,208,3,76

Data 13,247,201,3,240,15,176,17,201,2,208,3,76,225,239,166

Data 185,224,96,240,234,133,154,24,96,170,32,12,237,165,185,16

Data 5,32,190,237,208,3,32,185,237,138,36,144,16,231,76,7

Data 247,32,20,243,240,2,24,96,32,31,243,138,72,165,186,240

Data 80,201,3,240,76,176,71,201,2,208,29,104,32,242,242,32

Data 131,244,32,39,254,165,248,240,1,200,165,250,240,1,200,169

Data 0,133,248,133,250,76,125,244,165,185,41,15,240,35,32,208

Data 247,169,0,56,32,221,241,32,100,248,144,4,104,169,0,96

Data 165,185,201,98,208,11,169,5,32,106,247,76,241,242,32,66

Data 246,104,170,198,152,228,152,240,20,164,152,185,89,2,157,89

Data 2,185,99,2,157,99,2,185,109,2,157,109,2,24,96,169

Data 0,133,144,138,166,152,202,48,21,221,89,2,208,248,96,189

Data 89,2,133,184,189,99,2,133,186,189,109,2,133,185,96,169

Data 0,133,152,162,3,228,154,176,3,32,254,237,228,153,176,3

Data 32,239,237,134,154,169,0,133,153,96,166,184,208,3,76,10

Data 247,32,15,243,208,3,76,254,246,166,152,224,10,144,3,76

Data 251,246,230,152,165,184,157,89,2,165,185,9,96,133,185,157

Data 109,2,165,186,157,99,2,240,90,201,3,240,86,144,5,32

Data 213,243,144,79,201,2,208,3,76,9,244,32,208,247,176,3

Data 76,19,247,165,185,41,15,208,31,32,23,248,176,54,32,175

Data 245,165,183,240,10,32,234,247,144,24,240,40,76,4,247,32

Data 44,247,240,32,144,12,176,244,32,56,248,176,23,169,4,32

Data 106,247,169,191,164,185,192,96,240,7,160,0,169,2,145,178

Data 152,133,166,24,96,165,185,48,250,164,183,240,246,169,0,133

Data 144,165,186,32,12,237,165,185,9,240,32,185,237,165,144,16

Data 5,104,104,76,7,247,165,183,240,12,160,0,177,187,32,221

Data 237,200,196,183,208,246,76,84,246,32,131,244,140,151,2,196

Data 183,240,10,177,187,153,147,2,200,192,4,208,242,32,74,239

Data 142,152,2,173,147,2,41,15,240,28,10,170,173,166,2,208

Data 9,188,193,254,189,192,254,76,64,244,188,235,228,189,234,228

Data 140,150,2,141,149,2,173,149,2,10,32,46,255,173,148,2

Data 74,144,9,173,1,221,10,176,3,32,13,240,173,155,2,141

Data 156,2,173,158,2,141,157,2,32,39,254,165,248,208,5,136

Data 132,248,134,247,165,250,208,5,136,132,250,134,249,56,169,240

Data 76,45,254,169,127,141,13,221,169,6,141,3,221,141,1,221

Data 169,4,13,0,221,141,0,221,160,0,140,161,2,96,134,195

Data 132,196,108,48,3,133,147,169,0,133,144,165,186,208,3,76

Data 19,247,201,3,240,249,144,123,164,183,208,3,76,16,247,166

Data 185,32,175,245,169,96,133,185,32,213,243,165,186,32,9,237

Data 165,185,32,199,237,32,19,238,133,174,165,144,74,74,176,80

Data 32,19,238,133,175,138,208,8,165,195,133,174,165,196,133,175

Data 32,210,245,169,253,37,144,133,144,32,225,255,208,3,76,51

Data 246,32,19,238,170,165,144,74,74,176,232,138,164,147,240,12

Data 160,0,209,174,240,8,169,16,32,28,254,44,145,174,230,174

Data 208,2,230,175,36,144,80,203,32,239,237,32,66,246,144,121

Data 76,4,247,74,176,3,76,19,247,32,208,247,176,3,76,19

Data 247,32,23,248,176,104,32,175,245,165,183,240,9,32,234,247

Data 144,11,240,90,176,218,32,44,247,240,83,176,211,165,144,41

Data 16,56,208,74,224,1,240,17,224,3,208,221,160,1,177,178

Data 133,195,200,177,178,133,196,176,4,165,185,208,239,160,3,177

Data 178,160,1,241,178,170,160,4,177,178,160,2,241,178,168,24

Data 138,101,195,133,174,152,101,196,133,175,165,195,133,193,165,196

Data 133,194,32,210,245,32,74,248,36,24,166,174,164,175,96,165

Data 157,16,30,160,12,32,47,241,165,183,240,21,160,23,32,47

Data 241,164,183,240,12,160,0,177,187,32,210,255,200,196,183,208

Data 246,96,160,73,165,147,240,2,160,89,76,43,241,134,174,132

Data 175,170,181,0,133,193,181,1,133,194,108,50,3,165,186,208

Data 3,76,19,247,201,3,240,249,144,95,169,97,133,185,164,183

Data 208,3,76,16,247,32,213,243,32,143,246,165,186,32,12,237

Data 165,185,32,185,237,160,0,32,142,251,165,172,32,221,237,165

Data 173,32,221,237,32,209,252,176,22,177,172,32,221,237,32,225

Data 255,208,7,32,66,246,169,0,56,96,32,219,252,208,229,32

Data 254,237,36,185,48,17,165,186,32,12,237,165,185,41,239,9

Data 224,32,185,237,32,254,237,24,96,74,176,3,76,19,247,32

Data 208,247,144,141,32,56,248,176,37,32,143,246,162,3,165,185

Data 41,1,208,2,162,1,138,32,106,247,176,18,32,103,248,176

Data 13,165,185,41,2,240,6,169,5,32,106,247,36,24,96,165

Data 157,16,251,160,81,32,47,241,76,193,245,162,0,230,162,208

Data 6,230,161,208,2,230,160,56,165,162,233,1,165,161,233,26

Data 165,160,233,79,144,6,134,160,134,161,134,162,173,1,220,205

Data 1,220,208,248,170,48,19,162,189,142,0,220,174,1,220,236

Data 1,220,208,248,141,0,220,232,208,2,133,145,96,120,165,162

Data 166,161,164,160,120,133,162,134,161,132,160,88,96,165,145,201

Data 127,208,7,8,32,204,255,133,198,40,96,169,1,44,169,2

Data 44,169,3,44,169,4,44,169,5,44,169,6,44,169,7,44

Data 169,8,44,169,9,72,32,204,255,160,0,36,157,80,10,32

Data 47,241,104,72,9,48,32,210,255,104,56,96,165,147,72,32

Data 65,248,104,133,147,176,50,160,0,177,178,201,5,240,42,201

Data 1,240,8,201,3,240,4,201,4,208,225,170,36,157,16,23

Data 160,99,32,47,241,160,5,177,178,32,210,255,200,192,21,208

Data 246,165,161,32,224,228,234,24,136,96,133,158,32,208,247,144

Data 94,165,194,72,165,193,72,165,175,72,165,174,72,160,191,169

Data 32,145,178,136,208,251,165,158,145,178,200,165,193,145,178,200

Data 165,194,145,178,200,165,174,145,178,200,165,175,145,178,200,132

Data 159,160,0,132,158,164,158,196,183,240,12,177,187,164,159,145

Data 178,230,158,230,159,208,238,32,215,247,169,105,133,171,32,107

Data 248,168,104,133,174,104,133,175,104,133,193,104,133,194,152,96

Data 166,178,164,179,192,2,96,32,208,247,138,133,193,24,105,192

Data 133,174,152,133,194,105,0,133,175,96,32,44,247,176,29,160

Data 5,132,159,160,0,132,158,196,183,240,16,177,187,164,159,209

Data 178,208,231,230,158,230,159,164,158,208,236,24,96,32,208,247

Data 230,166,164,166,192,192,96,32,46,248,240,26,160,27,32,47

Data 241,32,208,248,32,46,248,208,248,160,106,76,47,241,169,16

Data 36,1,208,2,36,1,24,96,32,46,248,240,249,160,46,208

Data 221,169,0,133,144,133,147,32,215,247,32,23,248,176,31,120

Data 169,0,133,170,133,180,133,176,133,158,133,159,133,156,169,144

Data 162,14,208,17,32,215,247,169,20,133,171,32,56,248,176,108

Data 120,169,130,162,8,160,127,140,13,220,141,13,220,173,14,220

Data 9,25,141,15,220,41,145,141,162,2,32,164,240,173,17,208

Data 41,239,141,17,208,173,20,3,141,159,2,173,21,3,141,160

Data 2,32,189,252,169,2,133,190,32,151,251,165,1,41,31,133

Data 1,133,192,162,255,160,255,136,208,253,202,208,248,88,173,160

Data 2,205,21,3,24,240,21,32,208,248,32,188,246,76,190,248

Data 32,225,255,24,208,11,32,147,252,56,104,104,169,0,141,160

Data 2,96,134,177,165,176,10,10,24,101,176,24,101,177,133,177

Data 169,0,36,176,48,1,42,6,177,42,6,177,42,170,173,6

Data 220,201,22,144,249,101,177,141,4,220,138,109,7,220,141,5

Data 220,173,162,2,141,14,220,141,164,2,173,13,220,41,16,240

Data 9,169,249,72,169,42,72,76,67,255,88,96,174,7,220,160

Data 255,152,237,6,220,236,7,220,208,242,134,177,170,140,6,220

Data 140,7,220,169,25,141,15,220,173,13,220,141,163,2,152,229

Data 177,134,177,74,102,177,74,102,177,165,176,24,105,60,197,177

Data 176,74,166,156,240,3,76,96,250,166,163,48,27,162,0,105

Data 48,101,176,197,177,176,28,232,105,38,101,176,197,177,176,23

Data 105,44,101,176,197,177,144,3,76,16,250,165,180,240,29,133

Data 168,208,25,230,169,176,2,198,169,56,233,19,229,177,101,146

Data 133,146,165,164,73,1,133,164,240,43,134,215,165,180,240,34

Data 173,163,2,41,1,208,5,173,164,2,208,22,169,0,133,164

Data 141,164,2,165,163,16,48,48,191,162,166,32,226,248,165,155

Data 208,185,76,188,254,165,146,240,7,48,3,198,176,44,230,176

Data 169,0,133,146,228,215,208,15,138,208,160,165,169,48,189,201

Data 16,144,185,133,150,176,181,138,69,155,133,155,165,180,240,210

Data 198,163,48,197,70,215,102,191,162,218,32,226,248,76,188,254

Data 165,150,240,4,165,180,240,7,165,163,48,3,76,151,249,70

Data 177,169,147,56,229,177,101,176,10,170,32,226,248,230,156,165

Data 180,208,17,165,150,240,38,133,168,169,0,133,150,169,129,141

Data 13,220,133,180,165,150,133,181,240,9,169,0,133,180,169,1

Data 141,13,220,165,191,133,189,165,168,5,169,133,182,76,188,254

Data 32,151,251,133,156,162,218,32,226,248,165,190,240,2,133,167

Data 169,15,36,170,16,23,165,181,208,12,166,190,202,208,11,169

Data 8,32,28,254,208,4,169,0,133,170,76,188,254,112,49,208

Data 24,165,181,208,245,165,182,208,241,165,167,74,165,189,48,3

Data 144,24,24,176,21,41,15,133,170,198,170,208,221,169,64,133

Data 170,32,142,251,169,0,133,171,240,208,169,128,133,170,208,202

Data 165,181,240,10,169,4,32,28,254,169,0,76,74,251,32,209

Data 252,144,3,76,72,251,166,167,202,240,45,165,147,240,12,160

Data 0,165,189,209,172,240,4,169,1,133,182,165,182,240,75,162

Data 61,228,158,144,62,166,158,165,173,157,1,1,165,172,157,0

Data 1,232,232,134,158,76,58,251,166,159,228,158,240,53,165,172

Data 221,0,1,208,46,165,173,221,1,1,208,39,230,159,230,159

Data 165,147,240,11,165,189,160,0,209,172,240,23,200,132,182,165

Data 182,240,7,169,16,32,28,254,208,9,165,147,208,5,168,165

Data 189,145,172,32,219,252,208,67,169,128,133,170,120,162,1,142

Data 13,220,174,13,220,166,190,202,48,2,134,190,198,167,240,8

Data 165,158,208,39,133,190,240,35,32,147,252,32,142,251,160,0

Data 132,171,177,172,69,171,133,171,32,219,252,32,209,252,144,242

Data 165,171,69,189,240,5,169,32,32,28,254,76,188,254,165,194

Data 133,173,165,193,133,172,96,169,8,133,163,169,0,133,164,133

Data 168,133,155,133,169,96,165,189,74,169,96,144,2,169,176,162

Data 0,141,6,220,142,7,220,173,13,220,169,25,141,15,220,165

Data 1,73,8,133,1,41,8,96,56,102,182,48,60,165,168,208

Data 18,169,16,162,1,32,177,251,208,47,230,168,165,182,16,41

Data 76,87,252,165,169,208,9,32,173,251,208,29,230,169,208,25

Data 32,166,251,208,20,165,164,73,1,133,164,240,15,165,189,73

Data 1,133,189,41,1,69,155,133,155,76,188,254,70,189,198,163

Data 165,163,240,58,16,243,32,151,251,88,165,165,240,18,162,0

Data 134,215,198,165,166,190,224,2,208,2,9,128,133,189,208,217

Data 32,209,252,144,10,208,145,230,173,165,215,133,189,176,202,160

Data 0,177,172,133,189,69,215,133,215,32,219,252,208,187,165,155

Data 73,1,133,189,76,188,254,198,190,208,3,32,202,252,169,80

Data 133,167,162,8,120,32,189,252,208,234,169,120,32,175,251,208

Data 227,198,167,208,223,32,151,251,198,171,16,216,162,10,32,189

Data 252,88,230,171,165,190,240,48,32,142,251,162,9,134,165,134

Data 182,208,131,8,120,173,17,208,9,16,141,17,208,32,202,252

Data 169,127,141,13,220,32,221,253,173,160,2,240,9,141,21,3

Data 173,159,2,141,20,3,40,96,32,147,252,240,151,189,147,253

Data 141,20,3,189,148,253,141,21,3,96,165,1,9,32,133,1

Data 96,56,165,172,229,174,165,173,229,175,96,230,172,208,2,230

Data 173,96,162,255,120,154,216,32,2,253,208,3,108,0,128,142

Data 22,208,32,163,253,32,80,253,32,21,253,32,91,255,88,108

Data 0,160,162,5,189,15,253,221,3,128,208,3,202,208,245,96

Data 195,194,205,56,48,162,48,160,253,24,134,195,132,196,160,31

Data 185,20,3,176,2,177,195,145,195,153,20,3,136,16,241,96

Data 49,234,102,254,71,254,74,243,145,242,14,242,80,242,51,243

Data 87,241,202,241,237,246,62,241,47,243,102,254,165,244,237,245

Data 169,0,168,153,2,0,153,0,2,153,0,3,200,208,244,162

Data 60,160,3,134,178,132,179,168,169,3,133,194,230,194,177,193

Data 170,169,85,145,193,209,193,208,15,42,145,193,209,193,208,8

Data 138,145,193,200,208,232,240,228,152,170,164,194,24,32,45,254

Data 169,8,141,130,2,169,4,141,136,2,96,106,252,205,251,49

Data 234,44,249,169,127,141,13,220,141,13,221,141,0,220,169,8

Data 141,14,220,141,14,221,141,15,220,141,15,221,162,0,142,3

Data 220,142,3,221,142,24,212,202,142,2,220,169,7,141,0,221

Data 169,63,141,2,221,169,231,133,1,169,47,133,0,173,166,2

Data 240,10,169,37,141,4,220,169,64,76,243,253,169,149,141,4

Data 220,169,66,141,5,220,76,110,255,133,183,134,187,132,188,96

Data 133,184,134,186,132,185,96,165,186,201,2,208,13,173,151,2

Data 72,169,0,141,151,2,104,96,133,157,165,144,5,144,133,144

Data 96,141,133,2,96,144,6,174,131,2,172,132,2,142,131,2

Data 140,132,2,96,144,6,174,129,2,172,130,2,142,129,2,140

Data 130,2,96,120,108,24,3,72,138,72,152,72,169,127,141,13

Data 221,172,13,221,48,28,32,2,253,208,3,108,2,128,32,188

Data 246,32,225,255,208,12,32,21,253,32,163,253,32,24,229,108

Data 2,160,152,45,161,2,170,41,1,240,40,173,0,221,41,251

Data 5,181,141,0,221,173,161,2,141,13,221,138,41,18,240,13

Data 41,2,240,6,32,214,254,76,157,254,32,7,255,32,187,238

Data 76,182,254,138,41,2,240,6,32,214,254,76,182,254,138,41

Data 16,240,3,32,7,255,173,161,2,141,13,221,104,168,104,170

Data 104,64,193,39,62,26,197,17,116,14,237,12,69,6,240,2

Data 70,1,184,0,113,0,173,1,221,41,1,133,167,173,6,221

Data 233,28,109,153,2,141,6,221,173,7,221,109,154,2,141,7

Data 221,169,17,141,15,221,173,161,2,141,13,221,169,255,141,6

Data 221,141,7,221,76,89,239,173,149,2,141,6,221,173,150,2

Data 141,7,221,169,17,141,15,221,169,18,77,161,2,141,161,2

Data 169,255,141,6,221,141,7,221,174,152,2,134,168,96,170,173

Data 150,2,42,168,138,105,200,141,153,2,152,105,0,141,154,2

Data 96,234,234,8,104,41,239,72,72,138,72,152,72,186,189,4

Data 1,41,16,240,3,108,22,3,108,20,3,32,24,229,173,18

Data 208,208,251,173,25,208,41,1,141,166,2,76,221,253,169,129

Data 141,13,220,173,14,220,41,128,9,17,141,14,220,76,142,238

Data 0,76,91,255,76,163,253,76,80,253,76,21,253,76,26,253

Data 76,24,254,76,185,237,76,199,237,76,37,254,76,52,254,76

Data 135,234,76,33,254,76,19,238,76,221,237,76,239,237,76,254

Data 237, 76, 12,237, 76,  9,237, 76,  7,254, 76,  0,254, 76,249,253

Data 108, 26,  3,108, 28,  3,108, 30,  3,108, 32,  3,108, 34,  3,108

Data  36,  3,108, 38,  3, 76,158,244, 76,221,245, 76,228,246, 76,221

Data 246,108, 40,  3,108, 42,  3,108, 44,  3, 76,155,246, 76,  5,229

Data  76, 10,229, 76,  0,229, 82, 82, 66, 89, 67,254,226,252, 72,255


BASIC_ROM:
Data 148,227,123,227, 67, 66, 77, 66, 65, 83, 73, 67, 48,168, 65,167

Data  29,173,247,168,164,171,190,171,128,176,  5,172,164,169,159,168

Data 112,168, 39,169, 28,168,130,168,209,168, 58,169, 46,168, 74,169

Data  44,184,103,225, 85,225,100,225,178,179, 35,184,127,170,159,170

Data  86,168,155,166, 93,166,133,170, 41,225,189,225,198,225,122,171

Data  65,166, 57,188,204,188, 88,188, 16,  3,125,179,158,179,113,191

Data 151,224,234,185,237,191,100,226,107,226,180,226, 14,227, 13,184

Data 124,183,101,180,173,183,139,183,236,182,  0,183, 44,183, 55,183

Data 121,105,184,121, 82,184,123, 42,186,123, 17,187,127,122,191, 80

Data 232,175, 70,229,175,125,179,191, 90,211,174,100, 21,176, 69, 78

Data 196, 70, 79,210, 78, 69, 88,212, 68, 65, 84,193, 73, 78, 80, 85

Data  84,163, 73, 78, 80, 85,212, 68, 73,205, 82, 69, 65,196, 76, 69

Data 212, 71, 79, 84,207, 82, 85,206, 73,198, 82, 69, 83, 84, 79, 82

Data 197, 71, 79, 83, 85,194, 82, 69, 84, 85, 82,206, 82, 69,205, 83

Data  84, 79,208, 79,206, 87, 65, 73,212, 76, 79, 65,196, 83, 65, 86

Data 197, 86, 69, 82, 73, 70,217, 68, 69,198, 80, 79, 75,197, 80, 82

Data  73, 78, 84,163, 80, 82, 73, 78,212, 67, 79, 78,212, 76, 73, 83

Data 212, 67, 76,210, 67, 77,196, 83, 89,211, 79, 80, 69,206, 67, 76

Data  79, 83,197, 71, 69,212, 78, 69,215, 84, 65, 66,168, 84,207, 70

Data 206, 83, 80, 67,168, 84, 72, 69,206, 78, 79,212, 83, 84, 69,208

Data 171,173,170,175,222, 65, 78,196, 79,210,190,189,188, 83, 71,206

Data  73, 78,212, 65, 66,211, 85, 83,210, 70, 82,197, 80, 79,211, 83

Data  81,210, 82, 78,196, 76, 79,199, 69, 88,208, 67, 79,211, 83, 73

Data 206, 84, 65,206, 65, 84,206, 80, 69, 69,203, 76, 69,206, 83, 84

Data  82,164,86,65,204,65,83,195,67,72,82,164,76,69,70,84

Data 164,82,73,71,72,84,164,77,73,68,164,71,207,0,84,79

Data  79,32,77,65,78,89,32,70,73,76,69,211,70,73,76,69

Data  32,79,80,69,206,70,73,76,69,32,78,79,84,32,79,80

Data  69,206,70,73,76,69,32,78,79,84,32,70,79,85,78,196

Data  68,69,86,73,67,69,32,78,79,84,32,80,82,69,83,69

Data  78,212,78,79,84,32,73,78,80,85,84,32,70,73,76,197

Data  78,79,84,32,79,85,84,80,85,84,32,70,73,76,197,77

Data  73,83,83,73,78,71,32,70,73,76,69,32,78,65,77,197

Data  73,76,76,69,71,65,76,32,68,69,86,73,67,69,32,78

Data  85,77,66,69,210,78,69,88,84,32,87,73,84,72,79,85

Data  84,32,70,79,210,83,89,78,84,65,216,82,69,84,85,82

Data  78,32,87,73,84,72,79,85,84,32,71,79,83,85,194,79

Data  85,84,32,79,70,32,68,65,84,193,73,76,76,69,71,65

Data  76,32,81,85,65,78,84,73,84,217,79,86,69,82,70,76

Data  79,215,79,85,84,32,79,70,32,77,69,77,79,82,217,85

Data  78,68,69,70,39,68,32,83,84,65,84,69,77,69,78,212

Data  66,65,68,32,83,85,66,83,67,82,73,80,212,82,69,68

Data  73,77,39,68,32,65,82,82,65,217,68,73,86,73,83,73

Data  79,78,32,66,89,32,90,69,82,207,73,76,76,69,71,65

Data  76,32,68,73,82,69,67,212,84,89,80,69,32,77,73,83

Data  77,65,84,67,200,83,84,82,73,78,71,32,84,79,79,32

Data  76,79,78,199,70,73,76,69,32,68,65,84,193,70,79,82

Data  77,85,76,65,32,84,79,79,32,67,79,77,80,76,69,216

Data  67,65,78,39,84,32,67,79,78,84,73,78,85,197,85,78

Data  68,69,70,39,68,32,70,85,78,67,84,73,79,206,86,69

Data  82,73,70,217,76,79,65,196,158,161,172,161,181,161,194,161

Data 208,161,226,161,240,161,255,161,16,162,37,162,53,162,59,162

Data 79,162,90,162,106,162,114,162,127,162,144,162,157,162,170,162

Data 186,162,200,162,213,162,228,162,237,162,0,163,14,163,30,163

Data 36,163,131,163,13,79,75,13,0,32,32,69,82,82,79,82

Data 0,32,73,78,32,0,13,10,82,69,65,68,89,46,13,10

Data 0,13,10,66,82,69,65,75,0,160,186,232,232,232,232,189

Data 1,1,201,129,208,33,165,74,208,10,189,2,1,133,73,189

Data 3,1,133,74,221,3,1,208,7,165,73,221,2,1,240,7

Data 138,24,105,18,170,208,216,96,32,8,164,133,49,132,50,56

Data 165,90,229,95,133,34,168,165,91,229,96,170,232,152,240,35

Data 165,90,56,229,34,133,90,176,3,198,91,56,165,88,229,34

Data 133,88,176,8,198,89,144,4,177,90,145,88,136,208,249,177

Data 90,145,88,198,91,198,89,202,208,242,96,10,105,62,176,53

Data 133,34,186,228,34,144,46,96,196,52,144,40,208,4,197,51

Data 144,34,72,162,9,152,72,181,87,202,16,250,32,38,181,162

Data 247,104,149,97,232,48,250,104,168,104,196,52,144,6,208,5

Data 197,51,176,1,96,162,16,108,0,3,138,10,170,189,38,163

Data 133,34,189,39,163,133,35,32,204,255,169,0,133,19,32,215

Data 170,32,69,171,160,0,177,34,72,41,127,32,71,171,200,104

Data 16,244,32,122,166,169,105,160,163,32,30,171,164,58,200,240

Data 3,32,194,189,169,118,160,163,32,30,171,169,128,32,144,255

Data 108,2,3,32,96,165,134,122,132,123,32,115,0,170,240,240

Data 162,255,134,58,144,6,32,121,165,76,225,167,32,107,169,32

Data 121,165,132,11,32,19,166,144,68,160,1,177,95,133,35,165

Data 45,133,34,165,96,133,37,165,95,136,241,95,24,101,45,133

Data 45,133,36,165,46,105,255,133,46,229,96,170,56,165,95,229

Data 45,168,176,3,232,198,37,24,101,34,144,3,198,35,24,177

Data 34,145,36,200,208,249,230,35,230,37,202,208,242,32,89,166

Data 32,51,165,173,0,2,240,136,24,165,45,133,90,101,11,133

Data 88,164,46,132,91,144,1,200,132,89,32,184,163,165,20,164

Data 21,141,254,1,140,255,1,165,49,164,50,133,45,132,46,164

Data 11,136,185,252,1,145,95,136,16,248,32,89,166,32,51,165

Data 76,128,164,165,43,164,44,133,34,132,35,24,160,1,177,34

Data 240,29,160,4,200,177,34,208,251,200,152,101,34,170,160,0

Data 145,34,165,35,105,0,200,145,34,134,34,133,35,144,221,96

Data 162,0,32,18,225,201,13,240,13,157,0,2,232,224,89,144

Data 241,162,23,76,55,164,76,202,170,108,4,3,166,122,160,4

Data 132,15,189,0,2,16,7,201,255,240,62,232,208,244,201,32

Data 240,55,133,8,201,34,240,86,36,15,112,45,201,63,208,4

Data 169,153,208,37,201,48,144,4,201,60,144,29,132,113,160,0

Data 132,11,136,134,122,202,200,232,189,0,2,56,249,158,160,240

Data 245,201,128,208,48,5,11,164,113,232,200,153,251,1,185,251

Data 1,240,54,56,233,58,240,4,201,73,208,2,133,15,56,233

Data 85,208,159,133,8,189,0,2,240,223,197,8,240,219,200,153

Data 251,1,232,208,240,166,122,230,11,200,185,157,160,16,250,185

Data 158,160,208,180,189,0,2,16,190,153,253,1,198,123,169,255

Data 133,122,96,165,43,166,44,160,1,133,95,134,96,177,95,240

Data 31,200,200,165,21,209,95,144,24,240,3,136,208,9,165,20

Data 136,209,95,144,12,240,10,136,177,95,170,136,177,95,176,215

Data 24,96,208,253,169,0,168,145,43,200,145,43,165,43,24,105

Data 2,133,45,165,44,105,0,133,46,32,142,166,169,0,208,45

Data 32,231,255,165,55,164,56,133,51,132,52,165,45,164,46,133

Data 47,132,48,133,49,132,50,32,29,168,162,25,134,22,104,168

Data 104,162,250,154,72,152,72,169,0,133,62,133,16,96,24,165

Data 43,105,255,133,122,165,44,105,255,133,123,96,144,6,240,4

Data 201,171,208,233,32,107,169,32,19,166,32,121,0,240,12,201

Data 171,208,142,32,115,0,32,107,169,208,134,104,104,165,20,5

Data 21,208,6,169,255,133,20,133,21,160,1,132,15,177,95,240

Data 67,32,44,168,32,215,170,200,177,95,170,200,177,95,197,21

Data 208,4,228,20,240,2,176,44,132,73,32,205,189,169,32,164

Data 73,41,127,32,71,171,201,34,208,6,165,15,73,255,133,15

Data 200,240,17,177,95,208,16,168,177,95,170,200,177,95,134,95

Data 133,96,208,181,76,134,227,108,6,3,16,215,201,255,240,211

Data 36,15,48,207,56,233,127,170,132,73,160,255,202,240,8,200

Data 185,158,160,16,250,48,245,200,185,158,160,48,178,32,71,171

Data 208,245,169,128,133,16,32,165,169,32,138,163,208,5,138,105

Data 15,170,154,104,104,169,9,32,251,163,32,6,169,24,152,101

Data 122,72,165,123,105,0,72,165,58,72,165,57,72,169,164,32

Data 255,174,32,141,173,32,138,173,165,102,9,127,37,98,133,98

Data 169,139,160,167,133,34,132,35,76,67,174,169,188,160,185,32

Data 162,187,32,121,0,201,169,208,6,32,115,0,32,138,173,32

Data 43,188,32,56,174,165,74,72,165,73,72,169,129,72,32,44

Data 168,165,122,164,123,192,2,234,240,4,133,61,132,62,160,0

Data 177,122,208,67,160,2,177,122,24,208,3,76,75,168,200,177

Data 122,133,57,200,177,122,133,58,152,101,122,133,122,144,2,230

Data 123,108,8,3,32,115,0,32,237,167,76,174,167,240,60,233

Data 128,144,17,201,35,176,23,10,168,185,13,160,72,185,12,160

Data 72,76,115,0,76,165,169,201,58,240,214,76,8,175,201,75

Data 208,249,32,115,0,169,164,32,255,174,76,160,168,56,165,43

Data 233,1,164,44,176,1,136,133,65,132,66,96,32,225,255,176

Data 1,24,208,60,165,122,164,123,166,58,232,240,12,133,61,132

Data 62,165,57,164,58,133,59,132,60,104,104,169,129,160,163,144

Data 3,76,105,164,76,134,227,208,23,162,26,164,62,208,3,76

Data 55,164,165,61,133,122,132,123,165,59,164,60,133,57,132,58

Data 96,8,169,0,32,144,255,40,208,3,76,89,166,32,96,166

Data 76,151,168,169,3,32,251,163,165,123,72,165,122,72,165,58

Data 72,165,57,72,169,141,72,32,121,0,32,160,168,76,174,167

Data 32,107,169,32,9,169,56,165,57,229,20,165,58,229,21,176

Data 11,152,56,101,122,166,123,144,7,232,176,4,165,43,166,44

Data 32,23,166,144,30,165,95,233,1,133,122,165,96,233,0,133

Data 123,96,208,253,169,255,133,74,32,138,163,154,201,141,240,11

Data 162,12,44,162,17,76,55,164,76,8,175,104,104,133,57,104

Data 133,58,104,133,122,104,133,123,32,6,169,152,24,101,122,133

Data 122,144,2,230,123,96,162,58,44,162,0,134,7,160,0,132

Data 8,165,8,166,7,133,7,134,8,177,122,240,232,197,8,240

Data 228,200,201,34,208,243,240,233,32,158,173,32,121,0,201,137

Data 240,5,169,167,32,255,174,165,97,208,5,32,9,169,240,187

Data 32,121,0,176,3,76,160,168,76,237,167,32,158,183,72,201

Data 141,240,4,201,137,208,145,198,101,208,4,104,76,239,167,32

Data 115,0,32,107,169,201,44,240,238,104,96,162,0,134,20,134

Data 21,176,247,233,47,133,7,165,21,133,34,201,25,176,212,165

Data 20,10,38,34,10,38,34,101,20,133,20,165,34,101,21,133

Data 21,6,20,38,21,165,20,101,7,133,20,144,2,230,21,32

Data 115,0,76,113,169,32,139,176,133,73,132,74,169,178,32,255

Data 174,165,14,72,165,13,72,32,158,173,104,42,32,144,173,208

Data 24,104,16,18,32,27,188,32,191,177,160,0,165,100,145,73

Data 200,165,101,145,73,96,76,208,187,104,164,74,192,191,208,76

Data 32,166,182,201,6,208,61,160,0,132,97,132,102,132,113,32

Data 29,170,32,226,186,230,113,164,113,32,29,170,32,12,188,170

Data 240,5,232,138,32,237,186,164,113,200,192,6,208,223,32,226

Data 186,32,155,188,166,100,164,99,165,101,76,219,255,177,34,32

Data 128,0,144,3,76,72,178,233,47,76,126,189,160,2,177,100

Data 197,52,144,23,208,7,136,177,100,197,51,144,14,164,101,196

Data 46,144,8,208,13,165,100,197,45,176,7,165,100,164,101,76

Data 104,170,160,0,177,100,32,117,180,165,80,164,81,133,111,132

Data 112,32,122,182,169,97,160,0,133,80,132,81,32,219,182,160

Data 0,177,80,145,73,200,177,80,145,73,200,177,80,145,73,96

Data 32,134,170,76,181,171,32,158,183,240,5,169,44,32,255,174

Data 8,134,19,32,24,225,40,76,160,170,32,33,171,32,121,0

Data 240,53,240,67,201,163,240,80,201,166,24,240,75,201,44,240

Data 55,201,59,240,94,32,158,173,36,13,48,222,32,221,189,32

Data 135,180,32,33,171,32,59,171,208,211,169,0,157,0,2,162

Data 255,160,1,165,19,208,16,169,13,32,71,171,36,19,16,5

Data 169,10,32,71,171,73,255,96,56,32,240,255,152,56,233,10

Data 176,252,73,255,105,1,208,22,8,56,32,240,255,132,9,32

Data 155,183,201,41,208,89,40,144,6,138,229,9,144,5,170,232

Data 202,208,6,32,115,0,76,162,170,32,59,171,208,242,32,135

Data 180,32,166,182,170,160,0,232,202,240,188,177,34,32,71,171

Data 200,201,13,208,243,32,229,170,76,40,171,165,19,240,3,169

Data 32,44,169,29,44,169,63,32,12,225,41,255,96,165,17,240

Data 17,48,4,160,255,208,4,165,63,164,64,133,57,132,58,76

Data 8,175,165,19,240,5,162,24,76,55,164,169,12,160,173,32

Data 30,171,165,61,164,62,133,122,132,123,96,32,166,179,201,35

Data 208,16,32,115,0,32,158,183,169,44,32,255,174,134,19,32

Data 30,225,162,1,160,2,169,0,141,1,2,169,64,32,15,172

Data 166,19,208,19,96,32,158,183,169,44,32,255,174,134,19,32

Data 30,225,32,206,171,165,19,32,204,255,162,0,134,19,96,201

Data 34,208,11,32,189,174,169,59,32,255,174,32,33,171,32,166

Data 179,169,44,141,255,1,32,249,171,165,19,240,13,32,183,255

Data 41,2,240,6,32,181,171,76,248,168,173,0,2,208,30,165

Data 19,208,227,32,6,169,76,251,168,165,19,208,6,32,69,171

Data 32,59,171,76,96,165,166,65,164,66,169,152,44,169,0,133

Data 17,134,67,132,68,32,139,176,133,73,132,74,165,122,164,123

Data 133,75,132,76,166,67,164,68,134,122,132,123,32,121,0,208

Data 32,36,17,80,12,32,36,225,141,0,2,162,255,160,1,208

Data 12,48,117,165,19,208,3,32,69,171,32,249,171,134,122,132

Data 123,32,115,0,36,13,16,49,36,17,80,9,232,134,122,169

Data 0,133,7,240,12,133,7,201,34,240,7,169,58,133,7,169

Data 44,24,133,8,165,122,164,123,105,0,144,1,200,32,141,180

Data 32,226,183,32,218,169,76,145,172,32,243,188,165,14,32,194

Data 169,32,121,0,240,7,201,44,240,3,76,77,171,165,122,164

Data 123,133,67,132,68,165,75,164,76,133,122,132,123,32,121,0

Data 240,45,32,253,174,76,21,172,32,6,169,200,170,208,18,162

Data 13,200,177,122,240,108,200,177,122,133,63,200,177,122,200,133

Data 64,32,251,168,32,121,0,170,224,131,208,220,76,81,172,165

Data 67,164,68,166,17,16,3,76,39,168,160,0,177,67,240,11

Data 165,19,208,7,169,252,160,172,76,30,171,96,63,69,88,84

Data 82,65,32,73,71,78,79,82,69,68,13,0,63,82,69,68

Data 79,32,70,82,79,77,32,83,84,65,82,84,13,0,208,4

Data 160,0,240,3,32,139,176,133,73,132,74,32,138,163,240,5

Data 162,10,76,55,164,154,138,24,105,4,72,105,6,133,36,104

Data 160,1,32,162,187,186,189,9,1,133,102,165,73,164,74,32

Data 103,184,32,208,187,160,1,32,93,188,186,56,253,9,1,240

Data 23,189,15,1,133,57,189,16,1,133,58,189,18,1,133,122

Data 189,17,1,133,123,76,174,167,138,105,17,170,154,32,121,0

Data 201,44,208,241,32,115,0,32,36,173,32,158,173,24,36,56

Data 36,13,48,3,176,3,96,176,253,162,22,76,55,164,166,122

Data 208,2,198,123,198,122,162,0,36,72,138,72,169,1,32,251

Data 163,32,131,174,169,0,133,77,32,121,0,56,233,177,144,23

Data 201,3,176,19,201,1,42,73,1,69,77,197,77,144,97,133

Data 77,32,115,0,76,187,173,166,77,208,44,176,123,105,7,144

Data 119,101,13,208,3,76,61,182,105,255,133,34,10,101,34,168

Data 104,217,128,160,176,103,32,141,173,72,32,32,174,104,164,75

Data 16,23,170,240,86,208,95,70,13,138,42,166,122,208,2,198

Data 123,198,122,160,27,133,77,208,215,217,128,160,176,72,144,217

Data 185,130,160,72,185,129,160,72,32,51,174,165,77,76,169,173

Data 76,8,175,165,102,190,128,160,168,104,133,34,230,34,104,133

Data 35,152,72,32,27,188,165,101,72,165,100,72,165,99,72,165

Data 98,72,165,97,72,108,34,0,160,255,104,240,35,201,100,240

Data 3,32,141,173,132,75,104,74,133,18,104,133,105,104,133,106

Data 104,133,107,104,133,108,104,133,109,104,133,110,69,102,133,111

Data 165,97,96,108,10,3,169,0,133,13,32,115,0,176,3,76

Data 243,188,32,19,177,144,3,76,40,175,201,255,208,15,169,168

Data 160,174,32,162,187,76,115,0,130,73,15,218,161,201,46,240

Data 222,201,171,240,88,201,170,240,209,201,34,208,15,165,122,164

Data 123,105,0,144,1,200,32,135,180,76,226,183,201,168,208,19

Data 160,24,208,59,32,191,177,165,101,73,255,168,165,100,73,255

Data 76,145,179,201,165,208,3,76,244,179,201,180,144,3,76,167

Data 175,32,250,174,32,158,173,169,41,44,169,40,44,169,44,160

Data 0,209,122,208,3,76,115,0,162,11,76,55,164,160,21,104

Data 104,76,250,173,56,165,100,233,0,165,101,233,160,144,8,169

Data 162,229,100,169,227,229,101,96,32,139,176,133,100,132,101,166

Data 69,164,70,165,13,240,38,169,0,133,112,32,20,175,144,28

Data 224,84,208,24,192,201,208,20,32,132,175,132,94,136,132,113

Data 160,6,132,93,160,36,32,104,190,76,111,180,96,36,14,16

Data 13,160,0,177,100,170,200,177,100,168,138,76,145,179,32,20

Data 175,144,45,224,84,208,27,192,73,208,37,32,132,175,152,162

Data 160,76,79,188,32,222,255,134,100,132,99,133,101,160,0,132

Data 98,96,224,83,208,10,192,84,208,6,32,183,255,76,60,188

Data 165,100,164,101,76,162,187,10,72,170,32,115,0,224,143,144

Data 32,32,250,174,32,158,173,32,253,174,32,143,173,104,170,165

Data 101,72,165,100,72,138,72,32,158,183,104,168,138,72,76,214

Data 175,32,241,174,104,168,185,234,159,133,85,185,235,159,133,86

Data 32,84,0,76,141,173,160,255,44,160,0,132,11,32,191,177

Data 165,100,69,11,133,7,165,101,69,11,133,8,32,252,187,32

Data 191,177,165,101,69,11,37,8,69,11,168,165,100,69,11,37

Data 7,69,11,76,145,179,32,144,173,176,19,165,110,9,127,37

Data 106,133,106,169,105,160,0,32,91,188,170,76,97,176,169,0

Data 133,13,198,77,32,166,182,133,97,134,98,132,99,165,108,164

Data 109,32,170,182,134,108,132,109,170,56,229,97,240,8,169,1

Data 144,4,166,97,169,255,133,102,160,255,232,200,202,208,7,166

Data 102,48,15,24,144,12,177,108,209,98,240,239,162,255,176,2

Data 162,1,232,138,42,37,18,240,2,169,255,76,60,188,32,253

Data 174,170,32,144,176,32,121,0,208,244,96,162,0,32,121,0

Data 134,12,133,69,32,121,0,32,19,177,176,3,76,8,175,162

Data 0,134,13,134,14,32,115,0,144,5,32,19,177,144,11,170

Data 32,115,0,144,251,32,19,177,176,246,201,36,208,6,169,255

Data 133,13,208,16,201,37,208,19,165,16,208,208,169,128,133,14

Data 5,69,133,69,138,9,128,170,32,115,0,134,70,56,5,16

Data 233,40,208,3,76,209,177,160,0,132,16,165,45,166,46,134

Data 96,133,95,228,48,208,4,197,47,240,34,165,69,209,95,208

Data 8,165,70,200,209,95,240,125,136,24,165,95,105,7,144,225

Data 232,208,220,201,65,144,5,233,91,56,233,165,96,104,72,201

Data 42,208,5,169,19,160,191,96,165,69,164,70,201,84,208,11

Data 192,201,240,239,192,73,208,3,76,8,175,201,83,208,4,192

Data 84,240,245,165,47,164,48,133,95,132,96,165,49,164,50,133

Data 90,132,91,24,105,7,144,1,200,133,88,132,89,32,184,163

Data 165,88,164,89,200,133,47,132,48,160,0,165,69,145,95,200

Data 165,70,145,95,169,0,200,145,95,200,145,95,200,145,95,200

Data 145,95,200,145,95,165,95,24,105,2,164,96,144,1,200,133

Data 71,132,72,96,165,11,10,105,5,101,95,164,96,144,1,200

Data 133,88,132,89,96,144,128,0,0,0,32,191,177,165,100,164

Data 101,96,32,115,0,32,158,173,32,141,173,165,102,48,13,165

Data 97,201,144,144,9,169,165,160,177,32,91,188,208,122,76,155

Data 188,165,12,5,14,72,165,13,72,160,0,152,72,165,70,72

Data 165,69,72,32,178,177,104,133,69,104,133,70,104,168,186,189

Data 2,1,72,189,1,1,72,165,100,157,2,1,165,101,157,1

Data 1,200,32,121,0,201,44,240,210,132,11,32,247,174,104,133

Data 13,104,133,14,41,127,133,12,166,47,165,48,134,95,133,96

Data 197,50,208,4,228,49,240,57,160,0,177,95,200,197,69,208

Data 6,165,70,209,95,240,22,200,177,95,24,101,95,170,200,177

Data 95,101,96,144,215,162,18,44,162,14,76,55,164,162,19,165

Data 12,208,247,32,148,177,165,11,160,4,209,95,208,231,76,234

Data 178,32,148,177,32,8,164,160,0,132,114,162,5,165,69,145

Data 95,16,1,202,200,165,70,145,95,16,2,202,202,134,113,165

Data 11,200,200,200,145,95,162,11,169,0,36,12,80,8,104,24

Data 105,1,170,104,105,0,200,145,95,200,138,145,95,32,76,179

Data 134,113,133,114,164,34,198,11,208,220,101,89,176,93,133,89

Data 168,138,101,88,144,3,200,240,82,32,8,164,133,49,132,50

Data 169,0,230,114,164,113,240,5,136,145,88,208,251,198,89,198

Data 114,208,245,230,89,56,165,49,229,95,160,2,145,95,165,50

Data 200,229,96,145,95,165,12,208,98,200,177,95,133,11,169,0

Data 133,113,133,114,200,104,170,133,100,104,133,101,209,95,144,14

Data 208,6,200,138,209,95,144,7,76,69,178,76,53,164,200,165

Data 114,5,113,24,240,10,32,76,179,138,101,100,170,152,164,34

Data 101,101,134,113,198,11,208,202,133,114,162,5,165,69,16,1

Data 202,165,70,16,2,202,202,134,40,169,0,32,85,179,138,101

Data 88,133,71,152,101,89,133,72,168,165,71,96,132,34,177,95

Data 133,40,136,177,95,133,41,169,16,133,93,162,0,160,0,138

Data 10,170,152,42,168,176,164,6,113,38,114,144,11,24,138,101

Data 40,170,152,101,41,168,176,147,198,93,208,227,96,165,13,240

Data 3,32,166,182,32,38,181,56,165,51,229,49,168,165,52,229

Data 50,162,0,134,13,133,98,132,99,162,144,76,68,188,56,32

Data 240,255,169,0,240,235,166,58,232,208,160,162,21,44,162,27

Data 76,55,164,32,225,179,32,166,179,32,250,174,169,128,133,16

Data 32,139,176,32,141,173,32,247,174,169,178,32,255,174,72,165

Data 72,72,165,71,72,165,123,72,165,122,72,32,248,168,76,79

Data 180,169,165,32,255,174,9,128,133,16,32,146,176,133,78,132

Data 79,76,141,173,32,225,179,165,79,72,165,78,72,32,241,174

Data 32,141,173,104,133,78,104,133,79,160,2,177,78,133,71,170

Data 200,177,78,240,153,133,72,200,177,71,72,136,16,250,164,72

Data 32,212,187,165,123,72,165,122,72,177,78,133,122,200,177,78

Data 133,123,165,72,72,165,71,72,32,138,173,104,133,78,104,133

Data 79,32,121,0,240,3,76,8,175,104,133,122,104,133,123,160

Data 0,104,145,78,104,200,145,78,104,200,145,78,104,200,145,78

Data 104,200,145,78,96,32,141,173,160,0,32,223,189,104,104,169

Data 255,160,0,240,18,166,100,164,101,134,80,132,81,32,244,180

Data 134,98,132,99,133,97,96,162,34,134,7,134,8,133,111,132

Data 112,133,98,132,99,160,255,200,177,111,240,12,197,7,240,4

Data 197,8,208,243,201,34,240,1,24,132,97,152,101,111,133,113

Data 166,112,144,1,232,134,114,165,112,240,4,201,2,208,11,152

Data 32,117,180,166,111,164,112,32,136,182,166,22,224,34,208,5

Data 162,25,76,55,164,165,97,149,0,165,98,149,1,165,99,149

Data 2,160,0,134,100,132,101,132,112,136,132,13,134,23,232,232

Data 232,134,22,96,70,15,72,73,255,56,101,51,164,52,176,1

Data 136,196,50,144,17,208,4,197,49,144,11,133,51,132,52,133

Data 53,132,54,170,104,96,162,16,165,15,48,182,32,38,181,169

Data 128,133,15,104,208,208,166,55,165,56,134,51,133,52,160,0

Data 132,79,132,78,165,49,166,50,133,95,134,96,169,25,162,0

Data 133,34,134,35,197,22,240,5,32,199,181,240,247,169,7,133

Data 83,165,45,166,46,133,34,134,35,228,48,208,4,197,47,240

Data 5,32,189,181,240,243,133,88,134,89,169,3,133,83,165,88

Data 166,89,228,50,208,7,197,49,208,3,76,6,182,133,34,134

Data 35,160,0,177,34,170,200,177,34,8,200,177,34,101,88,133

Data 88,200,177,34,101,89,133,89,40,16,211,138,48,208,200,177

Data 34,160,0,10,105,5,101,34,133,34,144,2,230,35,166,35

Data 228,89,208,4,197,88,240,186,32,199,181,240,243,177,34,48

Data 53,200,177,34,16,48,200,177,34,240,43,200,177,34,170,200

Data 177,34,197,52,144,6,208,30,228,51,176,26,197,96,144,22

Data 208,4,228,95,144,16,134,95,133,96,165,34,166,35,133,78

Data 134,79,165,83,133,85,165,83,24,101,34,133,34,144,2,230

Data 35,166,35,160,0,96,165,79,5,78,240,245,165,85,41,4

Data 74,168,133,85,177,78,101,95,133,90,165,96,105,0,133,91

Data 165,51,166,52,133,88,134,89,32,191,163,164,85,200,165,88

Data 145,78,170,230,89,165,89,200,145,78,76,42,181,165,101,72

Data 165,100,72,32,131,174,32,143,173,104,133,111,104,133,112,160

Data 0,177,111,24,113,100,144,5,162,23,76,55,164,32,117,180

Data 32,122,182,165,80,164,81,32,170,182,32,140,182,165,111,164

Data 112,32,170,182,32,202,180,76,184,173,160,0,177,111,72,200

Data 177,111,170,200,177,111,168,104,134,34,132,35,168,240,10,72

Data 136,177,34,145,53,152,208,248,104,24,101,53,133,53,144,2

Data 230,54,96,32,143,173,165,100,164,101,133,34,132,35,32,219

Data 182,8,160,0,177,34,72,200,177,34,170,200,177,34,168,104

Data 40,208,19,196,52,208,15,228,51,208,11,72,24,101,51,133

Data 51,144,2,230,52,104,134,34,132,35,96,196,24,208,12,197

Data 23,208,8,133,22,233,3,133,23,160,0,96,32,161,183,138

Data 72,169,1,32,125,180,104,160,0,145,98,104,104,76,202,180

Data 32,97,183,209,80,152,144,4,177,80,170,152,72,138,72,32

Data 125,180,165,80,164,81,32,170,182,104,168,104,24,101,34,133

Data 34,144,2,230,35,152,32,140,182,76,202,180,32,97,183,24

Data 241,80,73,255,76,6,183,169,255,133,101,32,121,0,201,41

Data 240,6,32,253,174,32,158,183,32,97,183,240,75,202,138,72

Data 24,162,0,241,80,176,182,73,255,197,101,144,177,165,101,176

Data 173,32,247,174,104,168,104,133,85,104,104,104,170,104,133,80

Data 104,133,81,165,85,72,152,72,160,0,138,96,32,130,183,76

Data 162,179,32,163,182,162,0,134,13,168,96,32,130,183,240,8

Data 160,0,177,34,168,76,162,179,76,72,178,32,115,0,32,138

Data 173,32,184,177,166,100,208,240,166,101,76,121,0,32,130,183

Data 208,3,76,247,184,166,122,164,123,134,113,132,114,166,34,134

Data 122,24,101,34,133,36,166,35,134,123,144,1,232,134,37,160

Data 0,177,36,72,152,145,36,32,121,0,32,243,188,104,160,0

Data 145,36,166,113,164,114,134,122,132,123,96,32,138,173,32,247

Data 183,32,253,174,76,158,183,165,102,48,157,165,97,201,145,176

Data 151,32,155,188,165,100,164,101,132,20,133,21,96,165,21,72

Data 165,20,72,32,247,183,160,0,177,20,168,104,133,20,104,133

Data 21,76,162,179,32,235,183,138,160,0,145,20,96,32,235,183

Data 134,73,162,0,32,121,0,240,3,32,241,183,134,74,160,0

Data 177,20,69,74,37,73,240,248,96,169,17,160,191,76,103,184

Data 32,140,186,165,102,73,255,133,102,69,110,133,111,165,97,76

Data 106,184,32,153,185,144,60,32,140,186,208,3,76,252,187,166

Data 112,134,86,162,105,165,105,168,240,206,56,229,97,240,36,144

Data 18,132,97,164,110,132,102,73,255,105,0,160,0,132,86,162

Data 97,208,4,160,0,132,112,201,249,48,199,168,165,112,86,1

Data 32,176,185,36,111,16,87,160,97,224,105,240,2,160,105,56

Data 73,255,101,86,133,112,185,4,0,245,4,133,101,185,3,0

Data 245,3,133,100,185,2,0,245,2,133,99,185,1,0,245,1

Data 133,98,176,3,32,71,185,160,0,152,24,166,98,208,74,166

Data 99,134,98,166,100,134,99,166,101,134,100,166,112,134,101,132

Data 112,105,8,201,32,208,228,169,0,133,97,133,102,96,101,86

Data 133,112,165,101,101,109,133,101,165,100,101,108,133,100,165,99

Data 101,107,133,99,165,98,101,106,133,98,76,54,185,105,1,6

Data 112,38,101,38,100,38,99,38,98,16,242,56,229,97,176,199

Data 73,255,105,1,133,97,144,14,230,97,240,66,102,98,102,99

Data 102,100,102,101,102,112,96,165,102,73,255,133,102,165,98,73

Data 255,133,98,165,99,73,255,133,99,165,100,73,255,133,100,165

Data 101,73,255,133,101,165,112,73,255,133,112,230,112,208,14,230

Data 101,208,10,230,100,208,6,230,99,208,2,230,98,96,162,15

Data 76,55,164,162,37,180,4,132,112,180,3,148,4,180,2,148

Data 3,180,1,148,2,164,104,148,1,105,8,48,232,240,230,233

Data 8,168,165,112,176,20,22,1,144,2,246,1,118,1,118,1

Data 118,2,118,3,118,4,106,200,208,236,24,96,129,0,0,0

Data 0,3,127,94,86,203,121,128,19,155,11,100,128,118,56,147

Data 22,130,56,170,59,32,128,53,4,243,52,129,53,4,243,52

Data 128,128,0,0,0,128,49,114,23,248,32,43,188,240,2,16

Data 3,76,72,178,165,97,233,127,72,169,128,133,97,169,214,160

Data 185,32,103,184,169,219,160,185,32,15,187,169,188,160,185,32

Data 80,184,169,193,160,185,32,67,224,169,224,160,185,32,103,184

Data 104,32,126,189,169,229,160,185,32,140,186,208,3,76,139,186

Data 32,183,186,169,0,133,38,133,39,133,40,133,41,165,112,32

Data 89,186,165,101,32,89,186,165,100,32,89,186,165,99,32,89

Data 186,165,98,32,94,186,76,143,187,208,3,76,131,185,74,9

Data 128,168,144,25,24,165,41,101,109,133,41,165,40,101,108,133

Data 40,165,39,101,107,133,39,165,38,101,106,133,38,102,38,102

Data 39,102,40,102,41,102,112,152,74,208,214,96,133,34,132,35

Data 160,4,177,34,133,109,136,177,34,133,108,136,177,34,133,107

Data 136,177,34,133,110,69,102,133,111,165,110,9,128,133,106,136

Data 177,34,133,105,165,97,96,165,105,240,31,24,101,97,144,4

Data 48,29,24,44,16,20,105,128,133,97,208,3,76,251,184,165

Data 111,133,102,96,165,102,73,255,48,5,104,104,76,247,184,76

Data 126,185,32,12,188,170,240,16,24,105,2,176,242,162,0,134

Data 111,32,119,184,230,97,240,231,96,132,32,0,0,0,32,12

Data 188,169,249,160,186,162,0,134,111,32,162,187,76,18,187,32

Data 140,186,240,118,32,27,188,169,0,56,229,97,133,97,32,183

Data 186,230,97,240,186,162,252,169,1,164,106,196,98,208,16,164

Data 107,196,99,208,10,164,108,196,100,208,4,164,109,196,101,8

Data 42,144,9,232,149,41,240,50,16,52,169,1,40,176,14,6

Data 109,38,108,38,107,38,106,176,230,48,206,16,226,168,165,109

Data 229,101,133,109,165,108,229,100,133,108,165,107,229,99,133,107

Data 165,106,229,98,133,106,152,76,79,187,169,64,208,206,10,10

Data 10,10,10,10,133,112,40,76,143,187,162,20,76,55,164,165

Data 38,133,98,165,39,133,99,165,40,133,100,165,41,133,101,76

Data 215,184,133,34,132,35,160,4,177,34,133,101,136,177,34,133

Data 100,136,177,34,133,99,136,177,34,133,102,9,128,133,98,136

Data 177,34,133,97,132,112,96,162,92,44,162,87,160,0,240,4

Data 166,73,164,74,32,27,188,134,34,132,35,160,4,165,101,145

Data 34,136,165,100,145,34,136,165,99,145,34,136,165,102,9,127

Data 37,98,145,34,136,165,97,145,34,132,112,96,165,110,133,102

Data 162,5,181,104,149,96,202,208,249,134,112,96,32,27,188,162

Data 6,181,96,149,104,202,208,249,134,112,96,165,97,240,251,6

Data 112,144,247,32,111,185,208,242,76,56,185,165,97,240,9,165

Data 102,42,169,255,176,2,169,1,96,32,43,188,133,98,169,0

Data 133,99,162,136,165,98,73,255,42,169,0,133,101,133,100,134

Data 97,133,112,133,102,76,210,184,70,102,96,133,36,132,37,160

Data 0,177,36,200,170,240,196,177,36,69,102,48,194,228,97,208

Data 33,177,36,9,128,197,98,208,25,200,177,36,197,99,208,18

Data 200,177,36,197,100,208,11,200,169,127,197,112,177,36,229,101

Data 240, 40,165,102,144,  2, 73,255, 76, 49,188,165, 97,240, 74, 56

Data 233,160, 36,102, 16,  9,170,169,255,133,104, 32, 77,185,138,162

Data  97,201,249, 16,  6, 32,153,185,132,104, 96,168,165,102, 41,128

Data  70, 98,  5, 98,133, 98, 32,176,185,132,104, 96,165, 97,201,160

Data 176, 32, 32,155,188,132,112,165,102,132,102, 73,128, 42,169,160

Data 133, 97,165,101,133,  7, 76,210,184,133, 98,133, 99,133,100,133

Data 101,168, 96,160,  0,162, 10,148, 93,202, 16,251,144, 15,201, 45

Data 208,  4,134,103,240,  4,201, 43,208,  5, 32,115,  0,144, 91,201

Data  46,240, 46,201, 69,208, 48, 32,115,  0,144, 23,201,171,240, 14

Data 201, 45,240, 10,201,170,240,  8,201, 43,240,  4,208,  7,102, 96

Data  32,115,  0,144, 92, 36, 96, 16, 14,169,  0, 56,229, 94, 76, 73

Data 189,102, 95, 36, 95, 80,195,165, 94, 56,229, 93,133, 94,240, 18

Data  16,  9, 32,254,186,230, 94,208,249,240,  7, 32,226,186,198, 94

Data 208,249,165,103, 48,  1, 96, 76,180,191, 72, 36, 95, 16,  2,230

Data  93, 32,226,186,104, 56,233, 48, 32,126,189, 76, 10,189, 72, 32

Data  12,188,104, 32, 60,188,165,110, 69,102,133,111,166, 97, 76,106

Data 184,165, 94,201, 10,144,  9,169,100, 36, 96, 48, 17, 76,126,185

Data  10, 10, 24,101, 94, 10, 24,160,  0,113,122, 56,233, 48,133, 94

Data  76, 48,189,155, 62,188, 31,253,158,110,107, 39,253,158,110,107

Data  40,  0,169,113,160,163, 32,218,189,165, 58,166, 57,133, 98,134

Data  99,162,144, 56, 32, 73,188, 32,223,189, 76, 30,171,160,  1,169

Data  32, 36,102, 16,  2,169, 45,153,255,  0,133,102,132,113,200,169

Data  48,166, 97,208,  3, 76,  4,191,169,  0,224,128,240,  2,176,  9

Data 169,189,160,189, 32, 40,186,169,247,133, 93,169,184,160,189, 32

Data  91,188,240, 30, 16, 18,169,179,160,189, 32, 91,188,240,  2, 16

Data  14, 32,226,186,198, 93,208,238, 32,254,186,230, 93,208,220, 32

Data  73,184, 32,155,188,162,  1,165, 93, 24,105, 10, 48,  9,201, 11

Data 176,  6,105,255,170,169,  2, 56,233,  2,133, 94,134, 93,138,240

Data   2, 16, 19,164,113,169, 46,200,153,255,  0,138,240,  6,169, 48

Data 200,153,255,  0,132,113,160,  0,162,128,165,101, 24,121, 25,191

Data 133,101,165,100,121, 24,191,133,100,165, 99,121, 23,191,133, 99

Data 165, 98,121, 22,191,133, 98,232,176,  4, 16,222, 48,  2, 48,218

Data 138,144,  4, 73,255,105, 10,105, 47,200,200,200,200,132, 71,164

Data 113,200,170, 41,127,153,255,  0,198, 93,208,  6,169, 46,200,153

Data 255,  0,132,113,164, 71,138, 73,255, 41,128,170,192, 36,240,  4

Data 192, 60,208,166,164,113,185,255,  0,136,201, 48,240,248,201, 46

Data 240,  1,200,169, 43,166, 94,240, 46, 16,  8,169,  0, 56,229, 94

Data 170,169, 45,153,  1,  1,169, 69,153,  0,  1,138,162, 47, 56,232

Data 233, 10,176,251,105, 58,153,  3,  1,138,153,  2,  1,169,  0,153

Data   4,  1,240,  8,153,255,  0,169,  0,153,  0,  1,169,  0,160,  1

Data  96,128,  0,  0,  0,  0,250, 10, 31,  0,  0,152,150,128,255,240

Data 189,192,  0,  1,134,160,255,255,216,240,  0,  0,  3,232,255,255

Data 255,156,  0,  0,  0, 10,255,255,255,255,255,223, 10,128,  0,  3

Data  75,192,255,255,115, 96,  0,  0, 14, 16,255,255,253,168,  0,  0

Data   0, 60,236,170,170,170,170,170,170,170,170,170,170,170,170,170

Data 170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170

Data 170, 32, 12,188,169, 17,160,191, 32,162,187,240,112,165,105,208

Data   3, 76,249,184,162, 78,160,  0, 32,212,187,165,110, 16, 15, 32

Data 204,188,169, 78,160,  0, 32, 91,188,208,  3,152,164,  7, 32,254

Data 187,152, 72, 32,234,185,169, 78,160,  0, 32, 40,186, 32,237,191

Data 104, 74,144, 10,165, 97,240,  6,165,102, 73,255,133,102, 96,129

Data  56,170, 59, 41,  7,113, 52, 88, 62, 86,116, 22,126,179, 27,119

Data  47,238,227,133,122, 29,132, 28, 42,124, 99, 89, 88, 10,126,117

Data 253,231,198,128, 49,114, 24, 16,129,  0,  0,  0,  0,169,191,160

Data 191, 32, 40,186,165,112,105, 80,144,  3, 32, 35,188, 76,  0,224


CHAR_ROM:
Data  60,102,110,110, 96, 98, 60,  0, 24, 60,102,126,102,102,102,  0

Data 124,102,102,124,102,102,124,  0, 60,102, 96, 96, 96,102, 60,  0

Data 120,108,102,102,102,108,120,  0,126, 96, 96,120, 96, 96,126,  0

Data 126, 96, 96,120, 96, 96, 96,  0, 60,102, 96,110,102,102, 60,  0

Data 102,102,102,126,102,102,102,  0, 60, 24, 24, 24, 24, 24, 60,  0

Data  30, 12, 12, 12, 12,108, 56,  0,102,108,120,112,120,108,102,  0

Data  96, 96, 96, 96, 96, 96,126,  0, 99,119,127,107, 99, 99, 99,  0

Data 102,118,126,126,110,102,102,  0, 60,102,102,102,102,102, 60,  0

Data 124,102,102,124, 96, 96, 96,  0, 60,102,102,102,102, 60, 14,  0

Data 124,102,102,124,120,108,102,  0, 60,102, 96, 60,  6,102, 60,  0

Data 126, 24, 24, 24, 24, 24, 24,  0,102,102,102,102,102,102, 60,  0

Data 102,102,102,102,102, 60, 24,  0, 99, 99, 99,107,127,119, 99,  0

Data 102,102, 60, 24, 60,102,102,  0,102,102,102, 60, 24, 24, 24,  0

Data 126,  6, 12, 24, 48, 96,126,  0, 60, 48, 48, 48, 48, 48, 60,  0

Data  12, 18, 48,124, 48, 98,252,  0, 60, 12, 12, 12, 12, 12, 60,  0

Data   0, 24, 60,126, 24, 24, 24, 24,  0, 16, 48,127,127, 48, 16,  0

Data   0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24,  0,  0, 24,  0

Data 102,102,102,  0,  0,  0,  0,  0,102,102,255,102,255,102,102,  0

Data  24, 62, 96, 60,  6,124, 24,  0, 98,102, 12, 24, 48,102, 70,  0

Data  60,102, 60, 56,103,102, 63,  0,  6, 12, 24,  0,  0,  0,  0,  0

Data  12, 24, 48, 48, 48, 24, 12,  0, 48, 24, 12, 12, 12, 24, 48,  0

Data   0,102, 60,255, 60,102,  0,  0,  0, 24, 24,126, 24, 24,  0,  0

Data   0,  0,  0,  0,  0, 24, 24, 48,  0,  0,  0,126,  0,  0,  0,  0

Data   0,  0,  0,  0,  0, 24, 24,  0,  0,  3,  6, 12, 24, 48, 96,  0

Data  60,102,110,118,102,102, 60,  0, 24, 24, 56, 24, 24, 24,126,  0

Data  60,102,  6, 12, 48, 96,126,  0, 60,102,  6, 28,  6,102, 60,  0

Data   6, 14, 30,102,127,  6,  6,  0,126, 96,124,  6,  6,102, 60,  0

Data  60,102, 96,124,102,102, 60,  0,126,102, 12, 24, 24, 24, 24,  0

Data  60,102,102, 60,102,102, 60,  0, 60,102,102, 62,  6,102, 60,  0

Data   0,  0, 24,  0,  0, 24,  0,  0,  0,  0, 24,  0,  0, 24, 24, 48

Data  14, 24, 48, 96, 48, 24, 14,  0,  0,  0,126,  0,126,  0,  0,  0

Data 112, 24, 12,  6, 12, 24,112,  0, 60,102,  6, 12, 24,  0, 24,  0

Data   0,  0,  0,255,255,  0,  0,  0,  8, 28, 62,127,127, 28, 62,  0

Data  24, 24, 24, 24, 24, 24, 24, 24,  0,  0,  0,255,255,  0,  0,  0

Data   0,  0,255,255,  0,  0,  0,  0,  0,255,255,  0,  0,  0,  0,  0

Data   0,  0,  0,  0,255,255,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48

Data  12, 12, 12, 12, 12, 12, 12, 12,  0,  0,  0,224,240, 56, 24, 24

Data  24, 24, 28, 15,  7,  0,  0,  0, 24, 24, 56,240,224,  0,  0,  0

Data 192,192,192,192,192,192,255,255,192,224,112, 56, 28, 14,  7,  3

Data   3,  7, 14, 28, 56,112,224,192,255,255,192,192,192,192,192,192

Data 255,255,  3,  3,  3,  3,  3,  3,  0, 60,126,126,126,126, 60,  0

Data   0,  0,  0,  0,  0,255,255,  0, 54,127,127,127, 62, 28,  8,  0

Data  96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  7, 15, 28, 24, 24

Data 195,231,126, 60, 60,126,231,195,  0, 60,126,102,102,126, 60,  0

Data  24, 24,102,102, 24, 24, 60,  0,  6,  6,  6,  6,  6,  6,  6,  6

Data   8, 28, 62,127, 62, 28,  8,  0, 24, 24, 24,255,255, 24, 24, 24

Data 192,192, 48, 48,192,192, 48, 48, 24, 24, 24, 24, 24, 24, 24, 24

Data   0,  0,  3, 62,118, 54, 54,  0,255,127, 63, 31, 15,  7,  3,  1

Data   0,  0,  0,  0,  0,  0,  0,  0,240,240,240,240,240,240,240,240

Data   0,  0,  0,  0,255,255,255,255,255,  0,  0,  0,  0,  0,  0,  0

Data   0,  0,  0,  0,  0,  0,  0,255,192,192,192,192,192,192,192,192

Data 204,204, 51, 51,204,204, 51, 51,  3,  3,  3,  3,  3,  3,  3,  3

Data   0,  0,  0,  0,204,204, 51, 51,255,254,252,248,240,224,192,128

Data   3,  3,  3,  3,  3,  3,  3,  3, 24, 24, 24, 31, 31, 24, 24, 24

Data   0,  0,  0,  0, 15, 15, 15, 15, 24, 24, 24, 31, 31,  0,  0,  0

Data   0,  0,  0,248,248, 24, 24, 24,  0,  0,  0,  0,  0,  0,255,255

Data   0,  0,  0, 31, 31, 24, 24, 24, 24, 24, 24,255,255,  0,  0,  0

Data   0,  0,  0,255,255, 24, 24, 24, 24, 24, 24,248,248, 24, 24, 24

Data 192,192,192,192,192,192,192,192,224,224,224,224,224,224,224,224

Data   7,  7,  7,  7,  7,  7,  7,  7,255,255,  0,  0,  0,  0,  0,  0

Data 255,255,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,255

Data   3,  3,  3,  3,  3,  3,255,255,  0,  0,  0,  0,240,240,240,240

Data  15, 15, 15, 15,  0,  0,  0,  0, 24, 24, 24,248,248,  0,  0,  0

Data 240,240,240,240,  0,  0,  0,  0,240,240,240,240, 15, 15, 15, 15

Data 195,153,145,145,159,153,195,255,231,195,153,129,153,153,153,255

Data 131,153,153,131,153,153,131,255,195,153,159,159,159,153,195,255

Data 135,147,153,153,153,147,135,255,129,159,159,135,159,159,129,255

Data 129,159,159,135,159,159,159,255,195,153,159,145,153,153,195,255

Data 153,153,153,129,153,153,153,255,195,231,231,231,231,231,195,255

Data 225,243,243,243,243,147,199,255,153,147,135,143,135,147,153,255

Data 159,159,159,159,159,159,129,255,156,136,128,148,156,156,156,255

Data 153,137,129,129,145,153,153,255,195,153,153,153,153,153,195,255

Data 131,153,153,131,159,159,159,255,195,153,153,153,153,195,241,255

Data 131,153,153,131,135,147,153,255,195,153,159,195,249,153,195,255

Data 129,231,231,231,231,231,231,255,153,153,153,153,153,153,195,255

Data 153,153,153,153,153,195,231,255,156,156,156,148,128,136,156,255

Data 153,153,195,231,195,153,153,255,153,153,153,195,231,231,231,255

Data 129,249,243,231,207,159,129,255,195,207,207,207,207,207,195,255

Data 243,237,207,131,207,157,  3,255,195,243,243,243,243,243,195,255

Data 255,231,195,129,231,231,231,231,255,239,207,128,128,207,239,255

Data 255,255,255,255,255,255,255,255,231,231,231,231,255,255,231,255

Data 153,153,153,255,255,255,255,255,153,153,  0,153,  0,153,153,255

Data 231,193,159,195,249,131,231,255,157,153,243,231,207,153,185,255

Data 195,153,195,199,152,153,192,255,249,243,231,255,255,255,255,255

Data 243,231,207,207,207,231,243,255,207,231,243,243,243,231,207,255

Data 255,153,195,  0,195,153,255,255,255,231,231,129,231,231,255,255

Data 255,255,255,255,255,231,231,207,255,255,255,129,255,255,255,255

Data 255,255,255,255,255,231,231,255,255,252,249,243,231,207,159,255

Data 195,153,145,137,153,153,195,255,231,231,199,231,231,231,129,255

Data 195,153,249,243,207,159,129,255,195,153,249,227,249,153,195,255

Data 249,241,225,153,128,249,249,255,129,159,131,249,249,153,195,255

Data 195,153,159,131,153,153,195,255,129,153,243,231,231,231,231,255

Data 195,153,153,195,153,153,195,255,195,153,153,193,249,153,195,255

Data 255,255,231,255,255,231,255,255,255,255,231,255,255,231,231,207

Data 241,231,207,159,207,231,241,255,255,255,129,255,129,255,255,255

Data 143,231,243,249,243,231,143,255,195,153,249,243,231,255,231,255

Data 255,255,255,  0,  0,255,255,255,247,227,193,128,128,227,193,255

Data 231,231,231,231,231,231,231,231,255,255,255,  0,  0,255,255,255

Data 255,255,  0,  0,255,255,255,255,255,  0,  0,255,255,255,255,255

Data 255,255,255,255,  0,  0,255,255,207,207,207,207,207,207,207,207

Data 243,243,243,243,243,243,243,243,255,255,255, 31, 15,199,231,231

Data 231,231,227,240,248,255,255,255,231,231,199, 15, 31,255,255,255

Data  63, 63, 63, 63, 63, 63,  0,  0, 63, 31,143,199,227,241,248,252

Data 252,248,241,227,199,143, 31, 63,  0,  0, 63, 63, 63, 63, 63, 63

Data   0,  0,252,252,252,252,252,252,255,195,129,129,129,129,195,255

Data 255,255,255,255,255,  0,  0,255,201,128,128,128,193,227,247,255

Data 159,159,159,159,159,159,159,159,255,255,255,248,240,227,231,231

Data  60, 24,129,195,195,129, 24, 60,255,195,129,153,153,129,195,255

Data 231,231,153,153,231,231,195,255,249,249,249,249,249,249,249,249

Data 247,227,193,128,193,227,247,255,231,231,231,  0,  0,231,231,231

Data  63, 63,207,207, 63, 63,207,207,231,231,231,231,231,231,231,231

Data 255,255,252,193,137,201,201,255,  0,128,192,224,240,248,252,254

Data 255,255,255,255,255,255,255,255, 15, 15, 15, 15, 15, 15, 15, 15

Data 255,255,255,255,  0,  0,  0,  0,  0,255,255,255,255,255,255,255

Data 255,255,255,255,255,255,255,  0, 63, 63, 63, 63, 63, 63, 63, 63

Data  51, 51,204,204, 51, 51,204,204,252,252,252,252,252,252,252,252

Data 255,255,255,255, 51, 51,204,204,  0,  1,  3,  7, 15, 31, 63,127

Data 252,252,252,252,252,252,252,252,231,231,231,224,224,231,231,231

Data 255,255,255,255,240,240,240,240,231,231,231,224,224,255,255,255

Data 255,255,255,  7,  7,231,231,231,255,255,255,255,255,255,  0,  0

Data 255,255,255,224,224,231,231,231,231,231,231,  0,  0,255,255,255

Data 255,255,255,  0,  0,231,231,231,231,231,231,  7,  7,231,231,231

Data  63, 63, 63, 63, 63, 63, 63, 63, 31, 31, 31, 31, 31, 31, 31, 31

Data 248,248,248,248,248,248,248,248,  0,  0,255,255,255,255,255,255

Data   0,  0,  0,255,255,255,255,255,255,255,255,255,255,  0,  0,  0

Data 252,252,252,252,252,252,  0,  0,255,255,255,255, 15, 15, 15, 15

Data 240,240,240,240,255,255,255,255,231,231,231,  7,  7,255,255,255

Data  15, 15, 15, 15,255,255,255,255, 15, 15, 15, 15,240,240,240,240

Data  60,102,110,110, 96, 98, 60,  0,  0,  0, 60,  6, 62,102, 62,  0

Data   0, 96, 96,124,102,102,124,  0,  0,  0, 60, 96, 96, 96, 60,  0

Data   0,  6,  6, 62,102,102, 62,  0,  0,  0, 60,102,126, 96, 60,  0

Data   0, 14, 24, 62, 24, 24, 24,  0,  0,  0, 62,102,102, 62,  6,124

Data   0, 96, 96,124,102,102,102,  0,  0, 24,  0, 56, 24, 24, 60,  0

Data   0,  6,  0,  6,  6,  6,  6, 60,  0, 96, 96,108,120,108,102,  0

Data   0, 56, 24, 24, 24, 24, 60,  0,  0,  0,102,127,127,107, 99,  0

Data   0,  0,124,102,102,102,102,  0,  0,  0, 60,102,102,102, 60,  0

Data   0,  0,124,102,102,124, 96, 96,  0,  0, 62,102,102, 62,  6,  6

Data   0,  0,124,102, 96, 96, 96,  0,  0,  0, 62, 96, 60,  6,124,  0

Data   0, 24,126, 24, 24, 24, 14,  0,  0,  0,102,102,102,102, 62,  0

Data   0,  0,102,102,102, 60, 24,  0,  0,  0, 99,107,127, 62, 54,  0

Data   0,  0,102, 60, 24, 60,102,  0,  0,  0,102,102,102, 62, 12,120

Data   0,  0,126, 12, 24, 48,126,  0, 60, 48, 48, 48, 48, 48, 60,  0

Data  12, 18, 48,124, 48, 98,252,  0, 60, 12, 12, 12, 12, 12, 60,  0

Data   0, 24, 60,126, 24, 24, 24, 24,  0, 16, 48,127,127, 48, 16,  0

Data   0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24,  0,  0, 24,  0

Data 102,102,102,  0,  0,  0,  0,  0,102,102,255,102,255,102,102,  0

Data  24, 62, 96, 60,  6,124, 24,  0, 98,102, 12, 24, 48,102, 70,  0

Data  60,102, 60, 56,103,102, 63,  0,  6, 12, 24,  0,  0,  0,  0,  0

Data  12, 24, 48, 48, 48, 24, 12,  0, 48, 24, 12, 12, 12, 24, 48,  0

Data   0,102, 60,255, 60,102,  0,  0,  0, 24, 24,126, 24, 24,  0,  0

Data   0,  0,  0,  0,  0, 24, 24, 48,  0,  0,  0,126,  0,  0,  0,  0

Data   0,  0,  0,  0,  0, 24, 24,  0,  0,  3,  6, 12, 24, 48, 96,  0

Data  60,102,110,118,102,102, 60,  0, 24, 24, 56, 24, 24, 24,126,  0

Data  60,102,  6, 12, 48, 96,126,  0, 60,102,  6, 28,  6,102, 60,  0

Data   6, 14, 30,102,127,  6,  6,  0,126, 96,124,  6,  6,102, 60,  0

Data  60,102, 96,124,102,102, 60,  0,126,102, 12, 24, 24, 24, 24,  0

Data  60,102,102, 60,102,102, 60,  0, 60,102,102, 62,  6,102, 60,  0

Data   0,  0, 24,  0,  0, 24,  0,  0,  0,  0, 24,  0,  0, 24, 24, 48

Data  14, 24, 48, 96, 48, 24, 14,  0,  0,  0,126,  0,126,  0,  0,  0

Data 112, 24, 12,  6, 12, 24,112,  0, 60,102,  6, 12, 24,  0, 24,  0

Data   0,  0,  0,255,255,  0,  0,  0, 24, 60,102,126,102,102,102,  0

Data 124,102,102,124,102,102,124,  0, 60,102, 96, 96, 96,102, 60,  0

Data 120,108,102,102,102,108,120,  0,126, 96, 96,120, 96, 96,126,  0

Data 126, 96, 96,120, 96, 96, 96,  0, 60,102, 96,110,102,102, 60,  0

Data 102,102,102,126,102,102,102,  0, 60, 24, 24, 24, 24, 24, 60,  0

Data  30, 12, 12, 12, 12,108, 56,  0,102,108,120,112,120,108,102,  0

Data  96, 96, 96, 96, 96, 96,126,  0, 99,119,127,107, 99, 99, 99,  0

Data 102,118,126,126,110,102,102,  0, 60,102,102,102,102,102, 60,  0

Data 124,102,102,124, 96, 96, 96,  0, 60,102,102,102,102, 60, 14,  0

Data 124,102,102,124,120,108,102,  0, 60,102, 96, 60,  6,102, 60,  0

Data 126, 24, 24, 24, 24, 24, 24,  0,102,102,102,102,102,102, 60,  0

Data 102,102,102,102,102, 60, 24,  0, 99, 99, 99,107,127,119, 99,  0

Data 102,102, 60, 24, 60,102,102,  0,102,102,102, 60, 24, 24, 24,  0

Data 126,  6, 12, 24, 48, 96,126,  0, 24, 24, 24,255,255, 24, 24, 24

Data 192,192, 48, 48,192,192, 48, 48, 24, 24, 24, 24, 24, 24, 24, 24

Data  51, 51,204,204, 51, 51,204,204, 51,153,204,102, 51,153,204,102

Data   0,  0,  0,  0,  0,  0,  0,  0,240,240,240,240,240,240,240,240

Data   0,  0,  0,  0,255,255,255,255,255,  0,  0,  0,  0,  0,  0,  0

Data   0,  0,  0,  0,  0,  0,  0,255,192,192,192,192,192,192,192,192

Data 204,204, 51, 51,204,204, 51, 51,  3,  3,  3,  3,  3,  3,  3,  3

Data   0,  0,  0,  0,204,204, 51, 51,204,153, 51,102,204,153, 51,102

Data   3,  3,  3,  3,  3,  3,  3,  3, 24, 24, 24, 31, 31, 24, 24, 24

Data   0,  0,  0,  0, 15, 15, 15, 15, 24, 24, 24, 31, 31,  0,  0,  0

Data   0,  0,  0,248,248, 24, 24, 24,  0,  0,  0,  0,  0,  0,255,255

Data   0,  0,  0, 31, 31, 24, 24, 24, 24, 24, 24,255,255,  0,  0,  0

Data   0,  0,  0,255,255, 24, 24, 24, 24, 24, 24,248,248, 24, 24, 24

Data 192,192,192,192,192,192,192,192,224,224,224,224,224,224,224,224

Data   7,  7,  7,  7,  7,  7,  7,  7,255,255,  0,  0,  0,  0,  0,  0

Data 255,255,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,255,255

Data   1,  3,  6,108,120,112, 96,  0,  0,  0,  0,  0,240,240,240,240

Data  15, 15, 15, 15,  0,  0,  0,  0, 24, 24, 24,248,248,  0,  0,  0

Data 240,240,240,240,  0,  0,  0,  0,240,240,240,240, 15, 15, 15, 15

Data 195,153,145,145,159,153,195,255,255,255,195,249,193,153,193,255

Data 255,159,159,131,153,153,131,255,255,255,195,159,159,159,195,255

Data 255,249,249,193,153,153,193,255,255,255,195,153,129,159,195,255

Data 255,241,231,193,231,231,231,255,255,255,193,153,153,193,249,131

Data 255,159,159,131,153,153,153,255,255,231,255,199,231,231,195,255

Data 255,249,255,249,249,249,249,195,255,159,159,147,135,147,153,255

Data 255,199,231,231,231,231,195,255,255,255,153,128,128,148,156,255

Data 255,255,131,153,153,153,153,255,255,255,195,153,153,153,195,255

Data 255,255,131,153,153,131,159,159,255,255,193,153,153,193,249,249

Data 255,255,131,153,159,159,159,255,255,255,193,159,195,249,131,255

Data 255,231,129,231,231,231,241,255,255,255,153,153,153,153,193,255

Data 255,255,153,153,153,195,231,255,255,255,156,148,128,193,201,255

Data 255,255,153,195,231,195,153,255,255,255,153,153,153,193,243,135

Data 255,255,129,243,231,207,129,255,195,207,207,207,207,207,195,255

Data 243,237,207,131,207,157,  3,255,195,243,243,243,243,243,195,255

Data 255,231,195,129,231,231,231,231,255,239,207,128,128,207,239,255

Data 255,255,255,255,255,255,255,255,231,231,231,231,255,255,231,255

Data 153,153,153,255,255,255,255,255,153,153,  0,153,  0,153,153,255

Data 231,193,159,195,249,131,231,255,157,153,243,231,207,153,185,255

Data 195,153,195,199,152,153,192,255,249,243,231,255,255,255,255,255

Data 243,231,207,207,207,231,243,255,207,231,243,243,243,231,207,255

Data 255,153,195,  0,195,153,255,255,255,231,231,129,231,231,255,255

Data 255,255,255,255,255,231,231,207,255,255,255,129,255,255,255,255

Data 255,255,255,255,255,231,231,255,255,252,249,243,231,207,159,255

Data 195,153,145,137,153,153,195,255,231,231,199,231,231,231,129,255

Data 195,153,249,243,207,159,129,255,195,153,249,227,249,153,195,255

Data 249,241,225,153,128,249,249,255,129,159,131,249,249,153,195,255

Data 195,153,159,131,153,153,195,255,129,153,243,231,231,231,231,255

Data 195,153,153,195,153,153,195,255,195,153,153,193,249,153,195,255

Data 255,255,231,255,255,231,255,255,255,255,231,255,255,231,231,207

Data 241,231,207,159,207,231,241,255,255,255,129,255,129,255,255,255

Data 143,231,243,249,243,231,143,255,195,153,249,243,231,255,231,255

Data 255,255,255,  0,  0,255,255,255,231,195,153,129,153,153,153,255

Data 131,153,153,131,153,153,131,255,195,153,159,159,159,153,195,255

Data 135,147,153,153,153,147,135,255,129,159,159,135,159,159,129,255

Data 129,159,159,135,159,159,159,255,195,153,159,145,153,153,195,255

Data 153,153,153,129,153,153,153,255,195,231,231,231,231,231,195,255

Data 225,243,243,243,243,147,199,255,153,147,135,143,135,147,153,255

Data 159,159,159,159,159,159,129,255,156,136,128,148,156,156,156,255

Data 153,137,129,129,145,153,153,255,195,153,153,153,153,153,195,255

Data 131,153,153,131,159,159,159,255,195,153,153,153,153,195,241,255

Data 131,153,153,131,135,147,153,255,195,153,159,195,249,153,195,255

Data 129,231,231,231,231,231,231,255,153,153,153,153,153,153,195,255

Data 153,153,153,153,153,195,231,255,156,156,156,148,128,136,156,255

Data 153,153,195,231,195,153,153,255,153,153,153,195,231,231,231,255

Data 129,249,243,231,207,159,129,255,231,231,231,  0, 0, 231,231,231

Data  63, 63,207,207, 63, 63,207,207,231,231,231,231,231,231,231,231

Data 204,204, 51, 51,204,204,51,  51,204,102, 51,153,204,102, 51,153

Data 255,255,255,255,255,255,255,255, 15, 15, 15, 15, 15, 15, 15, 15

Data 255,255,255,255,  0,  0,  0,  0,  0,255,255,255,255,255,255,255

Data 255,255,255,255,255,255,255,  0, 63, 63, 63, 63, 63, 63, 63, 63

Data  51, 51,204,204, 51, 51,204,204,252,252,252,252,252,252,252,252

Data 255,255,255,255, 51, 51,204,204, 51,102,204,153, 51,102,204,153

Data 252,252,252,252,252,252,252,252,231,231,231,224,224,231,231,231

Data 255,255,255,255,240,240,240,240,231,231,231,224,224,255,255,255

Data 255,255,255,  7,  7,231,231,231,255,255,255,255,255,255,  0,  0

Data 255,255,255,224,224,231,231,231,231,231,231,  0,  0,255,255,255

Data 255,255,255,  0,  0,231,231,231,231,231,231,  7,  7,231,231,231

Data  63, 63, 63, 63, 63, 63, 63, 63, 31, 31, 31, 31, 31, 31, 31, 31

Data 248,248,248,248,248,248,248,248,  0,  0,255,255,255,255,255,255

Data   0,  0,  0,255,255,255,255,255,255,255,255,255,255,  0,  0,  0

Data 254,252,249,147,135,143,159,255,255,255,255,255, 15, 15, 15, 15

Data 240,240,240,240,255,255,255,255,231,231,231,  7,  7,255,255,255

Data  15, 15, 15, 15, 255,255,255,255,15, 15, 15, 15,240,240,240,240


Enum FB_KEYS
  fb_bspace =   8

  fb_tab    =   9

  fb_f2     = 316

  fb_f3     = 317

  fb_pos1   = 327

  fb_up     = 328

  fb_left   = 331

  fb_right  = 333

  fb_down   = 336

  fb_del    = 339

End Enum

Enum C64_KEYS
  c64_down   =  17

  c64_pos1   =  19

  c64_bspace =  20

  c64_right  =  29

  c64_up     = 145

  c64_left   = 157

  c64_del    = 148

End Enum



Dim Shared As Integer flag

Function InterruptService(cpu As CPU6510 Ptr) As Integer

  Static As String s
  Dim As Integer key
  Dim As Integer IRQTicks
  ' return if any interrupt are active
  If cpu->F.i=1 Then Return 0


  Dim As Integer nChars=cpu->mem->ReadUbyte(&H00C6)
  If nChars<10 Then

    Dim As String  strkey=inkey

    key   =len(strkey)
    If key Then

      key=strkey[key-1]+(key-1)*256

      Select Case key
      Case 27 : End

      Case 65 To  90:key+=32:s=s & Chr(key):dprint(s)
      Case 97 To 122:key-=32:s=s & Chr(key):dprint(s)
      Case fb_f2 ' save
      Locate 1,1: Print Space(48)
      Locate 1,1: Input "save filename:";strKey
      If Len(strKey) Then

        key=freefile

        If Open(strKey For Binary Access Write As #key)=0 Then

          Dim As Ubyte   u8
          Dim As Integer nBytes=cpu->mem->ReadUShort(&H02D)
          nBytes-=2048

          Put #key,,nBytes
          For i As integer=0 To nBytes-1

            u8=cpu->mem->ReadUByte(2048+i)
            Put #key,,u8
          Next

          Close #key
        Else

          Locate 1,1: Print Space(48)
          Locate 1,1: Print "can't create: " & strKey
          Beep:Sleep

        End If

      End If

      Line (0,0)-(319+8*8,7),3,bf
      key=0

      Case fb_f3 ' load
      Locate 1,1: Print Space(48)
      Locate 1,1: Input "load filename:";strKey
      If Len(strKey) Then

        key=freefile

        If Open(strKey For Binary Access Read As #key)=0 Then

          Dim As Ubyte   u8
          Dim As Integer nBytes
          Get #key,,nBytes
          For i As integer=0 To nBytes-1

            Get #key,,u8
            cpu->mem->WriteUByte(2048+i,u8)
          Next

          Close #key
          nBytes+=2048

          cpu->mem->WriteUShort(&H02D,nBytes)
          cpu->PC=&HA52A
        Else

          Locate 1,1: Print Space(48)
          Locate 1,1: Print "can't open: " & strKey
          Beep:Sleep

        End If

      End If

      Line (0,0)-(319+8*8,7),3,bf
      key=0

      Case fb_pos1  :key=c64_pos1
      Case fb_bspace:key=c64_bspace
      Case fb_left  :key=c64_left
      Case fb_up    :key=c64_up
      Case fb_right :key=c64_right
      Case fb_down  :key=c64_down
      End Select

      If key Then

        cpu->mem->WriteUbyte(&H0277+nChars,key)
        cpu->mem->WriteUbyte(&H00C6,nChars+1)
      End If

    End If

  End If

  cpu->push(cpu->ph)
  cpu->push(cpu->pl)
  cpu->push(cpu->p )
  cpu->ph=cpu->mem->ReadUbyte(&HFFFE)
  cpu->pl=cpu->mem->ReadUbyte(&HFFFF)
  cpu->F.b=0:cpu->F.i=1

  While cpu->code.code<>&H40 ' RTI
    cpu->Tick:IRQTicks+=1

  Wend

  cpu->P =cpu->pull()
  cpu->pl=cpu->pull()
  cpu->ph=cpu->pull()
  If key=13 Then

    flag=1

  Else

    flag=0

  End If

  Return IRQTicks
End Function


'
' main
'
Dim As OldSchool compi
Dim As Integer ticks

While 1

  Ticks+=1

  If flag=1 Then

    compi.cpu->Tick Ticks
  Else

    compi.cpu->Tick
  End If

  If Ticks Mod 24000=0 Then

    Ticks+=InterruptService(compi.cpu)
    Sleep(10,1)
  End If

Wend

End