' HR_SHOW.LST
' convert 64000 byte file into
' monochrome picture
' ------------------------
DIM pattern$(15),assgn|(15)
'
' Build menu
DEFTEXT 1,0,0,6
TEXT 268,20,"Pattern number"
z%=0
FOR x%=32 TO 572 STEP 36
  BOX x%,32,x%+30,62
  BOX x%,68,x%+30,98
  LINE x%,47,x%+30,47
  LINE x%+15,32,x%+15,62
  TEXT x%+10,110,z%
  INC z%
NEXT x%
DEFFILL 1,2,8
PBOX 68,32,83,47
PBOX 119,32,134,47
PBOX 140,47,155,62
PBOX 191,47,206,62
'
PBOX 212,32,242,47
PBOX 248,47,278,62
PBOX 284,32,299,62
PBOX 335,32,350,62
PBOX 356,32,371,47
PBOX 371,47,386,62
PBOX 407,32,422,47
PBOX 392,47,407,62
'
PBOX 428,32,458,47
PBOX 443,47,458,62
PBOX 479,32,494,47
PBOX 464,47,494,62
PBOX 500,32,515,47
PBOX 500,47,530,62
PBOX 536,32,566,47
PBOX 536,47,551,62
'
PBOX 572,32,602,62
'
GET 33,69,34,70,pattern$(0)
'
DEFFILL 1,2,2
PBOX 68,68,98,98
GET 69,69,70,70,pattern$(1)
PBOX 104,68,134,98
GET 106,69,107,70,pattern$(2)
PBOX 140,68,170,98
GET 141,70,142,71,pattern$(3)
PBOX 176,68,206,98
GET 178,70,179,71,pattern$(4)
'
FOR m%=70 TO 96 STEP 2
  LINE 212,m%,242,m%
  LINE 248,m%,278,m%
NEXT m%
GET 213,70,214,71,pattern$(5)
GET 249,69,250,70,pattern$(6)
'
FOR m%=286 TO 312 STEP 2
  LINE m%,68,m%,98
NEXT m%
GET 286,69,287,70,pattern$(7)
'
FOR m%=322 TO 348 STEP 2
  LINE m%,68,m%,98
NEXT m%
GET 321,69,322,70,pattern$(8)
'
DEFFILL 1,2,4
PBOX 356,68,386,98
GET 357,69,358,70,pattern$(9)
PBOX 392,68,422,98
GET 394,69,395,70,pattern$(10)
'
DEFFILL 1,2,6
PBOX 428,68,458,98
GET 429,69,430,70,pattern$(11)
PBOX 464,68,494,98
GET 465,70,466,71,pattern$(12)
PBOX 500,68,530,98
GET 502,70,503,71,pattern$(13)
PBOX 536,68,566,98
GET 538,69,539,70,pattern$(14)
'
DEFFILL 1,2,8
PBOX 572,68,602,98
GET 573,69,574,70,pattern$(15)
'
FOR m%=0 TO 15
  PRINT AT(12,10);"Which pattern to be assigned to colour"'m%'"?"'
  INPUT "",assgn|(m%)
NEXT m%
'
DIM n|(63999)
BLOAD "a:\cheval.zal",V:n|(0)
s%=V:n|(0)
CLS
'
ALERT 2,"Display high-res pic |in GFA Basic|or GFA Assembler?",1,"Basic|Ass.",question%
t=TIMER
'
' GFA Basic
IF question%=1
  z%=0
  FOR y%=0 TO 399 STEP 2
    FOR x%=0 TO 639 STEP 2
      PUT x%,y%,pattern$(assgn|(n|(z%)))
      INC z%
    NEXT x%
  NEXT y%
ENDIF
'
' GFA Assembler
IF question%=2
  INLINE hr_show%,124
  ' Call assembler program, with
  ' 1. L: Address of 64000-bytes file (s%)
  ' 2. L: Address of destination bitmap
  ' 3. L: Address of patterns table
  VOID C:hr_show%(L:s%,L:XBIOS(2),L:V:assgn|(0))
ENDIF
'
tt=(TIMER-t)/200
t$=STR$(tt)
IF question%=1
  ALERT 1,"Displaying high-res pic |in GFA-Basic takes|"+t$+" seconds.",1," OK ",d%
ELSE
  ALERT 1,"Displaying high-res pic |in GFA-Assembler takes|"+t$+" seconds.",1," OK ",d%
ENDIF
'
EDIT
