; test new things in script version 1.05
;

poll_nomessages()
poll_disable()


cache_loaddirectory("IDEFS::Willow.$.Coding.Projects.BASIC.Teletext.!Teletext.Scripts.wtr")
filewrite("<Teletext$Dir>.Scripts._new5test")

set F to 0
.cacheloadloop
  ; pull a script-stored frame from the cache (updates 'F')
  cache_loadnextentry(F)
  if (F = -1) go("finished")
  filewritestring("Page information:")
  filewritebyte(10)

  ; get the full frame number
  set D to status(framenum)
  filewritestring("Page ID  : ")
  filewritevar(D, 12) ; outputs in denary, not hex
  filewritebyte(10)

  ; now, work it out ourselves
  set A to 16
  frame_number(A)
  set B to 16
  frame_subnumber(B)
  lsl(A, A, 16)
  add(A, B)
  filewritestring("Calc ID  : ")
  filewritevar(A, 12) ; outputs in denary, not hex
  filewritebyte(10)

  ; plain form
  set A to 0
  frame_number(A)
  filewritestring("Page num : ")
  filewritevar(A, 3)
  filewritebyte(10)

  ; language
  frame_language(B)
  filewritestring("Language : ")
  filewritevar(B, 3)
  if (B = 0) filewritestring(" (English)")
  if (B = 1) filewritestring(" (French)")
  if (B = 2) filewritestring(" (Swedish)")
  if (B = 4) filewritestring(" (German)")
  if (B = 5) filewritestring(" (Spanish)")
  if (B = 6) filewritestring(" (Italian)")
  filewritebyte(10)

  ; linked frames
  set A to 1
  frame_linkedto(A)
  filewritestring("Red link : ")
  filewritevar(A, 3)
  filewritebyte(10)
  set A to 2
  frame_linkedto(A)
  filewritestring("Grn link : ")
  filewritevar(A, 3)
  filewritebyte(10)
  set A to 3
  frame_linkedto(A)
  filewritestring("Ylw link : ")
  filewritevar(A, 3)
  filewritebyte(10)
  set A to 4
  frame_linkedto(A)
  filewritestring("Cyn link : ")
  filewritevar(A, 3)
  filewritebyte(10)
  filewritebyte(10)

  go("cacheloadloop")


.finished
  fileclose()

  poll_enable()

  ; open windows
  showviewer()
  showcontrols()
  poll_now()

  ; run file
  filetype("<Teletext$Dir>.Scripts._new5test", &FFF)
  oscall("Filer_Run <Teletext$Dir>.Scripts._new5test")
  poll_now()
  pushkey(&1AE)

  ; done
  terminate()
