%include {irg:}"imgraph.inc"
%include "inc:util.imp"
!%include "utils:region"
%include {irg:}"region.inc"
%begin
%integer ref,size,i
%bytearray epic(0:128*512)
%string(255) file,grey
%integer add

!*****************************************************!
!         DISPLAY FRAME                               !
!*****************************************************!
%routine display frame(%integer x,y,%bytename line)
%label ok

  *move.l d0,d2
  *lsl.l #7,d1
  *andi.l #16_FFFFFFF0,d0
  *lsr.l #3,d0
  *add.l d0,d1
  *lea   frame,a1
  *lea   0(a1,d1.l),a1
  *move.l a1,a3
  *adda.l #128,a3
  *lea   colourreg,a2
  *andi.l #15,d2
  *eor.l  #15,d2
  *clr.l  d1
  *bset   d2,d1
  *moveq  #127,d3
z:*move.l  #511,d0
a:*move.b (a0)+,(a2)
  *move.w d1,(a1)
  *ror.w #1,d1
  *btst  #15,d1
  *beq   ok
  *lea    2(a1),a1
ok:
  *dbra   d0,a
  *move.l a3,a1
  *adda.l #128,a3
  *bset   d2,d1
  *dbra   d3,z
%end

prompt("Input File:");read(file)
prompt("Is this a grey-scale file?");read(grey)
tolower(grey)
%if substring(grey,1,1)="y" %then add=0 %else add=32

colourmap(i+add)=i<<10!i<<5!i %for i=0,1,31
clear

accessfile(file,0,ref,size)
readregion(ref,0,size,epic(0))
deaccessfile(ref)

displayframe(0,0,epic(0))

%endofprogram
