home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 4: The Falcon Archive / nf_archive_four_v1.0.iso / ARCHIVE / WORK / UTILITY / FUSS_V1.ZIP / VIEWER.LST < prev    next >
File List  |  1993-11-15  |  2KB  |  90 lines

  1. RESERVE
  2. RESERVE 256000
  3. '
  4. '
  5. fname$="e:\tmp\saver.f30"
  6. '
  7. CLS
  8. PRINT ".F30 File Viewer"
  9. PRINT
  10. IF BYTE{BASEPAGE+&H80}
  11.   CLR f$
  12.   ad%=BASEPAGE+&H81
  13.   BYTE{ad%+BYTE{BASEPAGE+&H80}}=0
  14.   WHILE BYTE{ad%}
  15.     f$=f$+CHR$(BYTE{ad%})
  16.     INC ad%
  17.   WEND
  18.   IF EXIST(f$)
  19.     fname$=f$
  20.   ENDIF
  21. ELSE
  22.   PRINT "Default file: ";fname$
  23.   PRINT "Load file (c/r for default): ";
  24.   INPUT f$
  25.   IF f$<>"" AND EXIST(f$)
  26.     fname$=f$
  27.   ENDIF
  28. ENDIF
  29. PRINT "Loading ";fname$
  30. '
  31. oldstack%=GEMDOS(&H20,L:0)
  32. OPEN "i",#1,fname$
  33. ' xxxx xxxF SOPV8NNN
  34. '
  35. CLR mode%
  36. BGET #1,V:mode%+2,2
  37. initscr(mode%)
  38. ON BREAK GOSUB reset
  39. ON ERROR GOSUB reset
  40. '
  41. IF NOT BTST(mode%,2)
  42.   IF BTST(mode%,7)
  43.     pal%=&HFFFF8240
  44.     len%=32
  45.   ELSE
  46.     pal%=&HFFFF9800
  47.     len%=1024
  48.   ENDIF
  49.   pal$=SPACE$(2048)
  50.   BGET #1,V:pal$,len%
  51.   BMOVE V:pal$,pal%,len%
  52. ENDIF
  53. size%=XBIOS(91,mode%)
  54. BGET #1,screenbase%,size%
  55. CLOSE #1
  56. ~GEMDOS(&H20,L:oldstack%)
  57. '
  58. reset
  59. END
  60. '
  61. '
  62. > PROCEDURE reset
  63.   KEYGET r%
  64.   '
  65.   resetscr
  66.   RESERVE
  67.   END
  68. RETURN
  69. > PROCEDURE initscr(mode%)
  70.   oldmode%=XBIOS(88,-1)                  ! vsetmode
  71.   size%=XBIOS(91,mode%)                  ! vgetsize
  72.   logbase%=XBIOS(2)
  73.   physbase%=XBIOS(3)
  74.   '
  75.   screenbase%=MALLOC(size%)
  76.   IF screenbase%<>0
  77.     ~XBIOS(5,L:screenbase%,L:screenbase%,3,mode%)       ! setscreen
  78.   ELSE
  79.     RESERVE
  80.     PRINT "Erreur: memoire insuffisante"
  81.     KEYGET r%
  82.     END
  83.   ENDIF
  84. RETURN
  85. > PROCEDURE resetscr
  86.   ~XBIOS(5,L:logbase%,L:physbase%,3,oldmode%)       ! setscreen
  87.   VSYNC
  88.   ~MFREE(screenbase%)
  89. RETURN
  90.