
 ILABEL ':Includes/Amiga.L'                 
_LVOOpenLibrary   EQU -$0228
_LVOCloseLibrary  EQU -$019e
_LVOOpenScreen    EQU -$00c6
_LVOCloseScreen   EQU -$0042
_LVOOpenWindow    EQU -$00cc
_LVOCloseWindow   EQU -$0048
_LVOCurrentTime   EQU -$0054
_LVOAllocMem      EQU -$00c6
_LVOFreeMem       EQU -210
_LVOInitTmpRas    EQU -468
_LVOInitArea      EQU -282
_LVOInitRastPort  EQU -198
_LVOSetRGB4       EQU -$0120
_LVOSetBPen       EQU -$015c
_LVOSetAPen       EQU -$0156
_LVOSetDrMd       EQU -$0162
_LVORectFill      EQU -$0132
_LVOFlood         EQU -330
_LVOText          EQU -$003c
_LVOMakeScreen    EQU -378
_LVORethink       equ -390
_LVOMove          EQU -240
_LVODraw          EQU -246
_LVOAreaEllipse   EQU -186
_LVOAreaEnd       EQU -264
_LVOAreaMove      EQU -252
_LVOAreaDraw      EQU -258
_LVOWritePixel    EQU -324
_LVOReadPixel     EQU -318
_LVOMult          EQU -78
_LVOAbs           EQU -54
_LVOAdd           EQU -66
_LVODiv           EQU -84
_LVOFix           EQU -30
_LVOFlt           EQU -36
_LVOSub           EQU -72
_LVOSqrt          EQU -96
_LVOSin           EQU -36
_LVOCos           EQU -42
_LVOAtan          EQU -30
_LVOOpen          EQU -30
_LVOClose         EQU -36
_LVOWrite         EQU -48

sc_ViewPort       EQU 44
w_RPort           EQU 50
w_UserPort        EQU 86
msg_Class         EQU 20
msg_Code          EQU 24
im_Micros         EQU 40
XSIZE             EQU 11
YSIZE             EQU 6
HAM               EQU $800
CUSTOMSCREEN      EQU $F
MOUSEBUTTONS      EQU 8
CLOSEWINDOW       EQU $200
MyIDCMPFlags      EQU $208
ACTIVATE          EQU $1000
WINDOWCLOSE       EQU 8
MyWindowFlags     EQU $1008
SELECTDOWN        EQU $68
JAM1              EQU 0
JAM2              EQU 1
;****************************************************************************
; HOLD AND MODIFY - Demo.
; C-Listing see AMIGA ROM KERNAL MANUAL: LIBRARIES AND DEVICES page 69ff.
;****************************************************************************
 INIT_AMIGA
; Open Libraries:
 LEA GfxName,A1
 MOVEQ #0,D0
 CALLSYS OpenLibrary
 MOVE.L D0,GfxBase
 BEQ EXIT

 LEA IntuitionName,A1
 MOVEQ #0,D0
 CALLSYS OpenLibrary
 MOVE.L D0,IntuitionBase
 BEQ EXIT

 LEA MathTransName,A1
 MOVEQ #0,D0
 CALLSYS OpenLibrary
 MOVE.L D0,MathTransBase
 BEQ EXIT

 LEA MathFFPName,A1
 MOVEQ #0,D0
 CALLSYS OpenLibrary
 MOVE.L D0,MathFFPBase
 BEQ EXIT

 LEA DosName,A1
 MOVEQ #0,D0
 CALLSYS OpenLibrary
 MOVE.L D0,DosBase
 BEQ    EXIT

 MOVE.L #48000,d0
 MOVE.L #2,D1
 CALLSYS AllocMem
 MOVE.L D0,Raster1

 MOVE.L #48000,D0
 MOVE.L #2,D1
 CALLSYS AllocMem
 MOVE.L D0,Raster2

 MOVE.L #12064,D0
 MOVE.L #2,D1
 CALLSYS AllocMem
 MOVE.L D0,PICTURE

; Open screen
 LEA NewScreen,A0
 LINKSYS OpenScreen,IntuitionBase
 MOVE.L D0,Screen
 BEQ EXIT

; Open window
 MOVE.L D0,WScreen
 LEA NewWindow,A0
 LINKSYS OpenWindow,IntuitionBase
 MOVE.L D0,Window
 BEQ EXIT

 MOVE.L Screen,A1
 LEA sc_ViewPort(A1),A0
 MOVE.L A0,ViewPort
 MOVE.L D0,A1
 MOVE.L w_RPort(A1),RastPort

; Set color register:
 MOVEQ #31,D0
 LEA RGBTable,A2
SCLoop:
 MOVEM.L D0/A0,-(SP)
 MOVE (A2)+,D1
 MOVE (A2)+,D2
 MOVE (A2)+,D3
 LINKSYS SetRGB4,GfxBase
 MOVEM.L (SP)+,D0/A0
 DBRA D0,SCLoop

 MOVE.L #Raster1,A1
 MOVE.L (A1),D0
 ADDI.L #8000,D0
 MOVE.L D0,D1
 ADDI.L #8000,D0
 MOVE.L D0,D2
 ADDI.L #8000,D0
 MOVE.L D0,D3
 ADDI.L #8000,d0
 MOVE.L D0,D4
 ADDI.L #8000,D0
 MOVE.L D0,D5
 MOVE.L (A1),D0
 MOVE.L D0,Plane0
 MOVE.L D1,Plane1
 MOVE.L D2,Plane2
 MOVE.L D3,Plane3
 MOVE.L D4,Plane4
 MOVE.L D5,Plane5
 MOVE.L Screen,A0
 MOVE.L D0,192(A0)
 MOVE.L D1,196(A0)
 MOVE.L D2,200(A0)
 MOVE.L D3,204(A0)
 MOVE.L D4,208(A0)
 MOVE.L D5,212(A0)

 MOVE.L #TmpRas,A0
 MOVE.L Raster2,D0
 ADDI.L #12,D0
 MOVE.L D0,(A0)

 MOVE.L RastPort,A1
 MOVE.L #TmpRas,12(A1)

 MOVE.L #AreaInfo,A0
 MOVE.L Raster2,D0
 ADDI.L #24000,D0
 MOVE.L D0,(A0)
 ADDI.L #6000,D0
 MOVE.L D0,4(A0)
 ADDI.L #6000,D0
 MOVE.L D0,8(A0)
 ADDI.L #6000,D0
 MOVE.L D0,12(A0)

 MOVE.L RastPort,A1
 MOVE.L #AreaInfo,16(A1)

 MOVE.L #AreaInfo,A0
 MOVE.L Raster2,D0
 Addi.L #24000,D0
 MOVE.L D0,A1
 MOVE.L #20,D0
 LINKSYS InitArea,GfxBase

 MOVE.L Screen,A0
 LINKSYS MakeScreen,IntuitionBase
 LINKSYS ReThink,IntuitionBase
 JSR CLRSCREEN

 MOVE.L RastPort,A1
 MOVEQ #0,D0
 LINKSYS SetBPen,GfxBase

 JSR CLRSCREEN

; Define Constants
 MOVE.L  #16,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,Const1
 MOVE.L  #60,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,D1
 MOVE.L  Const1,D0
 LINKSYS Div,MathFFPBase
 MOVE.L  D0,Const1

 MOVE.L  #22,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,Const4
 MOVE.L  #1260,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,D1
 MOVE.L  Const4,D0
 LINKSYS Div,MathFFPBase
 MOVE.L  D0,Const4

 MOVE.L  #11,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,Const6
 MOVE.L  #10,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  D0,D1
 MOVE.L  Const6,D0
 LINKSYS Div,MathFFPBase
 MOVE.L  D0,Const6

 MOVE.L  Plane4,D0
 MOVE.L  D0,A0
 MOVE.W  #0,D1
KAKA1:
 MOVE.B  #$FF,(A0)+
 ADDI.W  #1,D1
 CMPI.W  #8000,D1
 BNE     KAKA1

Ball:
 MOVE.L #55,D0           ; 55 is the radius
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,D1
 LINKSYS Mult,MathFFPBase
 MOVE.L D0,Const2
 MOVE.L #-55,Y1
Ball3:

 MOVE.L Y1,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,D1
 LINKSYS Mult,MathFFPBase
 MOVE.L D0,Y2
 MOVE.L Const2,D0
 MOVE.L Y2,D1
 LINKSYS Sub,MathFFPBase
 LINKSYS Sqrt,MathTransBase
 MOVE.L D0,Const3

 MOVE.L Y1,D0
 CMPI.L #0,D0
 BNE    Ballx
 ADDI.L #1,D0
Ballx:
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,D1
 MOVE.L Const3,D0
 LINKSYS Div,MathFFPBase
 LINKSYS Atan,MathTransBase
 MOVE.L Const4,D1
 LINKSYS Div,MathFFPBase
 MOVE.L D0,Y3
 MOVE.L #90,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L Y3,D1
 LINKSYS Add,MathFFPBase
 MOVE.L Y3,D0

 MOVE.L #18,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,D1
 MOVE.L Y3,D0
 LINKSYS Div,MathFFPBase
 LINKSYS Fix,MathFFPBase
 MOVE.L D0,Y3

 MOVE.L #0,X2
Ball2:
 MOVE.L  X2,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L  Const4,D1
 LINKSYS Mult,MathFFPBase
 MOVE.L  D0,Const5

 LINKSYS Cos,MathTransBase
 MOVE.L  Const3,D1
 LINKSYS Mult,MathFFPBase
 MOVE.L  D0,X5

 MOVE.L  Const5,D0
 LINKSYS Sin,MathTransBase
 MOVE.L  Const3,D1
 LINKSYS Mult,MathFFPBase
 MOVE.L  Const1,D1
 LINKSYS Mult,MathFFPBase
 LINKSYS Fix,MathFFPBase
 MOVE.L  D0,X4

 MOVE.L Y3,D0
 ANDI.L #1,D0
 ASL.L  #4,D0
 MOVE.L D0,D1
 MOVE.L X4,D0
 ADD.L D1,D0
 ADDI.L #16,D0
 MOVE.L D0,X4

 MOVE.L X2,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,X3
 MOVE.L #18,D0
 LINKSYS Flt,MathFFPBase
 MOVE.L D0,D1
 MOVE.L X3,D0
 LINKSYS Div,MathFFPBase
 LINKSYS Fix,MathFFPBase
 ANDI.L #1,D0
 ASL.L #4,D0
 MOVE.L X4,D1
 EOR.L D1,D0
 MOVE.L D0,X4
 MOVE.L Y1,D1
 CMPI.L #0,D1
 BLT    LoopFF
 EORI.L #16,D0
LoopFF:

 MOVE.L RastPort,A1
 LINKSYS SetAPen,GfxBase

 MOVE.L X5,D0
 MOVE.L Const6,D1
 LINKSYS Mult,MathFFPBase
 LINKSYS Fix,MathFFPBase
 MOVE.L D0,X5
 ADDI.L #160,D0
 MOVE.L Y1,D1
 ADDI.L #100,D1
 MOVE.L RastPort,A1
 LINKSYS WritePixel,GfxBase

 MOVE.L Y1,D1
 CMPI.L #20,D1
 BLT    KAKA2
 JMP    NOWAY
KAKA2:
 MOVE.L Y1,D1
 CMPI.L #-20,D1
 BGT    KAKA3
 JMP    NOWAY
KAKA3:
 MOVE.L X5,D0
 CMPI.L #20,D0
 BLT    KAKA4
 JMP    NOWAY
KAKA4:
 MOVE.L X5,D0
 CMPI.L #-20,D0
 BGT    KAKA5
 JMP    NOWAY
KAKA5:
 MOVE.L X5,D0
 ADDI.L #159,D0
 MOVE.L Y1,D1
 ADDI.L #100,D1
 MOVE.L RastPort,A1
 LINKSYS WritePixel,GfxBase

NOWAY:
 ADDI.L #1,X2
 CMPI.L #180,X2
 BNE Ball2
 ADDI.L #1,Y1
 CMPI.L #55,Y1
 BNE Ball3
 MOVE.L Plane0,D0
 ADDI.L #1610,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #0,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #1615,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #750,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #1620,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #1500,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #1625,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #2250,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #2810,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #3000,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #2815,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #3750,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #2820,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #4500,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #2825,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #5250,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #4010,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #6000,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #4015,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #6750,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #4020,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #7500,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #4025,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #8250,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #5210,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #9000,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #5215,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #9750,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #5220,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #10500,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 MOVE.L Plane0,D0
 ADDI.L #5225,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #11250,D1
 MOVE.L D1,A1
 JSR    GET_TILE
 JSR    CLRSCREEN
 MOVE.L Plane0,D0
 ADDI.L #1610,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #0,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #1615,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #750,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #1620,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #1500,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #1625,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #2250,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #2810,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #3000,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #2815,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #3750,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #2820,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #4500,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #2825,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #5250,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #4010,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #6000,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #4015,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #6750,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #4020,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #7500,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #4025,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #8250,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #5210,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #9000,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #5215,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #9750,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #5220,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #10500,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
 MOVE.L Plane0,D0
 ADDI.L #5225,D0
 MOVE.L D0,A0
 MOVE.L PICTURE,D1
 ADDI.L #11250,D1
 MOVE.L D1,A1
 JSR    PUT_TILE
;------------------------
 MOVE.L PICTURE,A0
 MOVE.W #$0000,12000(A0)
 MOVE.W #$0101,12002(A0)
 MOVE.W #$0202,12004(A0)
 MOVE.W #$0303,12006(A0)
 MOVE.W #$0404,12008(A0)
 MOVE.W #$0505,12010(A0)
 MOVE.W #$0606,12012(A0)
 MOVE.W #$0707,12014(A0)
 MOVE.W #$0808,12016(A0)
 MOVE.W #$0909,12018(A0)
 MOVE.W #$0A0A,12020(A0)
 MOVE.W #$0B0B,12022(A0)
 MOVE.W #$0C0C,12024(A0)
 MOVE.W #$0D0D,12026(A0)
 MOVE.W #$0E0E,12028(A0)
 MOVE.W #$0F0F,12030(A0)
 MOVE.W #$0121,12032(A0)
 MOVE.W #$0110,12034(A0)
 MOVE.W #$0220,12036(A0)
 MOVE.W #$0330,12038(A0)
 MOVE.W #$0440,12040(A0)
 MOVE.W #$0550,12042(A0)
 MOVE.W #$0660,12044(A0)
 MOVE.W #$0770,12046(A0)
 MOVE.W #$0880,12048(A0)
 MOVE.W #$0990,12050(A0)
 MOVE.W #$0AA0,12052(A0)
 MOVE.W #$0BB0,12054(A0)
 MOVE.W #$0CC0,12056(A0)
 MOVE.W #$0DD0,12058(A0)
 MOVE.W #$0EE0,12060(A0)
 MOVE.W #$0FF0,12062(A0)

 MOVE.L #FileName,D1
 MOVE.L #1006,D2
 LINKSYS Open,DosBase
 MOVE.L D0,FileHd

 MOVE.L FileHd,D1
 MOVE.L PICTURE,D2
 MOVE.L #12064,D3
 LINKSYS Write,DosBase

 MOVE.L FileHd,D1
 LINKSYS Close,DosBase

Loop5:
 MOVE.B $BFEC01,D0
 CMPI.B #$7F,D0
 BNE    Loop5
 JMP    EXIT

PUT_TILE:
 MOVE.W #0,D3
PT1:
 MOVE.W #0,D4
PT2:
 MOVE.B 600(A1),32000(A0)
 MOVE.B 450(A1),24000(A0)
 MOVE.B 300(A1),16000(A0)
 MOVE.B 150(A1),8000(A0)
 MOVE.B (A1)+,(A0)+
 ADDI.W #1,D4
 CMPI.W #5,D4
 BNE    PT2
 ADDI.L #40,D0
 MOVE.L D0,A0
 ADDI.W #1,D3
 CMPI.W #30,D3
 BNE    PT1
 RTS
GET_TILE:
 MOVE.W #0,D3
GT1:
 MOVE.W #0,D4
GT2:
 MOVE.B 32000(A0),600(A1)
 MOVE.B 24000(A0),450(A1)
 MOVE.B 16000(A0),300(A1)
 MOVE.B 8000(A0),150(A1)
 MOVE.B (A0)+,(A1)+
 ADDI.W #1,D4
 CMPI.W #5,D4
 BNE    GT2
 ADDI.L #40,D0
 MOVE.L D0,A0
 ADDI.W #1,D3
 CMPI.W #30,D3
 BNE    GT1
 RTS
;* Procedure Clear Screen
CLRSCREEN:
 MOVE.L Plane0,A0
 MOVE.L Plane1,A1
 MOVE.L Plane2,A2
 MOVE.L Plane3,A3
 MOVE.L Plane4,A4
 MOVE.L Plane5,A5
 MOVE.W #0,D0
CLRSCN01:
 MOVE.B #$00,(A0)+
 MOVE.B #$00,(A1)+
 MOVE.B #$00,(A2)+
 MOVE.B #$00,(A3)+
 MOVE.B #$00,(A4)+
 MOVE.B #$00,(A5)+
 ADDI.W #1,D0
 CMPI.W #8000,D0
 BNE    CLRSCN01
 RTS

EXIT:

;End program

 MOVE.L Window,D0
 BEQ.S \1
 MOVE.L D0,A0
 LINKSYS CloseWindow,IntuitionBase
\1:
 MOVE.L Screen,D0
 BEQ.S \2
 MOVE.L D0,A0
 LINKSYS CloseScreen,IntuitionBase
\2:
 MOVE.L IntuitionBase,D0
 BEQ.S \3
 MOVE.L D0,A1
 CALLSYS CloseLibrary
\3:
 MOVE.L GfxBase,D0
 BEQ.S ENDE
 MOVE.L D0,A1
 CALLSYS CloseLibrary
ENDE:
 EXIT_AMIGA

 DATA

Testfont:DC.L Fontname
 DC.W 8,0
Fontname:DC.B 'topaz.font',0
 ALIGN

Const1: DC.L 0
Const2: DC.L 0
Const3: DC.L 0
Const4: DC.L 0
Const5: DC.L 0
Const6: DC.L 0
Const7: DC.L 0

PICTURE:DC.L 0
X1:DC.L 0
X2:DC.L 0
X3:DC.L 0
X4:DC.L 0
X5:DC.L 0

Y1:DC.L 0
Y2:DC.L 0
Y3:DC.L 0

Z1:DC.L 0
Z2:DC.L 0
Z3:DC.L 0

Plane0:DC.L 0
Plane1:DC.L 0
Plane2:DC.L 0
Plane3:DC.L 0
Plane4:DC.L 0
Plane5:DC.L 0

NewScreen:
 DC.W 0,0,320,200,5
 DC.B 0,31
 DC.W $0
 DC.W $0f
 DC.L Testfont
 DC.L STitle
 DC.L 0,0

STitle:DC.B 'Dragon Demo',0
 ALIGN

Number:DC.B '0123456789ABCDEF'
 ALIGN

Raster1: DC.L 0
Raster2: DC.L 0
NewWindow:
 DC.W 0,0,320,200
 DC.B -1,-1
 DC.L MyIDCMPFlags
 DC.L MyWindowFlags
 DC.L 0,0
 DC.L WTitle
WScreen:
 DC.L 0,0
 DC.W 0,0,320,200
 DC.W CUSTOMSCREEN

WTitle:DC.B 'Dragon Demo',0
 ALIGN

MathTransName:DC.B 'mathtrans.library',0
 ALIGN
MathFFPName:DC.B 'mathffp.library',0
 ALIGN
GfxName:DC.B 'graphics.library',0
 ALIGN
IntuitionName:DC.B 'intuition.library',0
 ALIGN
DosName:DC.B 'dos.library',0
Count: DC.W 0
GfxBase:DC.L 0
DosBase:DC.L 0
IntuitionBase:DC.L 0
MathTransBase:DC.L 0
MathFFPBase:DC.L 0
Window:DC.L 0
Screen:DC.L 0
FileName:DC.B 'temporary',0

RGBTable:      ;Row wise turned around because of DBRA
 DC.W 15,15,00
 DC.W 14,14,00
 DC.W 13,13,00
 DC.W 12,12,00
 DC.W 11,11,00
 DC.W 10,10,00
 DC.W 09,09,00
 DC.W 08,08,00

 DC.W 07,07,00
 DC.W 06,06,00
 DC.W 05,05,00
 DC.W 04,04,00
 DC.W 03,03,00
 DC.W 02,02,00
 DC.W 01,01,00
 DC.W 01,02,01

 DC.W 15,00,15
 DC.W 14,00,14
 DC.W 13,00,13
 DC.W 12,00,12
 DC.W 11,00,11
 DC.W 10,00,10
 DC.W 09,00,09
 DC.W 08,00,08

 DC.W 07,00,07
 DC.W 06,00,06
 DC.W 05,00,05
 DC.W 04,00,04
 DC.W 03,00,03
 DC.W 02,00,02
 DC.W 01,00,01
 DC.W 00,00,00

AreaInfo:DC.L 1,1,1,1
         DC.W 1,10,1,1
         DC.L 0

TmpRas:DC.L 1,20000,12
FileHd:DC.L 0

RastPort:DS.L 1
ViewPort:DS.L 1
cStop:DS.W 1
sStop:DS.W 1
Sequence:DS.W 1
Textneeded:DS.B 1
Wheelmode:DS.B 1
sChoice:DS.W 1
cChoice:DS.W 1
UseSquare:DS.W 1
UseColor:DS.W 1
Seconds:DS.L 1
Micros:DS.L 1

 END
