* ShowImage V0.0 by E.Hambuch
  include 'exec.i'
  include 'intuition.i'
  include 'graphics.i'
  include 'startup.i'
WIDTH: equ 1008
HEIGHT: equ 200
DEPTH: equ 3
_main:
  lea intname,a1
  CALLEXEC OldOpenLibrary
  move.l d0,_IntBase
  beq ende
  lea gfxname,a1
  jsr _LVOOldOpenLibrary(a6)
  move.l d0,_GfxBase
  beq closeint
  lea screen,a0
  CALLINT OpenScreen
  move.l d0,Screen
  beq closegfx
  add.l #44,d0
  move.l d0,a0
  lea Palette,a1
  moveq #32,d0
  CALLGRAF LoadRGB4
  move.l _IntBase,a6
  lea window,a0
  move.l Screen,30(a0)
  jsr _LVOOpenWindow(a6)
  move.l d0,Window
  beq closescr
  move.l d0,a0
  move.l 50(a0),RPort
  move.l 86(a0),MsgPort
  move.l RPort,a0
  lea Image,a1
  clr.w d0
  clr.w d1
  CALLINT DrawImage
forever: clr.w ScrollX
loop1:  move.l MsgPort,a0
  CALLEXEC GetMsg
  tst.l d0
  bne closeall
  bsr scroll
  addq.w #1,ScrollX
  cmp.w #1008-320,ScrollX
  bne loop1
loop2:
  move.l MsgPort,a0
  CALLEXEC GetMsg
  tst.l d0
  bne closeall
  bsr scroll
  subq.w #1,ScrollX
  bne loop2
  bra forever
closeall:
  move.l d0,a1
  jsr _LVOReplyMsg(a6)
  move.l Screen,a2
  lea 44(a2),a2
  move.l 36(a2),a0
  clr.w 8(a0)
  CALLINT RethinkDisplay
  move.l a2,a0
  CALLGRAF ScrollVPort
closewin:
  move.l Window,a0
  CALLINT CloseWindow
closescr:
  move.l Screen,a0
  jsr _LVOCloseScreen(a6)
closegfx:
  move.l _GfxBase,a1
  CALLEXEC CloseLibrary
closeint:
  move.l _IntBase,a1
  jmp _LVOCloseLibrary(a6)
ende: rts
scroll:
  move.l Screen,a2
  lea 44(a2),a2
  move.l 36(a2),a0
  move.w ScrollX,8(a0)
  CALLINT RethinkDisplay
  move.l _GfxBase,a6
  move.l a2,a0
  jmp _LVOScrollVPort(a6)
intname: INTNAME
gfxname: GRAFNAME
_IntBase: dc.l 0
_GfxBase: dc.l 0
Screen:   dc.l 0
Window:   dc.l 0
RPort:    dc.l 0
MsgPort:  dc.l 0
ScrollX: dc.w 0
screen:
  dc.w 0,0,WIDTH,HEIGHT
  dc.w DEPTH ;Tiefe
  dc.b 0,1
  dc.w LORES
  dc.w CUSTOMSCREEN
  dc.l 0,0,0,0
window:
  dc.w 0,0,WIDTH,HEIGHT
  dc.b 0,1
  dc.l MOUSEBUTTONS
  dc.l NOCAREREFRESH
  dc.l 0,0,Titel,0,0
  dc.w 0,0,0,0,CUSTOMSCREEN
Palette:
  dc.w $000,$f00,$f50,$fa0,$ff0,$af0,$5f0,$00f
Image:
  dc.w 0,0
  dc.w WIDTH,HEIGHT
  dc.w DEPTH
  dc.l ImageData
  dc.b %111,0
  dc.l 0
  XREF ImageData
Titel:
  dc.b 'ShowImage V0.0 (w) & (c) by E.Hambuch',0
  even
  END
