home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.A.po / FEATURES:BEAGLE / EXTRA.K.S1.SHK / EXTRA.K.DOS3.3 / SCREENS.CROP.bas < prev    next >
BASIC Source File  |  2000-01-01  |  6KB  |  112 lines

  1. 1  GOTO 10
  2. 2  PRINT  CHR$(4)"SAVESCREENS.CROP ,D1": END 
  3. 10 ME = 19: DIM E(ME),E$(ME),TYP(6): FOR I = 1 TO ME: READ E(I),E$(I): NEXT : DATA  16,SYNTAX,53,ILLEGAL QUANTITY,77,OUT OF MEMORY,176,STRING TOO LONG,254,RE-ENTER,6,FILE NOT FOUND,7,VOLUME MISMATCH,8,I/O,12,NO BUFFERS AVAILABLE
  4. 11  DATA 13,FILE TYPE MISMATCH,38,SCREEN NAME NOT FOUND,52,SCREEN MEMORY FULL,63,ILLEGAL SCREEN NAME,75,ILLEGAL SCREEN TYPE,6,FILE NOT FOUND,4,WRITE PROTECTED,8,I/O,9,DISK FULL,10,FILE LOCKED    
  5. 12  FOR I = 1 TO 6: READ TYP(I): NEXT : DATA 3,6,2,5,1,4
  6. 15  VTAB 5: ONERR  GOTO 30
  7. 20  &  FRE,I: GOTO 40
  8. 25  POKE 216,0
  9. 30  PRINT  CHR$(4)"BRUN EXTRA.SCREENS"
  10. 40  POKE 216,0
  11. 50  IF  PEEK(16384) < >32  AND  PEEK(16385) < >187  THEN  PRINT  CHR$(4)"BLOADCROP.M"
  12. 60  ONERR  GOTO 70
  13. 65 Z$ = "@Z@Z@Z@Z": &  DEL Z$
  14. 70  ONERR  GOTO 2000
  15. 80  &  AT 1
  16. 100 MN = 6: FOR I = 1 TO MN: READ ME$(I): NEXT : DATA LOAD HI-RES SCREEN FROM DISK,SAVE SCREEN TO MEMORY,CROP SCREEN,LOAD SCREEN FROM MEMORY,LIST SCREENS IN MEMORY,CLEAR VIEWING SCREEN
  17. 110 DR = 1:CR = 0: FOR I = 1 TO 6: READ TY$(I): NEXT : DATA HI-RES,DOUBLE HI-RES,LO-RES,DOUBLE LO-RES,40-COLUMN TEXT,80-COLUMN TEXT
  18. 120  DIM R(6),B(6): FOR I = 1 TO 6: READ R(I): READ B(I): NEXT : DATA  279,191,559,191,39,47,79,47,39,23,79,23
  19. 500  REM <CTRL-M><CTRL-J>MENU<CTRL-J>
  20. 510  TEXT : PRINT  CHR$(21): POKE 49164,0: HOME : VTAB 2: HTAB 13: INVERSE : PRINT ":            :": HTAB 13: PRINT " SCREENS.CROP ": HTAB 13: PRINT ":            :": NORMAL : PRINT 
  21. 520  VTAB 7: FOR I = 1 TO MN: HTAB 5: PRINT "<"I"> "ME$(I): PRINT : NEXT 
  22. 530  VTAB 20: HTAB 1: GOSUB 1000: PRINT : PRINT "    Select:            <ESC> to Quit";
  23. 540  VTAB 22: HTAB 13: GET A$: IF A$ =  CHR$(27)  THEN 600
  24. 550  PRINT A$;: IF A$ <"1"  OR A$ > STR$(MN)  THEN  PRINT  CHR$(7);: GOTO 540
  25. 560  ON  VAL(A$) GOSUB 750,1300,1500,1700,1250,2200: IF NR  THEN NR = 0: GOTO 530
  26. 570  GOTO 500
  27. 600  REM <CTRL-M><CTRL-J>QUIT<CTRL-J>
  28. 610  TEXT : VTAB 22: ONERR  GOTO 620
  29. 615  &  DEL Z$
  30. 620  POKE 216,0: END 
  31. 750  REM <CTRL-M><CTRL-J>LOAD FROM DISK<CTRL-J>
  32. 753  HOME : VTAB 10: HTAB 5: PRINT "DRIVE: "DR; CHR$(8);
  33. 754  GET A$: IF A$ = "1"  OR A$ = "2"  THEN  PRINT A$;:DR =  VAL(A$): GOTO 760
  34. 756  IF A$ < > CHR$(13)  THEN  CALL  -198: GOTO 754
  35. 760  PRINT : PRINT : HTAB 5: PRINT "CATALOG";: GOSUB 2100: IF YES  THEN  GOSUB 1100
  36. 765  PRINT : PRINT : HTAB 5: INPUT "FILE NAME: ";F$: IF F$ < >""  THEN N = 2: HOME : VTAB 8:TYP = 1: GOSUB 3000: ON TY GOTO 770,780
  37. 769  RETURN 
  38. 770  HGR : POKE 49234,0: GOTO 790
  39. 780  HGR : POKE 49234,0: POKE  -16290,0: PRINT  CHR$(4)"BLOAD"F$".AUX,A$2000,D"DR: POKE 60,0: POKE 61,32: POKE 62,0: POKE 63,64: POKE 66,0: POKE 67,32: POKE 768,56: POKE 769,76: POKE 770,17: POKE 771,195
  40. 785  POKE 49152,0: CALL 768: POKE 49153,0
  41. 790  PRINT : PRINT  CHR$(4)"BLOAD"F$",A$2000,D"DR: RETURN 
  42. 999  END 
  43. 1000  FOR I = 1 TO 40: PRINT "-";: NEXT : RETURN 
  44. 1100  REM  <CTRL-M><CTRL-J>CATALOG DISK<CTRL-J>
  45. 1105  HOME : TEXT : ONERR  GOTO 1110
  46. 1106  PRINT  CHR$(4)"CAT,D"DR: GOTO 1115: REM  PRODOS
  47. 1110  CALL  -3288: PRINT  CHR$(4)"CATALOG,D"DR: REM   DOS 3.3
  48. 1115  ONERR  GOTO 2000
  49. 1116  RETURN 
  50. 1120  REM <CTRL-M><CTRL-J>ANY KEY<CTRL-J>
  51. 1130  PRINT : PRINT : HTAB 16: PRINT "ANY KEY: ";: GET ZZ$: RETURN 
  52. 1250  REM <CTRL-M><CTRL-J>DO & LIST<CTRL-J>
  53. 1260  HOME : TEXT : INVERSE : PRINT " SCREENS IN AUXILIARY MEMORY: ";: NORMAL : PRINT : PRINT : &  LIST : GOTO 1120
  54. 1300  REM <CTRL-M><CTRL-J>SAVE TO AUX MEMORY<CTRL-J>
  55. 1305  GOSUB 1900: HOME : VTAB 10: HTAB 10: INPUT "SCREEN NAME: ";S$: IF S$ = ""  THEN  RETURN 
  56. 1310 N = 6: GOSUB 3000: IF TY <3  THEN L = L/7:R = R/7: GOTO 1400
  57. 1320  &  LOAD Z$
  58. 1400  IF CR  THEN  & TYP(TY), SAVE S$,L +1,T +1,R -L +1,B -T +1: RETURN 
  59. 1410  & TYP(TY), SAVE S$: RETURN 
  60. 1500  REM <CTRL-M><CTRL-J>CROP<CTRL-J>
  61. 1510  GOSUB 1900: GOSUB 2500
  62. 1600 T = 0:L = 0:B = B(TY):R = R(TY): CALL 16384(L,R,T,B,R,B,TY)
  63. 1601  IF TY = 3  OR TY = 4  THEN B =  INT(B/2):T =  INT(T/2)
  64. 1605  IF T = 0  AND L = 0  AND B = B(TY)  AND R = R(TY)  THEN CR = 0: RETURN 
  65. 1610 CR = 1: RETURN 
  66. 1700  REM <CTRL-M><CTRL-J>LOAD SCREEN<CTRL-J>
  67. 1710  HOME : VTAB 10: HTAB 5: PRINT "LIST FIRST";: GOSUB 2100: IF YES  THEN  PRINT : &  LIST 
  68. 1720  PRINT : PRINT : HTAB 5: INPUT "SCREEN NAME: ";S$: IF S$ = ""  THEN  RETURN 
  69. 1725  ONERR  GOTO 1735
  70. 1730  &  LOAD Z$
  71. 1735  ONERR  GOTO 2000
  72. 1740  &  LOAD S$, GET A
  73. 1745  FOR I = 1 TO 6: IF A = TY(I)  THEN TYP = I
  74. 1750  NEXT : IF TYP >2  THEN  & "F", SAVE Z$
  75. 1800  GOSUB 2500
  76. 1810 A =  PEEK(49152): IF A <128  THEN 1810
  77. 1815  IF A = 204  THEN  POKE 49238,0: POKE 49168,0: GOTO 1810: REM   LO-RES
  78. 1820  POKE 49168,0: RETURN 
  79. 1900  REM <CTRL-M><CTRL-J>PICTURE LOADED?<CTRL-J>
  80. 1910  IF TYP  THEN  RETURN 
  81. 1920  HOME : VTAB 10: HTAB 8: PRINT "** LOAD A SCREEN FIRST **": POP : GOTO 1130
  82. 2000  REM <CTRL-M><CTRL-J>ONERR HANDLER<CTRL-J>
  83. 2010  POKE 216,0:A =  PEEK(222): IF A = 255  THEN  TEXT : END 
  84. 2020  FOR E = 1 TO ME: IF A = E(E)  THEN 2040
  85. 2030  NEXT :E = 0
  86. 2040  TEXT : HOME : VTAB 8: GOSUB 1000: PRINT "<CTRL-M><CTRL-M>*** "E$(E)" ERROR ***": PRINT : HTAB 30: PRINT "(IN " PEEK(218) +256 * PEEK(219)")": GOSUB 1000: PRINT : GOSUB 1120: ONERR  GOTO 2000
  87. 2050  GOTO 500
  88. 2100  REM <CTRL-M><CTRL-J>YES OR NO<CTRL-J>
  89. 2110  PRINT " (Y/N) : N" CHR$(8);
  90. 2120  GET A$: IF A$ = "Y"  OR A$ = "y"  THEN  PRINT A$;:YE = 1: RETURN 
  91. 2130  IF A$ = "N"  OR A$ = "n"  OR A$ =  CHR$(13)  THEN  PRINT A$;:YE = 0: RETURN 
  92. 2140  CALL  -198: GOTO 2120
  93. 2200  REM <CTRL-M><CTRL-J>CLEAR SCREEN<CTRL-J>
  94. 2210  HOME : VTAB 7: HTAB 10: PRINT "CLEAR: ": PRINT :N = 6: GOSUB 3000: ON TYP GOTO 2230,2220,2250,2240,2270,2280
  95. 2220  CALL  -3086: POKE 49153,0: POKE 49237,0
  96. 2230  CALL  -3086: RETURN 
  97. 2240  CALL  -1998: POKE 49153,0: POKE 49237,0
  98. 2250  CALL  -1998
  99. 2260  & "F", SAVE Z$: RETURN 
  100. 2270  HOME : GOTO 2260
  101. 2280  HOME : POKE 49153,0: POKE 49237,0: GOTO 2270
  102. 2500  REM <CTRL-M><CTRL-J>SHOW SCREEN<CTRL-J>
  103. 2505  IF TYP >2  THEN  & "F", LOAD Z$
  104. 2520  IF TYP = 2  OR TYP = 4  OR TYP = 6  THEN  POKE 49167,0: POKE 49153,0: POKE 49165,0: POKE 49246,0
  105. 2530  POKE 49239,0: IF TYP = 3  OR TYP = 4  THEN  POKE 49238,0
  106. 2540  IF TYP = 1  OR TYP = 2  OR TYP = 3  OR TYP = 4  THEN  POKE 49232,0: POKE 49234,0: POKE 49236,0
  107. 2560  RETURN 
  108. 3000  REM <CTRL-M><CTRL-J>GET TYPE<CTRL-J>
  109. 3010  PRINT : FOR I = 1 TO N: HTAB 10: PRINT "<"I"> "TY$(I): NEXT : PRINT : HTAB 10: PRINT "SELECT TYPE: "TYP; CHR$(8);
  110. 3020  GET A$: IF A$ =  CHR$(13)  THEN  RETURN 
  111. 3025 A =  VAL(A$): IF A <1  OR A >6  THEN  POP : RETURN 
  112. 3030 TYP = A: PRINT A$;: RETURN