*
*  Source machine generated by GadToolsBox V2.0b
*  which is (c) Copyright 1991-1993 Jaba Development
*
*  GUI Designed by : Juan Antonio Gómez
*

    XREF    _GadToolsBase
    XREF    _IntuitionBase
    XREF    _GfxBase
    XREF    _SysBase

OpenScreenTagList    EQU    -612
OpenWindowTagList    EQU    -606
CloseScreen          EQU    -66
CloseWindow          EQU    -72
PrintIText           EQU    -216
LockPubScreen        EQU    -510
UnlockPubScreen      EQU    -516
SetMenuStrip         EQU    -264
ClearMenuStrip       EQU    -54
GetVisualInfoA       EQU    -126
FreeVisualInfo       EQU    -132
CreateContext        EQU    -114
CreateGadgetA        EQU    -30
GT_RefreshWindow     EQU    -84
FreeGadgets          EQU    -36
CreateMenusA         EQU    -48
LayoutMenusA         EQU    -66
FreeMenus            EQU    -54
OpenDiskFont         EQU    -30
CloseFont            EQU    -78
DrawBevelBoxA        EQU    -120
FreeClass            EQU    -714
NewObjectA           EQU    -636
DisposeObject        EQU    -642
TextLength           EQU    -54
CopyMem              EQU    -624
FindTagItem          EQU    -30
IntuiTextLength      EQU    -330
Forbid               EQU    -132
Permit               EQU    -138

GD_PowerON                             EQU    0
GD_HelpPage                            EQU    1
GD_Exit                                EQU    2
GD_Continue                            EQU    3
GD_Refresh                             EQU    4
GD_ScrMode                             EQU    5
GD_INTER                               EQU    6
GD_Veloz                               EQU    7
GD_Insert                              EQU    8
GD_JoyType                             EQU    9
GD_JoyPort                             EQU    10

GD_NewEcontinue                        EQU    0

GD_HPcontinue                          EQU    0

GD_AboutCont                           EQU    0
GD_AboutExit                           EQU    1

GD_magacontinue                        EQU    0
GD_magaExitWB                          EQU    1

GD_OverYes                             EQU    0
GD_OverCancel                          EQU    1

GD_QuitYes                             EQU    0
GD_QuitNo                              EQU    1

GD_Poke                                EQU    0
GD_PokeAddress                         EQU    1
GD_PokeValue                           EQU    2
GD_PokeExit                            EQU    3
GD_CheatSeaVal                         EQU    4
GD_CheatComVal                         EQU    5
GD_CheatMore                           EQU    6

GD_Econtinue                           EQU    0

GD_Addressexit                         EQU    0

NES_CNT    EQU    11
ImpErrornew_CNT    EQU    1
HelpPage_CNT    EQU    1
About_CNT    EQU    2
MC68020_CNT    EQU    2
Overwrite_CNT    EQU    2
Quit_CNT    EQU    2
Cheat_CNT    EQU    7
ImpError_CNT    EQU    1
Address_CNT    EQU    1
Scr:
    DC.L    0
VisualInfo:
    DC.L    0
NESWnd:
    DC.L    0
ImpErrornewWnd:
    DC.L    0
HelpPageWnd:
    DC.L    0
AboutWnd:
    DC.L    0
MC68020Wnd:
    DC.L    0
OverwriteWnd:
    DC.L    0
QuitWnd:
    DC.L    0
CheatWnd:
    DC.L    0
ImpErrorWnd:
    DC.L    0
AddressWnd:
    DC.L    0
NESGList:
    DC.L    0
ImpErrornewGList:
    DC.L    0
HelpPageGList:
    DC.L    0
AboutGList:
    DC.L    0
MC68020GList:
    DC.L    0
OverwriteGList:
    DC.L    0
QuitGList:
    DC.L    0
CheatGList:
    DC.L    0
ImpErrorGList:
    DC.L    0
AddressGList:
    DC.L    0
NESMenus:
    DC.L    0
MTags0:
    DC.L    $80080032,6,$00000000
MTags1:
    DC.L    $80080031,topaz8,$00000000
NESGadgets:
    DCB.L    11,0
ImpErrornewGadgets:
    DCB.L    1,0
HelpPageGadgets:
    DCB.L    1,0
AboutGadgets:
    DCB.L    2,0
MC68020Gadgets:
    DCB.L    2,0
OverwriteGadgets:
    DCB.L    2,0
QuitGadgets:
    DCB.L    2,0
CheatGadgets:
    DCB.L    7,0
ImpErrorGadgets:
    DCB.L    1,0
AddressGadgets:
    DCB.L    1,0
BufNewGad:
    DC.W    0,0,0,0
    DC.L    0,0
    DC.W    0
    DC.L    0,0,0
TD:
    DC.L    $00000000
NR:
    DC.L    $80080034,$00000000,$00000000
IR:
    DC.L    $80080034,$00000000,$80080033,1,$00000000
NESLeft:
    DC.W    0
NESTop:
    DC.W    11
NESWidth:
    DC.W    640
NESHeight:
    DC.W    190
ImpErrornewLeft:
    DC.W    169
ImpErrornewTop:
    DC.W    59
ImpErrornewWidth:
    DC.W    314
ImpErrornewHeight:
    DC.W    60
HelpPageLeft:
    DC.W    73
HelpPageTop:
    DC.W    19
HelpPageWidth:
    DC.W    498
HelpPageHeight:
    DC.W    170
AboutLeft:
    DC.W    150
AboutTop:
    DC.W    11
AboutWidth:
    DC.W    332
AboutHeight:
    DC.W    190
MC68020Left:
    DC.W    181
MC68020Top:
    DC.W    71
MC68020Width:
    DC.W    283
MC68020Height:
    DC.W    53
OverwriteLeft:
    DC.W    199
OverwriteTop:
    DC.W    52
OverwriteWidth:
    DC.W    258
OverwriteHeight:
    DC.W    55
QuitLeft:
    DC.W    218
QuitTop:
    DC.W    53
QuitWidth:
    DC.W    212
QuitHeight:
    DC.W    48
CheatLeft:
    DC.W    107
CheatTop:
    DC.W    37
CheatWidth:
    DC.W    426
CheatHeight:
    DC.W    127
ImpErrorLeft:
    DC.W    184
ImpErrorTop:
    DC.W    59
ImpErrorWidth:
    DC.W    284
ImpErrorHeight:
    DC.W    52
AddressLeft:
    DC.W    150
AddressTop:
    DC.W    11
AddressWidth:
    DC.W    369
AddressHeight:
    DC.W    162

NESGTypes:
    DC.W    1
    DC.W    1
    DC.W    1
    DC.W    1
    DC.W    7
    DC.W    7
    DC.W    7
    DC.W    11
    DC.W    1
    DC.W    7
    DC.W    5

ImpErrornewGTypes:
    DC.W    1

HelpPageGTypes:
    DC.W    1

AboutGTypes:
    DC.W    1
    DC.W    1

MC68020GTypes:
    DC.W    1
    DC.W    1

OverwriteGTypes:
    DC.W    1
    DC.W    1

QuitGTypes:
    DC.W    1
    DC.W    1

CheatGTypes:
    DC.W    1
    DC.W    12
    DC.W    12
    DC.W    1
    DC.W    12
    DC.W    12
    DC.W    1

ImpErrorGTypes:
    DC.W    1

AddressGTypes:
    DC.W    1

NESNGads:
    DC.W    187,171,94,14
    DC.L    PowerONText,0
    DC.W    GD_PowerON
    DC.L    $0010,0,0
    DC.W    36,171,94,14
    DC.L    HelpPageText,0
    DC.W    GD_HelpPage
    DC.L    $0010,0,0
    DC.W    501,171,94,14
    DC.L    ExitText,0
    DC.W    GD_Exit
    DC.L    $0010,0,0
    DC.W    344,171,94,14
    DC.L    ContinueText,0
    DC.W    GD_Continue
    DC.L    $0010,0,0
    DC.W    481,112,116,13
    DC.L    RefreshText,0
    DC.W    GD_Refresh
    DC.L    $0021,0,0
    DC.W    473,80,124,13
    DC.L    ScrModeText,0
    DC.W    GD_ScrMode
    DC.L    $0021,0,0
    DC.W    473,96,124,13
    DC.L    INTERText,0
    DC.W    GD_INTER
    DC.L    $0021,0,0
    DC.W    34,143,218,13
    DC.L    VelozText,0
    DC.W    GD_Veloz
    DC.L    $0000,0,0
    DC.W    34,80,66,13
    DC.L    InsertText,0
    DC.W    GD_Insert
    DC.L    $0010,0,0
    DC.W    386,143,152,13
    DC.L    JoyTypeText,0
    DC.W    GD_JoyType
    DC.L    $0000,0,0
    DC.W    306,139,17,9
    DC.L    JoyPortText,0
    DC.W    GD_JoyPort
    DC.L    $0002,0,0

ImpErrornewNGads:
    DC.W    101,40,99,15
    DC.L    NewEcontinueText,0
    DC.W    GD_NewEcontinue
    DC.L    $0010,0,0

HelpPageNGads:
    DC.W    197,150,99,15
    DC.L    HPcontinueText,0
    DC.W    GD_HPcontinue
    DC.L    $0010,0,0

AboutNGads:
    DC.W    55,169,81,16
    DC.L    AboutContText,0
    DC.W    GD_AboutCont
    DC.L    $0010,0,0
    DC.W    189,169,81,16
    DC.L    AboutExitText,0
    DC.W    GD_AboutExit
    DC.L    $0010,0,0

MC68020NGads:
    DC.W    28,30,93,15
    DC.L    magacontinueText,0
    DC.W    GD_magacontinue
    DC.L    $0010,0,0
    DC.W    154,30,93,15
    DC.L    magaExitWBText,0
    DC.W    GD_magaExitWB
    DC.L    $0010,0,0

OverwriteNGads:
    DC.W    36,36,73,14
    DC.L    OverYesText,0
    DC.W    GD_OverYes
    DC.L    $0010,0,0
    DC.W    141,36,73,14
    DC.L    OverCancelText,0
    DC.W    GD_OverCancel
    DC.L    $0010,0,0

QuitNGads:
    DC.W    19,26,73,14
    DC.L    QuitYesText,0
    DC.W    GD_QuitYes
    DC.L    $0010,0,0
    DC.W    113,26,73,14
    DC.L    QuitNoText,0
    DC.W    GD_QuitNo
    DC.L    $0010,0,0

CheatNGads:
    DC.W    22,27,77,14
    DC.L    PokeText,0
    DC.W    GD_Poke
    DC.L    $0010,0,0
    DC.W    107,27,61,14
    DC.L    PokeAddressText,0
    DC.W    GD_PokeAddress
    DC.L    $0024,0,0
    DC.W    176,27,46,14
    DC.L    PokeValueText,0
    DC.W    GD_PokeValue
    DC.L    $0024,0,0
    DC.W    257,107,78,15
    DC.L    PokeExitText,0
    DC.W    GD_PokeExit
    DC.L    $0010,0,0
    DC.W    354,13,46,14
    DC.L    CheatSeaValText,0
    DC.W    GD_CheatSeaVal
    DC.L    $0021,0,0
    DC.W    354,28,46,14
    DC.L    CheatComValText,0
    DC.W    GD_CheatComVal
    DC.L    $0021,0,0
    DC.W    92,107,78,15
    DC.L    CheatMoreText,0
    DC.W    GD_CheatMore
    DC.L    $0010,0,0

ImpErrorNGads:
    DC.W    84,32,99,15
    DC.L    EcontinueText,0
    DC.W    GD_Econtinue
    DC.L    $0010,0,0

AddressNGads:
    DC.W    132,141,92,16
    DC.L    AddressexitText,0
    DC.W    GD_Addressexit
    DC.L    $0010,0,0

NESGTags:
    DC.L    $00000000
    DC.L    $00000000
    DC.L    $00000000
    DC.L    $8003000E,1
    DC.L    $00000000
    DC.L    $8008000E,RefreshLabels
    DC.L    $8003000E,1
    DC.L    $00000000
    DC.L    $8008000E,ScrModeLabels
    DC.L    $8008000F,1
    DC.L    $8003000E,1
    DC.L    $00000000
    DC.L    $8008000E,INTERLabels
    DC.L    $8003000E,1
    DC.L    $00000000
    DC.L    $80080027,99
    DC.L    $80080029,5
    DC.L    $8008002A,VelozFormat
    DC.L    $8008002B,$00000002
    DC.L    $80031001,$00000001
    DC.L    $80030016,1
    DC.L    $8003000E,1
    DC.L    $00000000
    DC.L    $00000000
    DC.L    $8008000E,JoyTypeLabels
    DC.L    $8008000F,3
    DC.L    $00000000
    DC.L    $80080009,JoyPortLabels
    DC.L    $8008003D,2
    DC.L    $00000000


VelozFormat:
    DC.B    '%ld',0
    CNOP     0,2

ImpErrornewGTags:
    DC.L    $00000000


HelpPageGTags:
    DC.L    $00000000


AboutGTags:
    DC.L    $00000000
    DC.L    $00000000


MC68020GTags:
    DC.L    $00000000
    DC.L    $00000000


OverwriteGTags:
    DC.L    $00000000
    DC.L    $00000000


QuitGTags:
    DC.L    $00000000
    DC.L    $00000000


CheatGTags:
    DC.L    $00000000
    DC.L    $8008002D,PokeAddressString
    DC.L    $8008002E,5
    DC.L    $00000000
    DC.L    $8008002D,PokeValueString
    DC.L    $8008002E,3
    DC.L    $00000000
    DC.L    $00000000
    DC.L    $8008002D,CheatSeaValString
    DC.L    $8008002E,3
    DC.L    $00000000
    DC.L    $8008002D,CheatComValString
    DC.L    $8008002E,3
    DC.L    $00000000
    DC.L    $8003000E,1
    DC.L    $00000000


PokeAddressString:
    DC.B    '$0000',0
    CNOP    0,2

PokeValueString:
    DC.B    '$00',0
    CNOP    0,2

CheatSeaValString:
    DC.B    '$00',0
    CNOP    0,2

CheatComValString:
    DC.B    '$00',0
    CNOP    0,2

ImpErrorGTags:
    DC.L    $00000000


AddressGTags:
    DC.L    $00000000


PowerONText:
    DC.B    'Power ON',0

HelpPageText:
    DC.B    'Help Page',0

ExitText:
    DC.B    'Exit',0

ContinueText:
    DC.B    'Continue',0

RefreshText:
    DC.B    'Refresh:',0

ScrModeText:
    DC.B    'Screen:',0

INTERText:
    DC.B    'Inter:',0

VelozText:
    DC.B    '',0

InsertText:
    DC.B    'Insert:',0

JoyTypeText:
    DC.B    '',0

JoyPortText:
    DC.B    '',0

    CNOP    0,2

NewEcontinueText:
    DC.B    'Continue',0

    CNOP    0,2

HPcontinueText:
    DC.B    'Continue',0

    CNOP    0,2

AboutContText:
    DC.B    'More',0

AboutExitText:
    DC.B    'Exit',0

    CNOP    0,2

magacontinueText:
    DC.B    'Continue?',0

magaExitWBText:
    DC.B    'Exit to WB',0

    CNOP    0,2

OverYesText:
    DC.B    'Yes',0

OverCancelText:
    DC.B    'Cancel',0

    CNOP    0,2

QuitYesText:
    DC.B    'Yes',0

QuitNoText:
    DC.B    'No',0

    CNOP    0,2

PokeText:
    DC.B    'Do Poke:',0

PokeAddressText:
    DC.B    'Address',0

PokeValueText:
    DC.B    'Value',0

PokeExitText:
    DC.B    'Exit',0

CheatSeaValText:
    DC.B    'Search for',0

CheatComValText:
    DC.B    'Compare with',0

CheatMoreText:
    DC.B    'More',0

    CNOP    0,2

EcontinueText:
    DC.B    'Continue',0

    CNOP    0,2

AddressexitText:
    DC.B    'Exit',0

    CNOP    0,2

RefreshLabels:
    DC.L    RefreshLab0
    DC.L    RefreshLab1
    DC.L    RefreshLab2
    DC.L    0

ScrModeLabels:
    DC.L    ScrModeLab0
    DC.L    ScrModeLab1
    DC.L    0

INTERLabels:
    DC.L    INTERLab0
    DC.L    INTERLab1
    DC.L    INTERLab2
    DC.L    0

JoyTypeLabels:
    DC.L    JoyTypeLab0
    DC.L    JoyTypeLab1
    DC.L    JoyTypeLab2
    DC.L    JoyTypeLab3
    DC.L    0

JoyPortLabels:
    DC.L    JoyPortLab0
    DC.L    JoyPortLab1
    DC.L    0

RefreshLab0:    DC.B    '1 frame',0
RefreshLab1:    DC.B    '2 frames',0
RefreshLab2:    DC.B    '3 frames',0

    CNOP    0,2

ScrModeLab0:    DC.B    'PAL (50Hz)',0
ScrModeLab1:    DC.B    'NTSC (60Hz)',0

    CNOP    0,2

INTERLab0:    DC.B    '50 vblank/s',0
INTERLab1:    DC.B    '25 vblank/s',0
INTERLab2:    DC.B    '16 vblank/s',0

    CNOP    0,2

JoyTypeLab0:    DC.B    'Amiga JoyStick',0
JoyTypeLab1:    DC.B    'Keyboard Only',0
JoyTypeLab2:    DC.B    'CD32 Joypad',0
JoyTypeLab3:    DC.B    'Standard Joypad',0

    CNOP    0,2

JoyPortLab0:    DC.B    'Port 1',0
JoyPortLab1:    DC.B    'Port 2',0

    CNOP    0,2

topaz8:
    DC.L    topazFName8
    DC.W    8
    DC.B    $00,$01

topazFName8:
    DC.B    'topaz.font',0
    CNOP    0,2

NESWindowTags:
NESL:
    DC.L    $80000064,0
NEST:
    DC.L    $80000065,0
NESW:
    DC.L    $80000066,0
NESH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000374
    DC.L    $8000006B,$0000100E
NESWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,NESWTitle
    DC.L    $8000006F,NESSTitle
NESSC:
    DC.L    $80000070,0
    DC.L    $80000093,1			; En NESWIN
    DC.L    $00000000

NESWTitle:
    DC.B    'AmiNES-Famicom Emulator v0.12ß  (Preview)',0
    CNOP    0,2

NESSTitle:
    DC.B    'AmiNES-Famicom Emulator.  1997 © RED Soft S.L.   (BARCELONA)   SPAIN',0
    CNOP    0,2

ImpErrornewWindowTags:
ImpErrornewL:
    DC.L    $80000064,0
ImpErrornewT:
    DC.L    $80000065,0
ImpErrornewW:
    DC.L    $80000066,0
ImpErrornewH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000644
    DC.L    $8000006B,$0000100E
ImpErrornewWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,ImpErrornewWTitle
    DC.L    $8000006F,ImpErrornewSTitle
ImpErrornewSC:
    DC.L    $80000070,0
    DC.L    $00000000

ImpErrornewWTitle:
    DC.B    'Error...',0
    CNOP    0,2

ImpErrornewSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

HelpPageWindowTags:
HelpPageL:
    DC.L    $80000064,0
HelpPageT:
    DC.L    $80000065,0
HelpPageW:
    DC.L    $80000066,0
HelpPageH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000644
    DC.L    $8000006B,$0000100E
HelpPageWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,HelpPageWTitle
    DC.L    $8000006F,HelpPageSTitle
HelpPageSC:
    DC.L    $80000070,0
    DC.L    $00000000

HelpPageWTitle:
    DC.B    'Help Page',0
    CNOP    0,2

HelpPageSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

AboutWindowTags:
AboutL:
    DC.L    $80000064,0
AboutT:
    DC.L    $80000065,0
AboutW:
    DC.L    $80000066,0
AboutH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000644
    DC.L    $8000006B,$0000100E
AboutWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,AboutWTitle
    DC.L    $8000006F,AboutSTitle
AboutSC:
    DC.L    $80000070,0
    DC.L    $00000000

AboutWTitle:
    DC.B    'About AmiNES-Famicom',0
    CNOP    0,2

AboutSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

MC68020WindowTags:
MC68020L:
    DC.L    $80000064,0
MC68020T:
    DC.L    $80000065,0
MC68020W:
    DC.L    $80000066,0
MC68020H:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000244
    DC.L    $8000006B,$00001006
MC68020WG:
    DC.L    $8000006C,0
    DC.L    $8000006E,MC68020WTitle
    DC.L    $8000006F,MC68020STitle
MC68020SC:
    DC.L    $80000070,0
    DC.L    $00000000

MC68020WTitle:
    DC.B    'AmiNES-Famicom error',0
    CNOP    0,2

MC68020STitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

OverwriteWindowTags:
OverwriteL:
    DC.L    $80000064,0
OverwriteT:
    DC.L    $80000065,0
OverwriteW:
    DC.L    $80000066,0
OverwriteH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000244
    DC.L    $8000006B,$00001006
OverwriteWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,OverwriteWTitle
    DC.L    $8000006F,OverwriteSTitle
OverwriteSC:
    DC.L    $80000070,0
    DC.L    $00000000

OverwriteWTitle:
    DC.B    'AmiNES-Famicom request',0
    CNOP    0,2

OverwriteSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

QuitWindowTags:
QuitL:
    DC.L    $80000064,0
QuitT:
    DC.L    $80000065,0
QuitW:
    DC.L    $80000066,0
QuitH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000244
    DC.L    $8000006B,$00001006
QuitWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,QuitWTitle
    DC.L    $8000006F,QuitSTitle
QuitSC:
    DC.L    $80000070,0
    DC.L    $00000000

QuitWTitle:
    DC.B    'AmiNES-Famicom Request',0
    CNOP    0,2

QuitSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

CheatWindowTags:
CheatL:
    DC.L    $80000064,0
CheatT:
    DC.L    $80000065,0
CheatW:
    DC.L    $80000066,0
CheatH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000244
    DC.L    $8000006B,$0000100E
CheatWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,CheatWTitle
    DC.L    $8000006F,CheatSTitle
CheatSC:
    DC.L    $80000070,0
    DC.L    $00000000

CheatWTitle:
    DC.B    'Cheat mode.',0
    CNOP    0,2

CheatSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

ImpErrorWindowTags:
ImpErrorL:
    DC.L    $80000064,0
ImpErrorT:
    DC.L    $80000065,0
ImpErrorW:
    DC.L    $80000066,0
ImpErrorH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000644
    DC.L    $8000006B,$0000100E
ImpErrorWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,ImpErrorWTitle
    DC.L    $8000006F,ImpErrorSTitle
ImpErrorSC:
    DC.L    $80000070,0
    DC.L    $00000000

ImpErrorWTitle:
    DC.B    'Error...',0
    CNOP    0,2

ImpErrorSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

AddressWindowTags:
AddressL:
    DC.L    $80000064,0
AddressT:
    DC.L    $80000065,0
AddressW:
    DC.L    $80000066,0
AddressH:
    DC.L    $80000067,0
    DC.L    $8000006A,$00000244
    DC.L    $8000006B,$0000100E
AddressWG:
    DC.L    $8000006C,0
    DC.L    $8000006E,AddressWTitle
    DC.L    $8000006F,AddressSTitle
AddressSC:
    DC.L    $80000070,0
    DC.L    $00000000

AddressWTitle:
    DC.B    'AmiNES-Famicom Emulator address.',0
    CNOP    0,2

AddressSTitle:
    DC.B    'AmiNES-Famicom Emulator.',0
    CNOP    0,2

NESText0:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    446,34
    DC.L    topaz8
    DC.L    NESIText0
    DC.L    NESText1

NESText1:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    413,69
    DC.L    topaz8
    DC.L    NESIText1
    DC.L    NESText2

NESText2:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    387,45
    DC.L    topaz8
    DC.L    NESIText2
    DC.L    NESText3

NESText3:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    395,11
    DC.L    topaz8
    DC.L    NESIText3
    DC.L    NESText4

NESText4:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    37,69
    DC.L    topaz8
    DC.L    NESIText4
    DC.L    NESText5

NESText5:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    421,22
    DC.L    topaz8
    DC.L    NESIText5
    DC.L    NESText6

NESText6:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    408,133
    DC.L    topaz8
    DC.L    NESIText6
    DC.L    NESText7

NESText7:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    84,132
    DC.L    topaz8
    DC.L    NESIText7
    DC.L    NESText8

NESText8:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    38,99
    DC.L    topaz8
    DC.L    NESIText8
    DC.L    NESText9

NESText9:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    38,115
    DC.L    topaz8
    DC.L    NESIText9
    DC.L    NESText10

NESText10:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    101,99
    DC.L    topaz8
    DC.L    NESIText10
    DC.L    NESText11

NESText11:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    156,99
    DC.L    topaz8
    DC.L    NESIText11
    DC.L    NESText12

NESText12:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    253,99
    DC.L    topaz8
    DC.L    NESIText12
    DC.L    NESText13

NESText13:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    350,99
    DC.L    topaz8
    DC.L    NESIText13
    DC.L    NESText14

NESText14:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    125,115
    DC.L    topaz8
    DC.L    NESIText14
    DC.L    NESText15

NESText15:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    245,115
    DC.L    topaz8
    DC.L    NESIText15
    DC.L    NESText16

NESText16:
    DC.B    1,0
    DC.B    $01
    DC.B    0
    DC.W    350,115
    DC.L    topaz8
    DC.L    NESIText16
    DC.L    NESText17

NESText17:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    111,83
    DC.L    topaz8
    DC.L    NESIText17
    DC.L    0

ImpErrornewText0:
    DC.B    4,0
    DC.B    $01
    DC.B    0
    DC.W    18,10
    DC.L    topaz8
    DC.L    ImpErrornewIText0
    DC.L    ImpErrornewText1

ImpErrornewText1:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    18,22
    DC.L    topaz8
    DC.L    ImpErrornewIText1
    DC.L    0

HelpPageText0:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    23,3
    DC.L    topaz8
    DC.L    HelpPageIText0
    DC.L    HelpPageText1

HelpPageText1:
    DC.B    2,0
    DC.B    $00
    DC.B    0
    DC.W    84,19
    DC.L    topaz8
    DC.L    HelpPageIText1
    DC.L    HelpPageText2

HelpPageText2:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    84,29
    DC.L    topaz8
    DC.L    HelpPageIText2
    DC.L    HelpPageText3

HelpPageText3:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    28,39
    DC.L    topaz8
    DC.L    HelpPageIText3
    DC.L    HelpPageText4

HelpPageText4:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    44,49
    DC.L    topaz8
    DC.L    HelpPageIText4
    DC.L    HelpPageText5

HelpPageText5:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    28,59
    DC.L    topaz8
    DC.L    HelpPageIText5
    DC.L    HelpPageText6

HelpPageText6:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    264,4
    DC.L    topaz8
    DC.L    HelpPageIText6
    DC.L    HelpPageText7

HelpPageText7:
    DC.B    2,0
    DC.B    $00
    DC.B    0
    DC.W    316,19
    DC.L    topaz8
    DC.L    HelpPageIText7
    DC.L    HelpPageText8

HelpPageText8:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    308,29
    DC.L    topaz8
    DC.L    HelpPageIText8
    DC.L    HelpPageText9

HelpPageText9:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    300,39
    DC.L    topaz8
    DC.L    HelpPageIText9
    DC.L    HelpPageText10

HelpPageText10:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    324,49
    DC.L    topaz8
    DC.L    HelpPageIText10
    DC.L    HelpPageText11

HelpPageText11:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    316,59
    DC.L    topaz8
    DC.L    HelpPageIText11
    DC.L    HelpPageText12

HelpPageText12:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    300,69
    DC.L    topaz8
    DC.L    HelpPageIText12
    DC.L    HelpPageText13

HelpPageText13:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    292,79
    DC.L    topaz8
    DC.L    HelpPageIText13
    DC.L    HelpPageText14

HelpPageText14:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    36,69
    DC.L    topaz8
    DC.L    HelpPageIText14
    DC.L    HelpPageText15

HelpPageText15:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    28,79
    DC.L    topaz8
    DC.L    HelpPageIText15
    DC.L    HelpPageText16

HelpPageText16:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    22,97
    DC.L    topaz8
    DC.L    HelpPageIText16
    DC.L    HelpPageText17

HelpPageText17:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    76,114
    DC.L    topaz8
    DC.L    HelpPageIText17
    DC.L    HelpPageText18

HelpPageText18:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    18,129
    DC.L    topaz8
    DC.L    HelpPageIText18
    DC.L    HelpPageText19

HelpPageText19:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    264,97
    DC.L    topaz8
    DC.L    HelpPageIText19
    DC.L    HelpPageText20

HelpPageText20:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    316,112
    DC.L    topaz8
    DC.L    HelpPageIText20
    DC.L    HelpPageText21

HelpPageText21:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    316,122
    DC.L    topaz8
    DC.L    HelpPageIText21
    DC.L    HelpPageText22

HelpPageText22:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    316,132
    DC.L    topaz8
    DC.L    HelpPageIText22
    DC.L    0

AboutText0:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    27,11
    DC.L    topaz8
    DC.L    AboutIText0
    DC.L    AboutText1

AboutText1:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    52,25
    DC.L    topaz8
    DC.L    AboutIText1
    DC.L    AboutText2

AboutText2:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    24,41
    DC.L    topaz8
    DC.L    AboutIText2
    DC.L    AboutText3

AboutText3:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    44,53
    DC.L    topaz8
    DC.L    AboutIText3
    DC.L    AboutText4

AboutText4:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    64,71
    DC.L    topaz8
    DC.L    AboutIText4
    DC.L    AboutText5

AboutText5:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    98,83
    DC.L    topaz8
    DC.L    AboutIText5
    DC.L    AboutText6

AboutText6:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    69,100
    DC.L    topaz8
    DC.L    AboutIText6
    DC.L    AboutText7

AboutText7:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    56,112
    DC.L    topaz8
    DC.L    AboutIText7
    DC.L    AboutText8

AboutText8:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    22,125
    DC.L    topaz8
    DC.L    AboutIText8
    DC.L    AboutText9

AboutText9:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    51,141
    DC.L    topaz8
    DC.L    AboutIText9
    DC.L    AboutText10

AboutText10:
    DC.B    2,0
    DC.B    $00
    DC.B    0
    DC.W    38,153
    DC.L    topaz8
    DC.L    AboutIText10
    DC.L    0

MC68020Text0:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    33,10
    DC.L    topaz8
    DC.L    MC68020IText0
    DC.L    0

OverwriteText0:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    25,9
    DC.L    topaz8
    DC.L    OverwriteIText0
    DC.L    OverwriteText1

OverwriteText1:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    21,20
    DC.L    topaz8
    DC.L    OverwriteIText1
    DC.L    0

QuitText0:
    DC.B    4,0
    DC.B    $00
    DC.B    0
    DC.W    18,8
    DC.L    topaz8
    DC.L    QuitIText0
    DC.L    0

CheatText0:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    26,5
    DC.L    topaz8
    DC.L    CheatIText0
    DC.L    CheatText1

CheatText1:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    260,5
    DC.L    topaz8
    DC.L    CheatIText1
    DC.L    CheatText2

CheatText2:
    DC.B    7,0
    DC.B    $01
    DC.B    0
    DC.W    26,51
    DC.L    topaz8
    DC.L    CheatIText2
    DC.L    CheatText3

CheatText3:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    21,62
    DC.L    topaz8
    DC.L    CheatIText3
    DC.L    CheatText4

CheatText4:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    21,72
    DC.L    topaz8
    DC.L    CheatIText4
    DC.L    CheatText5

CheatText5:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    21,82
    DC.L    topaz8
    DC.L    CheatIText5
    DC.L    CheatText6

CheatText6:
    DC.B    6,0
    DC.B    $01
    DC.B    0
    DC.W    21,92
    DC.L    topaz8
    DC.L    CheatIText6
    DC.L    0

ImpErrorText0:
    DC.B    4,0
    DC.B    $01
    DC.B    0
    DC.W    18,12
    DC.L    topaz8
    DC.L    ImpErrorIText0
    DC.L    0

AddressText0:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    39,14
    DC.L    topaz8
    DC.L    AddressIText0
    DC.L    AddressText1

AddressText1:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    83,27
    DC.L    topaz8
    DC.L    AddressIText1
    DC.L    AddressText2

AddressText2:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    83,37
    DC.L    topaz8
    DC.L    AddressIText2
    DC.L    AddressText3

AddressText3:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    83,47
    DC.L    topaz8
    DC.L    AddressIText3
    DC.L    AddressText4

AddressText4:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    83,57
    DC.L    topaz8
    DC.L    AddressIText4
    DC.L    AddressText5

AddressText5:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    83,67
    DC.L    topaz8
    DC.L    AddressIText5
    DC.L    AddressText6

AddressText6:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    64,85
    DC.L    topaz8
    DC.L    AddressIText6
    DC.L    AddressText7

AddressText7:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    140,85
    DC.L    topaz8
    DC.L    AddressIText7
    DC.L    AddressText8

AddressText8:
    DC.B    6,0
    DC.B    $00
    DC.B    0
    DC.W    101,104
    DC.L    topaz8
    DC.L    AddressIText8
    DC.L    AddressText9

AddressText9:
    DC.B    7,0
    DC.B    $00
    DC.B    0
    DC.W    94,119
    DC.L    topaz8
    DC.L    AddressIText9
    DC.L    0

NESIText0:
    DC.B    'Written by:',0

NESIText1:
    DC.B    ' Screen Options ',0

NESIText2:
    DC.B    'Juan Antonio Gómez Gálvez',0

NESIText3:
    DC.B    'AmiNES-Famicom Emulator',0

NESIText4:
    DC.B    ' Cartridge ',0

NESIText5:
    DC.B    '(Preview version)',0

NESIText6:
    DC.B    ' Joy-Control ',0

NESIText7:
    DC.B    ' Emulation Speed ',0

NESIText8:
    DC.B    'Mapper:   ROM:       VROM:       Batt:',0

NESIText9:
    DC.B    'Mirroring:      4-Screen:     Trainer:',0

NESIText10:
    DC.B    '-',0

NESIText11:
    DC.B    '-----',0

NESIText12:
    DC.B    '-----',0

NESIText13:
    DC.B    '---',0

NESIText14:
    DC.B    '----',0

NESIText15:
    DC.B    '---',0

NESIText16:
    DC.B    '---',0

NESIText17:
    DC.B    'No Cartridge Inserted!           ',0

    CNOP    0,2

ImpErrornewIText0:
    DC.B    'A',0

ImpErrornewIText1:
    DC.B    'B',0

    CNOP    0,2

HelpPageIText0:
    DC.B    ' Keyboard ',0

HelpPageIText1:
    DC.B    'ESC = Exit to menu',0

HelpPageIText2:
    DC.B    'Del = Select',0

HelpPageIText3:
    DC.B    'Help/Enter = Start',0

HelpPageIText4:
    DC.B    'Left Alt = B Button',0

HelpPageIText5:
    DC.B    'Left Amiga = A Button',0

HelpPageIText6:
    DC.B    ' CD32 Joypad ',0

HelpPageIText7:
    DC.B    'Play = Exit to menu',0

HelpPageIText8:
    DC.B    'Green = Select',0

HelpPageIText9:
    DC.B    'Yellow = Start',0

HelpPageIText10:
    DC.B    'Red = B Button',0

HelpPageIText11:
    DC.B    'Blue = A Button',0

HelpPageIText12:
    DC.B    'Reward = B Button',0

HelpPageIText13:
    DC.B    'Forward = A Button',0

HelpPageIText14:
    DC.B    'Space Bar = B Button',0

HelpPageIText15:
    DC.B    'Left Shift = A Button',0

HelpPageIText16:
    DC.B    ' Amiga Joystick ',0

HelpPageIText17:
    DC.B    'Fire = A Button',0

HelpPageIText18:
    DC.B    '(Keyboard is always active)',0

HelpPageIText19:
    DC.B    ' Standard Joypad ',0

HelpPageIText20:
    DC.B    'Fire #1 = A Button',0

HelpPageIText21:
    DC.B    'Fire #2 = B Button',0

HelpPageIText22:
    DC.B    'Fire #3 = Start',0

    CNOP    0,2

AboutIText0:
    DC.B    'AmiNES-Famicom Emulator v0.12ß',0

AboutIText1:
    DC.B    '(August 30th, 1997)',0

AboutIText2:
    DC.B    'Main Program & Emulation Systems:',0

AboutIText3:
    DC.B    'Juan Antonio Gómez Gálvez',0

AboutIText4:
    DC.B    'Web and Menu Graphics:',0

AboutIText5:
    DC.B    'Multivac',0

AboutIText6:
    DC.B    'Developed using:',0

AboutIText7:
    DC.B    'Devpac III  © HiSoft',0

AboutIText8:
    DC.B    'GadToolsBox  © Java Development',0

AboutIText9:
    DC.B    'This program is freeware!',0

AboutIText10:
    DC.B    'Only Amiga makes it possible!',0

    CNOP    0,2

MC68020IText0:
    DC.B    'MC68020+ and AGA required!',0

    CNOP    0,2

OverwriteIText0:
    DC.B    'This file already exists!',0

OverwriteIText1:
    DC.B    'Are you sure to overwrite?',0

    CNOP    0,2

QuitIText0:
    DC.B    'Are you sure to Quit?',0

    CNOP    0,2

CheatIText0:
    DC.B    ' Poke ',0

CheatIText1:
    DC.B    ' Find Poke ',0

CheatIText2:
    DC.B    ' Address found ',0

CheatIText3:
    DC.B    '                                               ',0

CheatIText4:
    DC.B    '                                               ',0

CheatIText5:
    DC.B    '                                               ',0

CheatIText6:
    DC.B    '                                               ',0

    CNOP    0,2

ImpErrorIText0:
    DC.B    '                              ',0

    CNOP    0,2

AddressIText0:
    DC.B    'To contact with the author write to:',0

AddressIText1:
    DC.B    'Juan Antonio Gómez',0

AddressIText2:
    DC.B    'Apdo: 275',0

AddressIText3:
    DC.B    '08940 Cornellŕ de Llobregat',0

AddressIText4:
    DC.B    'BARCELONA',0

AddressIText5:
    DC.B    'SPAIN',0

AddressIText6:
    DC.B    'e-mail:',0

AddressIText7:
    DC.B    'joanant@arrakis.es',0

AddressIText8:
    DC.B    'AmiEmuls Home-Page:',0

AddressIText9:
    DC.B    'Available comig soon!',0

    CNOP    0,2

NESNewMenu0:
    DC.B    1,0
    DC.L    NESMName0
    DC.L    0
    DC.W    0
    DC.L    0,0

NESNewMenu1:
    DC.B    2,0
    DC.L    NESMName1
    DC.L    NESMComm1
    DC.W    0
    DC.L    0,0

NESNewMenu2:
    DC.B    2,0
    DC.L    NESMName2
    DC.L    NESMComm2
    DC.W    0
    DC.L    0,0

NESNewMenu3:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu4:
    DC.B    2,0
    DC.L    NESMName4
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu5:
    DC.B    3,0
    DC.L    NESMName5
    DC.L    NESMComm5
    DC.W    0
    DC.L    0,0

NESNewMenu6:
    DC.B    3,0
    DC.L    NESMName6
    DC.L    NESMComm6
    DC.W    0
    DC.L    0,0

NESNewMenu7:
    DC.B    2,0
    DC.L    NESMName7
    DC.L    NESMComm7
    DC.W    $0010
    DC.L    0,0

NESNewMenu8:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu9:
    DC.B    2,0
    DC.L    NESMName9
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu10:
    DC.B    3,0
    DC.L    NESMName10
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu11:
    DC.B    3,0
    DC.L    NESMName11
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu12:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu13:
    DC.B    2,0
    DC.L    NESMName13
    DC.L    NESMComm13
    DC.W    0
    DC.L    0,0

NESNewMenu14:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu15:
    DC.B    2,0
    DC.L    NESMName15
    DC.L    NESMComm15
    DC.W    0
    DC.L    0,0

NESNewMenu16:
    DC.B    1,0
    DC.L    NESMName16
    DC.L    0
    DC.W    0
    DC.L    0,0

NESNewMenu17:
    DC.B    2,0
    DC.L    NESMName17
    DC.L    NESMComm17
    DC.W    0
    DC.L    0,0

NESNewMenu18:
    DC.B    2,0
    DC.L    NESMName18
    DC.L    NESMComm18
    DC.W    0
    DC.L    0,0

NESNewMenu19:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu20:
    DC.B    2,0
    DC.L    NESMName20
    DC.L    NESMComm20
    DC.W    $0010
    DC.L    0,0

NESNewMenu21:
    DC.B    2,0
    DC.L    NESMName21
    DC.L    NESMComm21
    DC.W    $0010
    DC.L    0,0

NESNewMenu22:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu23:
    DC.B    2,0
    DC.L    NESMName23
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu24:
    DC.B    2,0
    DC.L    NESMName24
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu25:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu26:
    DC.B    2,0
    DC.L    NESMName26
    DC.L    0
    DC.W    $0010
    DC.L    0,0

NESNewMenu27:
    DC.B    1,0
    DC.L    NESMName27
    DC.L    0
    DC.W    0
    DC.L    0,0

NESNewMenu28:
    DC.B    2,0
    DC.L    NESMName28
    DC.L    NESMComm28
    DC.W    $0019
    DC.L    0,0

NESNewMenu29:
    DC.B    2,0
    DC.L    NESMName29
    DC.L    NESMComm29
    DC.W    $0019
    DC.L    0,0

NESNewMenu30:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu31:
    DC.B    2,0
    DC.L    NESMName31
    DC.L    0
    DC.W    $0019
    DC.L    0,0

NESNewMenu32:
    DC.B    2,0
    DC.L    NESMName32
    DC.L    0
    DC.W    $0019
    DC.L    0,0

NESNewMenu33:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu34:
    DC.B    2,0
    DC.L    NESMName34
    DC.L    0
    DC.W    $0019
    DC.L    0,0

NESNewMenu35:
    DC.B    2,0
    DC.L    NESMName35
    DC.L    0
    DC.W    $0019
    DC.L    0,0

NESNewMenu36:
    DC.B    2,0
    DC.L    $FFFFFFFF,0
    DC.W    0
    DC.L    0,0

NESNewMenu37:
    DC.B    2,0
    DC.L    NESMName37
    DC.L    NESMComm37
    DC.W    $0019
    DC.L    0,0

NESNewMenu38:
    DC.B    2,0
    DC.L    NESMName38
    DC.L    0
    DC.W    $0019
    DC.L    0,0

    DC.B    0,0
    DC.L    0,0
    DC.W    0
    DC.L    0,0

NESMName0:
    DC.B    'Project   ',0

NESMName1:
    DC.B    'About',0

NESMComm1:
    DC.B    'A',0

NESMName2:
    DC.B    'Help Page',0

NESMComm2:
    DC.B    'H',0

NESMName4:
    DC.B    'Menu Screen',0

NESMName5:
    DC.B    'Set PAL  (50Hz)',0

NESMComm5:
    DC.B    '5',0

NESMName6:
    DC.B    'Set NTSC (60Hz)',0

NESMComm6:
    DC.B    '6',0

NESMName7:
    DC.B    'Cheat mode',0

NESMComm7:
    DC.B    'C',0

NESMName9:
    DC.B    'Save VRAM',0

NESMName10:
    DC.B    'Screen',0

NESMName11:
    DC.B    'Sprites',0

NESMName13:
    DC.B    'Save Prefs',0

NESMComm13:
    DC.B    'P',0

NESMName15:
    DC.B    'Quit',0

NESMComm15:
    DC.B    'Q',0

NESMName16:
    DC.B    'Cartridges  ',0

NESMName17:
    DC.B    'Insert Cartridge',0

NESMComm17:
    DC.B    'I',0

NESMName18:
    DC.B    'Eject  Cartridge',0

NESMComm18:
    DC.B    'E',0

NESMName20:
    DC.B    'Load Frozen',0

NESMComm20:
    DC.B    'L',0

NESMName21:
    DC.B    'Save Frozen',0

NESMComm21:
    DC.B    'S',0

NESMName23:
    DC.B    'Load RAM-Battery',0

NESMName24:
    DC.B    'Save RAM-Battery',0

NESMName26:
    DC.B    'Clear RAM-Battery',0

NESMName27:
    DC.B    'Options  ',0

NESMName28:
    DC.B    'JoyStick 2 ON',0

NESMComm28:
    DC.B    'J',0

NESMName29:
    DC.B    'Swap JoyPorts',0

NESMComm29:
    DC.B    'X',0

NESMName31:
    DC.B    'Black Border',0

NESMName32:
    DC.B    'No illogical moves',0

NESMName34:
    DC.B    'Auto-Load Battery',0

NESMName35:
    DC.B    'Auto-Save Battery',0

NESMName37:
    DC.B    'Ask for Reset',0

NESMComm37:
    DC.B    'R',0

NESMName38:
    DC.B    'Overwrite',0

    CNOP    0,2

ScreenColors:
    DC.W     0,$0A,$0A,$0A
    DC.W     1,$00,$00,$00
    DC.W     2,$0F,$0F,$0F
    DC.W     3,$06,$08,$0B
    DC.W     4,$0B,$04,$05
    DC.W     5,$05,$0D,$05
    DC.W     6,$00,$04,$0D
    DC.W     7,$08,$02,$0C
    DC.W    $FFFF,$00,$00,$00

DriPens:
    DC.W    0,1,1,2,1,3,5,0,6,1,2,1,$FFFF

ScreenTags:
    DC.L    $80000021,0
    DC.L    $80000022,0
    DC.L    $80000023,640
    DC.L    $80000024,212
    DC.L    $80000025,3
    DC.L    $80000029,ScreenColors
    DC.L    $8000002B,topaz8
    DC.L    $8000002D,$0000000F
    DC.L    $80000032,$00029000
    DC.L    $8000003A,DriPens
    DC.L    $80000028,SCT
    DC.L    $00000000

SCT:
    DC.B    'AmiNES-Famicom Emulator Screen.',0
    CNOP    0,2

SetupScreen
    movem.l d1-d3/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   ScreenTags,a1
    jsr     OpenScreenTagList(a6)
    move.l  d0,Scr
    tst.l   d0
    beq     SError
    move.l  Scr,a0
    move.l  _GadToolsBase,a6
    lea.l   TD,a1
    jsr     GetVisualInfoA(a6)
    move.l  d0,VisualInfo
    tst.l   d0
    beq     VError
    moveq   #0,d0
SDone:
    movem.l (sp)+,d1-d3/a0-a2/a6
    rts
SError:
    moveq   #1,d0
    bra.s   SDone
VError:
    moveq   #2,d0
    bra.s   SDone

CloseDownScreen:
    movem.l d0-d1/a0-a1/a6,-(sp)
    move.l  _GadToolsBase,a6
    move.l  VisualInfo,a0
    cmpa.l  #0,a0
    beq.s   NoVis
    jsr     FreeVisualInfo(a6)
    move.l  #0,VisualInfo
NoVis:
    move.l  _IntuitionBase,a6
    move.l  Scr,a0
    cmpa.l  #0,a0
    beq.s   NoScr
    jsr     CloseScreen(a6)
    move.l  #0,Scr
NoScr:
    movem.l (sp)+,d0-d1/a0-a1/a6
    rts

NESRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  NESWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  NESWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #96,d0
    add.w   d4,d0
    move.w  #97,d1
    add.w   d5,d1
    move.w  #18,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #344,d0
    add.w   d4,d0
    move.w  #97,d1
    add.w   d5,d1
    move.w  #35,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #240,d0
    add.w   d4,d0
    move.w  #113,d1
    add.w   d5,d1
    move.w  #33,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #344,d0
    add.w   d4,d0
    move.w  #113,d1
    add.w   d5,d1
    move.w  #35,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #248,d0
    add.w   d4,d0
    move.w  #97,d1
    add.w   d5,d1
    move.w  #49,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #152,d0
    add.w   d4,d0
    move.w  #97,d1
    add.w   d5,d1
    move.w  #49,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #120,d0
    add.w   d4,d0
    move.w  #113,d1
    add.w   d5,d1
    move.w  #41,d2
    move.w  #12,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #546,d0
    add.w   d4,d0
    move.w  #139,d1
    add.w   d5,d1
    move.w  #51,d2
    move.w  #18,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #105,d0
    add.w   d4,d0
    move.w  #80,d1
    add.w   d5,d1
    move.w  #274,d2
    move.w  #13,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #26,d0
    add.w   d4,d0
    move.w  #136,d1
    add.w   d5,d1
    move.w  #257,d2
    move.w  #24,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #24,d0
    add.w   d4,d0
    move.w  #135,d1
    add.w   d5,d1
    move.w  #261,d2
    move.w  #26,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #298,d0
    add.w   d4,d0
    move.w  #136,d1
    add.w   d5,d1
    move.w  #307,d2
    move.w  #24,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #296,d0
    add.w   d4,d0
    move.w  #135,d1
    add.w   d5,d1
    move.w  #311,d2
    move.w  #26,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #402,d0
    add.w   d4,d0
    move.w  #73,d1
    add.w   d5,d1
    move.w  #203,d2
    move.w  #56,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #400,d0
    add.w   d4,d0
    move.w  #72,d1
    add.w   d5,d1
    move.w  #207,d2
    move.w  #58,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #364,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #247,d2
    move.w  #55,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #368,d0
    add.w   d4,d0
    move.w  #6,d1
    add.w   d5,d1
    move.w  #239,d2
    move.w  #51,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #20,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #333,d2
    move.w  #55,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #26,d0
    add.w   d4,d0
    move.w  #73,d1
    add.w   d5,d1
    move.w  #362,d2
    move.w  #56,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #24,d0
    add.w   d4,d0
    move.w  #72,d1
    add.w   d5,d1
    move.w  #366,d2
    move.w  #58,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #63,d1
    add.w   d5,d1
    move.w  #613,d2
    move.w  #105,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #13,d0
    add.w   d4,d0
    move.w  #65,d1
    add.w   d5,d1
    move.w  #605,d2
    move.w  #101,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  NESWnd,a0
    move.l  50(a0),a0
    lea.l   NESText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenNESWindow

OpenNESWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   NESGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     NESCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   NESGTags,a4
NESGL:
    move.l  _SysBase,a6
    lea.l   NESNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   NESGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    NESCOK
    movem.w (sp)+,d2-d3
    bra     NESGError
NESCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   NESGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
NESTL:
    tst.l   (a4)
    beq.s   NESDN
    addq.w  #8,a4
    bra.s   NESTL
NESDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #NES_CNT,d3
    bmi     NESGL
    movem.w (sp)+,d2-d3
    move.l  NESGList,NESWG+4
    move.l  _GadToolsBase,a6
    lea.l   NESNewMenu0,a0
    lea.l   MTags0,a1
    jsr     CreateMenusA(a6)
    move.l  d0,NESMenus
    tst.l   d0
    beq     NESMError
    move.l  d0,a0
    move.l  VisualInfo,a1
    lea.l   MTags1,a2
    jsr     LayoutMenusA(a6)
    move.l  Scr,NESSC+4
    moveq   #0,d0
    move.w  NESLeft,d0
    move.l  d0,NESL+4
    move.w  NESTop,d0
    move.l  d0,NEST+4
    move.w  NESWidth,d0
    move.l  d0,NESW+4
    move.w  NESHeight,d0
    add.w   d3,d0
    move.l  d0,NESH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   NESWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,NESWnd
    tst.l   d0
    beq     NESWError
    move.l   NESWnd,a0
    move.l   NESMenus,a1
    jsr      SetMenuStrip(a6)
    move.l  _GadToolsBase,a6
    move.l  NESWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     NESRender
    moveq   #0,d0
NESDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
NESCError:
    moveq   #1,d0
    bra.s   NESDone
NESGError:
    moveq   #2,d0
    bra.s   NESDone
NESMError:
    moveq   #3,d0
    bra.s   NESDone
NESWError:
    moveq   #4,d0
    bra.s   NESDone

CloseNESWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l   _IntuitionBase,a6
    move.l   NESMenus,a0
    cmpa.l   #0,a0
    beq      NESNMenu
    move.l   NESWnd,a0
    jsr      ClearMenuStrip(a6)
    move.l   _GadToolsBase,a6
    move.l   NESMenus,a0
    jsr      FreeMenus(a6)
    move.l   #0,NESMenus
NESNMenu:
    move.l  _IntuitionBase,a6
    move.l  NESWnd,a0
    cmpa.l  #0,a0
    beq     NESNWnd
    jsr     CloseWindow(a6)
    move.l  #0,NESWnd
NESNWnd:
    move.l  _GadToolsBase,a6
    move.l  NESGList,a0
    cmpa.l  #0,a0
    beq     NESNGad
    jsr     FreeGadgets(a6)
    move.l  #0,NESGList
NESNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

ImpErrornewRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  ImpErrornewWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  ImpErrornewWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #288,d2
    move.w  #32,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #7,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #292,d2
    move.w  #34,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  ImpErrornewWnd,a0
    move.l  50(a0),a0
    lea.l   ImpErrornewText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenImpErrornewWindow

OpenImpErrornewWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   ImpErrornewGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     ImpErrornewCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   ImpErrornewGTags,a4
ImpErrornewGL:
    move.l  _SysBase,a6
    lea.l   ImpErrornewNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   ImpErrornewGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    ImpErrornewCOK
    movem.w (sp)+,d2-d3
    bra     ImpErrornewGError
ImpErrornewCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   ImpErrornewGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
ImpErrornewTL:
    tst.l   (a4)
    beq.s   ImpErrornewDN
    addq.w  #8,a4
    bra.s   ImpErrornewTL
ImpErrornewDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #ImpErrornew_CNT,d3
    bmi     ImpErrornewGL
    movem.w (sp)+,d2-d3
    move.l  ImpErrornewGList,ImpErrornewWG+4
    move.l  Scr,ImpErrornewSC+4
    moveq   #0,d0
    move.w  ImpErrornewLeft,d0
    move.l  d0,ImpErrornewL+4
    move.w  ImpErrornewTop,d0
    move.l  d0,ImpErrornewT+4
    move.w  ImpErrornewWidth,d0
    move.l  d0,ImpErrornewW+4
    move.w  ImpErrornewHeight,d0
    add.w   d3,d0
    move.l  d0,ImpErrornewH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   ImpErrornewWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,ImpErrornewWnd
    tst.l   d0
    beq     ImpErrornewWError
    move.l  _GadToolsBase,a6
    move.l  ImpErrornewWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     ImpErrornewRender
    moveq   #0,d0
ImpErrornewDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
ImpErrornewCError:
    moveq   #1,d0
    bra.s   ImpErrornewDone
ImpErrornewGError:
    moveq   #2,d0
    bra.s   ImpErrornewDone
ImpErrornewWError:
    moveq   #4,d0
    bra.s   ImpErrornewDone

CloseImpErrornewWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  ImpErrornewWnd,a0
    cmpa.l  #0,a0
    beq     ImpErrornewNWnd
    jsr     CloseWindow(a6)
    move.l  #0,ImpErrornewWnd
ImpErrornewNWnd:
    move.l  _GadToolsBase,a6
    move.l  ImpErrornewGList,a0
    cmpa.l  #0,a0
    beq     ImpErrornewNGad
    jsr     FreeGadgets(a6)
    move.l  #0,ImpErrornewGList
ImpErrornewNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

HelpPageRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  HelpPageWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  HelpPageWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #253,d0
    add.w   d4,d0
    move.w  #101,d1
    add.w   d5,d1
    move.w  #227,d2
    move.w  #44,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #12,d0
    add.w   d4,d0
    move.w  #101,d1
    add.w   d5,d1
    move.w  #228,d2
    move.w  #44,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #251,d0
    add.w   d4,d0
    move.w  #100,d1
    add.w   d5,d1
    move.w  #231,d2
    move.w  #46,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #10,d0
    add.w   d4,d0
    move.w  #100,d1
    add.w   d5,d1
    move.w  #232,d2
    move.w  #46,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #252,d0
    add.w   d4,d0
    move.w  #7,d1
    add.w   d5,d1
    move.w  #228,d2
    move.w  #86,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #11,d0
    add.w   d4,d0
    move.w  #7,d1
    add.w   d5,d1
    move.w  #229,d2
    move.w  #86,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #250,d0
    add.w   d4,d0
    move.w  #6,d1
    add.w   d5,d1
    move.w  #232,d2
    move.w  #88,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #6,d1
    add.w   d5,d1
    move.w  #233,d2
    move.w  #88,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  HelpPageWnd,a0
    move.l  50(a0),a0
    lea.l   HelpPageText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenHelpPageWindow

OpenHelpPageWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   HelpPageGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     HelpPageCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   HelpPageGTags,a4
HelpPageGL:
    move.l  _SysBase,a6
    lea.l   HelpPageNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   HelpPageGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    HelpPageCOK
    movem.w (sp)+,d2-d3
    bra     HelpPageGError
HelpPageCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   HelpPageGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
HelpPageTL:
    tst.l   (a4)
    beq.s   HelpPageDN
    addq.w  #8,a4
    bra.s   HelpPageTL
HelpPageDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #HelpPage_CNT,d3
    bmi     HelpPageGL
    movem.w (sp)+,d2-d3
    move.l  HelpPageGList,HelpPageWG+4
    move.l  Scr,HelpPageSC+4
    moveq   #0,d0
    move.w  HelpPageLeft,d0
    move.l  d0,HelpPageL+4
    move.w  HelpPageTop,d0
    move.l  d0,HelpPageT+4
    move.w  HelpPageWidth,d0
    move.l  d0,HelpPageW+4
    move.w  HelpPageHeight,d0
    add.w   d3,d0
    move.l  d0,HelpPageH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   HelpPageWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,HelpPageWnd
    tst.l   d0
    beq     HelpPageWError
    move.l  _GadToolsBase,a6
    move.l  HelpPageWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     HelpPageRender
    moveq   #0,d0
HelpPageDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
HelpPageCError:
    moveq   #1,d0
    bra.s   HelpPageDone
HelpPageGError:
    moveq   #2,d0
    bra.s   HelpPageDone
HelpPageWError:
    moveq   #4,d0
    bra.s   HelpPageDone

CloseHelpPageWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  HelpPageWnd,a0
    cmpa.l  #0,a0
    beq     HelpPageNWnd
    jsr     CloseWindow(a6)
    move.l  #0,HelpPageWnd
HelpPageNWnd:
    move.l  _GadToolsBase,a6
    move.l  HelpPageGList,a0
    cmpa.l  #0,a0
    beq     HelpPageNGad
    jsr     FreeGadgets(a6)
    move.l  #0,HelpPageGList
HelpPageNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

AboutRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  AboutWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  AboutWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #11,d0
    add.w   d4,d0
    move.w  #5,d1
    add.w   d5,d1
    move.w  #302,d2
    move.w  #160,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #306,d2
    move.w  #162,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  AboutWnd,a0
    move.l  50(a0),a0
    lea.l   AboutText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenAboutWindow

OpenAboutWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   AboutGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     AboutCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   AboutGTags,a4
AboutGL:
    move.l  _SysBase,a6
    lea.l   AboutNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   AboutGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    AboutCOK
    movem.w (sp)+,d2-d3
    bra     AboutGError
AboutCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   AboutGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
AboutTL:
    tst.l   (a4)
    beq.s   AboutDN
    addq.w  #8,a4
    bra.s   AboutTL
AboutDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #About_CNT,d3
    bmi     AboutGL
    movem.w (sp)+,d2-d3
    move.l  AboutGList,AboutWG+4
    move.l  Scr,AboutSC+4
    moveq   #0,d0
    move.w  AboutLeft,d0
    move.l  d0,AboutL+4
    move.w  AboutTop,d0
    move.l  d0,AboutT+4
    move.w  AboutWidth,d0
    move.l  d0,AboutW+4
    move.w  AboutHeight,d0
    add.w   d3,d0
    move.l  d0,AboutH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   AboutWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,AboutWnd
    tst.l   d0
    beq     AboutWError
    move.l  _GadToolsBase,a6
    move.l  AboutWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     AboutRender
    moveq   #0,d0
AboutDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
AboutCError:
    moveq   #1,d0
    bra.s   AboutDone
AboutGError:
    moveq   #2,d0
    bra.s   AboutDone
AboutWError:
    moveq   #4,d0
    bra.s   AboutDone

CloseAboutWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  AboutWnd,a0
    cmpa.l  #0,a0
    beq     AboutNWnd
    jsr     CloseWindow(a6)
    move.l  #0,AboutWnd
AboutNWnd:
    move.l  _GadToolsBase,a6
    move.l  AboutGList,a0
    cmpa.l  #0,a0
    beq     AboutNGad
    jsr     FreeGadgets(a6)
    move.l  #0,AboutGList
AboutNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

MC68020Render:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  MC68020Wnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  MC68020Wnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #8,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #258,d2
    move.w  #20,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #6,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #262,d2
    move.w  #22,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  MC68020Wnd,a0
    move.l  50(a0),a0
    lea.l   MC68020Text0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenMC68020Window

OpenMC68020Window:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   MC68020GList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     MC68020CError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   MC68020GTags,a4
MC68020GL:
    move.l  _SysBase,a6
    lea.l   MC68020NGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   MC68020GTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    MC68020COK
    movem.w (sp)+,d2-d3
    bra     MC68020GError
MC68020COK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   MC68020Gadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
MC68020TL:
    tst.l   (a4)
    beq.s   MC68020DN
    addq.w  #8,a4
    bra.s   MC68020TL
MC68020DN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #MC68020_CNT,d3
    bmi     MC68020GL
    movem.w (sp)+,d2-d3
    move.l  MC68020GList,MC68020WG+4
    move.l  Scr,MC68020SC+4
    moveq   #0,d0
    move.w  MC68020Left,d0
    move.l  d0,MC68020L+4
    move.w  MC68020Top,d0
    move.l  d0,MC68020T+4
    move.w  MC68020Width,d0
    move.l  d0,MC68020W+4
    move.w  MC68020Height,d0
    add.w   d3,d0
    move.l  d0,MC68020H+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   MC68020WindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,MC68020Wnd
    tst.l   d0
    beq     MC68020WError
    move.l  _GadToolsBase,a6
    move.l  MC68020Wnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     MC68020Render
    moveq   #0,d0
MC68020Done:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
MC68020CError:
    moveq   #1,d0
    bra.s   MC68020Done
MC68020GError:
    moveq   #2,d0
    bra.s   MC68020Done
MC68020WError:
    moveq   #4,d0
    bra.s   MC68020Done

CloseMC68020Window:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  MC68020Wnd,a0
    cmpa.l  #0,a0
    beq     MC68020NWnd
    jsr     CloseWindow(a6)
    move.l  #0,MC68020Wnd
MC68020NWnd:
    move.l  _GadToolsBase,a6
    move.l  MC68020GList,a0
    cmpa.l  #0,a0
    beq     MC68020NGad
    jsr     FreeGadgets(a6)
    move.l  #0,MC68020GList
MC68020NGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

OverwriteRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  OverwriteWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  OverwriteWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #8,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #234,d2
    move.w  #30,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #10,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #230,d2
    move.w  #28,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  OverwriteWnd,a0
    move.l  50(a0),a0
    lea.l   OverwriteText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenOverwriteWindow

OpenOverwriteWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   OverwriteGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     OverwriteCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   OverwriteGTags,a4
OverwriteGL:
    move.l  _SysBase,a6
    lea.l   OverwriteNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   OverwriteGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    OverwriteCOK
    movem.w (sp)+,d2-d3
    bra     OverwriteGError
OverwriteCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   OverwriteGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
OverwriteTL:
    tst.l   (a4)
    beq.s   OverwriteDN
    addq.w  #8,a4
    bra.s   OverwriteTL
OverwriteDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Overwrite_CNT,d3
    bmi     OverwriteGL
    movem.w (sp)+,d2-d3
    move.l  OverwriteGList,OverwriteWG+4
    move.l  Scr,OverwriteSC+4
    moveq   #0,d0
    move.w  OverwriteLeft,d0
    move.l  d0,OverwriteL+4
    move.w  OverwriteTop,d0
    move.l  d0,OverwriteT+4
    move.w  OverwriteWidth,d0
    move.l  d0,OverwriteW+4
    move.w  OverwriteHeight,d0
    add.w   d3,d0
    move.l  d0,OverwriteH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   OverwriteWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,OverwriteWnd
    tst.l   d0
    beq     OverwriteWError
    move.l  _GadToolsBase,a6
    move.l  OverwriteWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     OverwriteRender
    moveq   #0,d0
OverwriteDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
OverwriteCError:
    moveq   #1,d0
    bra.s   OverwriteDone
OverwriteGError:
    moveq   #2,d0
    bra.s   OverwriteDone
OverwriteWError:
    moveq   #4,d0
    bra.s   OverwriteDone

CloseOverwriteWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  OverwriteWnd,a0
    cmpa.l  #0,a0
    beq     OverwriteNWnd
    jsr     CloseWindow(a6)
    move.l  #0,OverwriteWnd
OverwriteNWnd:
    move.l  _GadToolsBase,a6
    move.l  OverwriteGList,a0
    cmpa.l  #0,a0
    beq     OverwriteNGad
    jsr     FreeGadgets(a6)
    move.l  #0,OverwriteGList
OverwriteNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

QuitRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  QuitWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  QuitWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #10,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #183,d2
    move.w  #15,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #8,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #187,d2
    move.w  #17,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  QuitWnd,a0
    move.l  50(a0),a0
    lea.l   QuitText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenQuitWindow

OpenQuitWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   QuitGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     QuitCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   QuitGTags,a4
QuitGL:
    move.l  _SysBase,a6
    lea.l   QuitNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   QuitGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    QuitCOK
    movem.w (sp)+,d2-d3
    bra     QuitGError
QuitCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   QuitGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
QuitTL:
    tst.l   (a4)
    beq.s   QuitDN
    addq.w  #8,a4
    bra.s   QuitTL
QuitDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Quit_CNT,d3
    bmi     QuitGL
    movem.w (sp)+,d2-d3
    move.l  QuitGList,QuitWG+4
    move.l  Scr,QuitSC+4
    moveq   #0,d0
    move.w  QuitLeft,d0
    move.l  d0,QuitL+4
    move.w  QuitTop,d0
    move.l  d0,QuitT+4
    move.w  QuitWidth,d0
    move.l  d0,QuitW+4
    move.w  QuitHeight,d0
    add.w   d3,d0
    move.l  d0,QuitH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   QuitWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,QuitWnd
    tst.l   d0
    beq     QuitWError
    move.l  _GadToolsBase,a6
    move.l  QuitWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     QuitRender
    moveq   #0,d0
QuitDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
QuitCError:
    moveq   #1,d0
    bra.s   QuitDone
QuitGError:
    moveq   #2,d0
    bra.s   QuitDone
QuitWError:
    moveq   #4,d0
    bra.s   QuitDone

CloseQuitWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  QuitWnd,a0
    cmpa.l  #0,a0
    beq     QuitNWnd
    jsr     CloseWindow(a6)
    move.l  #0,QuitWnd
QuitNWnd:
    move.l  _GadToolsBase,a6
    move.l  QuitGList,a0
    cmpa.l  #0,a0
    beq     QuitNGad
    jsr     FreeGadgets(a6)
    move.l  #0,QuitGList
QuitNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

CheatRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  CheatWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  CheatWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #245,d0
    add.w   d4,d0
    move.w  #9,d1
    add.w   d5,d1
    move.w  #163,d2
    move.w  #36,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #243,d0
    add.w   d4,d0
    move.w  #8,d1
    add.w   d5,d1
    move.w  #167,d2
    move.w  #38,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #11,d0
    add.w   d4,d0
    move.w  #9,d1
    add.w   d5,d1
    move.w  #222,d2
    move.w  #36,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #8,d1
    add.w   d5,d1
    move.w  #226,d2
    move.w  #38,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #11,d0
    add.w   d4,d0
    move.w  #55,d1
    add.w   d5,d1
    move.w  #397,d2
    move.w  #48,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #54,d1
    add.w   d5,d1
    move.w  #401,d2
    move.w  #50,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  CheatWnd,a0
    move.l  50(a0),a0
    lea.l   CheatText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenCheatWindow

OpenCheatWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   CheatGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     CheatCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   CheatGTags,a4
CheatGL:
    move.l  _SysBase,a6
    lea.l   CheatNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   CheatGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    CheatCOK
    movem.w (sp)+,d2-d3
    bra     CheatGError
CheatCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   CheatGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
CheatTL:
    tst.l   (a4)
    beq.s   CheatDN
    addq.w  #8,a4
    bra.s   CheatTL
CheatDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Cheat_CNT,d3
    bmi     CheatGL
    movem.w (sp)+,d2-d3
    move.l  CheatGList,CheatWG+4
    move.l  Scr,CheatSC+4
    moveq   #0,d0
    move.w  CheatLeft,d0
    move.l  d0,CheatL+4
    move.w  CheatTop,d0
    move.l  d0,CheatT+4
    move.w  CheatWidth,d0
    move.l  d0,CheatW+4
    move.w  CheatHeight,d0
    add.w   d3,d0
    move.l  d0,CheatH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   CheatWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,CheatWnd
    tst.l   d0
    beq     CheatWError
    move.l  _GadToolsBase,a6
    move.l  CheatWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     CheatRender
    moveq   #0,d0
CheatDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
CheatCError:
    moveq   #1,d0
    bra.s   CheatDone
CheatGError:
    moveq   #2,d0
    bra.s   CheatDone
CheatWError:
    moveq   #4,d0
    bra.s   CheatDone

CloseCheatWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  CheatWnd,a0
    cmpa.l  #0,a0
    beq     CheatNWnd
    jsr     CloseWindow(a6)
    move.l  #0,CheatWnd
CheatNWnd:
    move.l  _GadToolsBase,a6
    move.l  CheatGList,a0
    cmpa.l  #0,a0
    beq     CheatNGad
    jsr     FreeGadgets(a6)
    move.l  #0,CheatGList
CheatNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

ImpErrorRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  ImpErrorWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  ImpErrorWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #9,d0
    add.w   d4,d0
    move.w  #4,d1
    add.w   d5,d1
    move.w  #258,d2
    move.w  #24,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #7,d0
    add.w   d4,d0
    move.w  #3,d1
    add.w   d5,d1
    move.w  #262,d2
    move.w  #26,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  ImpErrorWnd,a0
    move.l  50(a0),a0
    lea.l   ImpErrorText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenImpErrorWindow

OpenImpErrorWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   ImpErrorGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     ImpErrorCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   ImpErrorGTags,a4
ImpErrorGL:
    move.l  _SysBase,a6
    lea.l   ImpErrorNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   ImpErrorGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    ImpErrorCOK
    movem.w (sp)+,d2-d3
    bra     ImpErrorGError
ImpErrorCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   ImpErrorGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
ImpErrorTL:
    tst.l   (a4)
    beq.s   ImpErrorDN
    addq.w  #8,a4
    bra.s   ImpErrorTL
ImpErrorDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #ImpError_CNT,d3
    bmi     ImpErrorGL
    movem.w (sp)+,d2-d3
    move.l  ImpErrorGList,ImpErrorWG+4
    move.l  Scr,ImpErrorSC+4
    moveq   #0,d0
    move.w  ImpErrorLeft,d0
    move.l  d0,ImpErrorL+4
    move.w  ImpErrorTop,d0
    move.l  d0,ImpErrorT+4
    move.w  ImpErrorWidth,d0
    move.l  d0,ImpErrorW+4
    move.w  ImpErrorHeight,d0
    add.w   d3,d0
    move.l  d0,ImpErrorH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   ImpErrorWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,ImpErrorWnd
    tst.l   d0
    beq     ImpErrorWError
    move.l  _GadToolsBase,a6
    move.l  ImpErrorWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     ImpErrorRender
    moveq   #0,d0
ImpErrorDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
ImpErrorCError:
    moveq   #1,d0
    bra.s   ImpErrorDone
ImpErrorGError:
    moveq   #2,d0
    bra.s   ImpErrorDone
ImpErrorWError:
    moveq   #4,d0
    bra.s   ImpErrorDone

CloseImpErrorWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  ImpErrorWnd,a0
    cmpa.l  #0,a0
    beq     ImpErrorNWnd
    jsr     CloseWindow(a6)
    move.l  #0,ImpErrorWnd
ImpErrorNWnd:
    move.l  _GadToolsBase,a6
    move.l  ImpErrorGList,a0
    cmpa.l  #0,a0
    beq     ImpErrorNGad
    jsr     FreeGadgets(a6)
    move.l  #0,ImpErrorGList
ImpErrorNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts

AddressRender:
    movem.l d0-d5/a0-a2/a6,-(sp)
    move.l  AddressWnd,a0
    move.b  54(a0),d4
    ext.w   d4
    move.b  55(a0),d5
    ext.w   d5
    move.l  VisualInfo,NR+4
    move.l  VisualInfo,IR+4
    move.l  _GadToolsBase,a6
    move.l  AddressWnd,a0
    move.l  50(a0),a2
    move.l  a2,a0
    lea.l   NR,a1
    move.w  #13,d0
    add.w   d4,d0
    move.w  #5,d1
    add.w   d5,d1
    move.w  #335,d2
    move.w  #133,d3
    jsr     DrawBevelBoxA(a6)
    move.l  a2,a0
    lea.l   IR,a1
    move.w  #17,d0
    add.w   d4,d0
    move.w  #7,d1
    add.w   d5,d1
    move.w  #327,d2
    move.w  #129,d3
    jsr     DrawBevelBoxA(a6)
    move.l  _IntuitionBase,a6
    move.l  AddressWnd,a0
    move.l  50(a0),a0
    lea.l   AddressText0,a1
    move.l  d4,d0
    move.l  d5,d1
    jsr     PrintIText(a6)
    movem.l (sp)+,d0-d5/a0-a2/a6
    rts

    XDEF    OpenAddressWindow

OpenAddressWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.b  36(a0),d2
    move.l  40(a0),a1
    move.w  4(a1),d3
    addq.w  #1,d3
    add.b   35(a0),d0
    ext.w   d0
    add.w   d0,d3
    move.l  _GadToolsBase,a6
    lea.l   AddressGList,a0
    jsr     CreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     AddressCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   AddressGTags,a4
AddressGL:
    move.l  _SysBase,a6
    lea.l   AddressNGads,a0
    move.l  d3,d0
    mulu    #30,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #30,d0
    jsr     CopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,22(a0)
    move.l  #topaz8,12(a0)
    move.w  (a0),d0
    add.w   (sp),d0
    move.w  d0,(a0)
    move.w  2(a0),d0
    add.w   2(sp),d0
    move.w  d0,2(a0)
    move.l  _GadToolsBase,a6
    lea.l   AddressGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     CreateGadgetA(a6)
    tst.l   d0
    bne.s    AddressCOK
    movem.w (sp)+,d2-d3
    bra     AddressGError
AddressCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   AddressGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
AddressTL:
    tst.l   (a4)
    beq.s   AddressDN
    addq.w  #8,a4
    bra.s   AddressTL
AddressDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Address_CNT,d3
    bmi     AddressGL
    movem.w (sp)+,d2-d3
    move.l  AddressGList,AddressWG+4
    move.l  Scr,AddressSC+4
    moveq   #0,d0
    move.w  AddressLeft,d0
    move.l  d0,AddressL+4
    move.w  AddressTop,d0
    move.l  d0,AddressT+4
    move.w  AddressWidth,d0
    move.l  d0,AddressW+4
    move.w  AddressHeight,d0
    add.w   d3,d0
    move.l  d0,AddressH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   AddressWindowTags,a1
    jsr     OpenWindowTagList(a6)
    move.l  d0,AddressWnd
    tst.l   d0
    beq     AddressWError
    move.l  _GadToolsBase,a6
    move.l  AddressWnd,a0
    suba.l  a1,a1
    jsr     GT_RefreshWindow(a6)
    jsr     AddressRender
    moveq   #0,d0
AddressDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
AddressCError:
    moveq   #1,d0
    bra.s   AddressDone
AddressGError:
    moveq   #2,d0
    bra.s   AddressDone
AddressWError:
    moveq   #4,d0
    bra.s   AddressDone

CloseAddressWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  AddressWnd,a0
    cmpa.l  #0,a0
    beq     AddressNWnd
    jsr     CloseWindow(a6)
    move.l  #0,AddressWnd
AddressNWnd:
    move.l  _GadToolsBase,a6
    move.l  AddressGList,a0
    cmpa.l  #0,a0
    beq     AddressNGad
    jsr     FreeGadgets(a6)
    move.l  #0,AddressGList
AddressNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts
