home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.A.po / FEATURES:BEAGLE / PRO.BYTER.SHK / PRO.BYTER / CALL.BASIC.bas < prev    next >
BASIC Source File  |  2000-01-01  |  6KB  |  81 lines

  1. 0  GOTO 10
  2. 1  REM THIS SPACE FOR RENT.
  3. 2  END 
  4. 10  ONERR  GOTO 8000
  5. 1000  SPEED= 255: PRINT  CHR$(21): TEXT : HOME : INVERSE :X = 14: PRINT : PRINT 
  6. 1005  GOSUB 9995: GOSUB 9999: IF   NOT ( PEEK(16384) = 173  AND  PEEK(16497) = 55  AND  PEEK(16819) = 89)  THEN  PRINT D$"BLOADCALL.BASIC.BIN,A$4000"
  7. 1006  REM <CTRL-J><CTRL-J>DISPLAY MENU<CTRL-J>
  8. 1010 X = 10: PRINT 
  9. 1015  VTAB 11: CALL CS: PRINT : HTAB X: PRINT "D - DEMONSTRATE CALL.BASIC"
  10. 1025  PRINT : HTAB X: PRINT "E - ENTER A ONE-LINER"
  11. 1030  PRINT : HTAB X: PRINT "A - ASSEMBLE"
  12. 1035  PRINT : HTAB X: PRINT "L - LEAVE THIS PROGRAM"
  13. 1050  FOR I = 0 TO 3: VTAB 12 +2 *I: HTAB X: INVERSE : PRINT A$(I);: FOR J = 0 TO 30: GOSUB 9500: NEXT : NORMAL : HTAB X: PRINT A$(I): NEXT : GOTO 1050
  14. 1999  REM <CTRL-J><CTRL-J>DEMO<CTRL-J>
  15. 2000  HOME : INVERSE : PRINT " CALL.BASIC DEMO:": NORMAL 
  16. 2018  SPEED= 234: PRINT : PRINT "THIS SIMPLE 1-LINER AVERAGES 3 NUMBERS:": PRINT : PRINT "1  PRINT "Q$"THE AVERAGE IS:"Q$";(A+B+C)/3": PRINT 
  17. 2020  PRINT "AFTER ASSEMBLING THIS 1-LINER INTO A    CALL.BASIC FILE ON DISK, YOU COULD USE  IT LIKE THIS:"
  18. 2025  PRINT : PRINT "- BRUN AVERAGER,A16384 (OR ANY ADDRESS) - A=123: B=50: C=999 (ANY VALUES)       - CALL 16384 (SAME NO.AS BRUN ADDRESS)"
  19. 2030  PRINT : PRINT "CALL.BASIC ROUTINES CAN BE LOADED AND   USED FROM WITHIN PROGRAMS TOO:"
  20. 2035  PRINT : PRINT "  100 AVG=16384": PRINT "  110 PRINT CHR$(4)"Q$"BRUN AVERAGER,A"Q$"AVG": PRINT "  200 A=12345: B=23456: C=34567": PRINT "  300 CALL AVG"
  21. 2040  PRINT : PRINT "COMPLEX 1-LINERS WORK TOO.": PRINT "USE YOUR IMAGINATION!";
  22. 2055  GOSUB 10000
  23. 2060  INVERSE : PRINT " ANOTHER DEMO:": NORMAL : PRINT 
  24. 2070  PRINT "YOU CAN PRINT A STRING AS MANY TIMES AS YOU WANT, THANKS TO THIS 1-LINE ROUTINE THAT IS ACTUALLY IN MEMORY NOW AT 16544:";: PRINT 
  25. 2080  PRINT "  1 FOR I=1 TO X: PRINT A$;: NEXT: PRINT"
  26. 2090  PRINT "HERE'S HOW YOU PRINT A STRING 13 TIMES:    A$="Q$"-*-"Q$":X=13:CALL 16544": PRINT :A$ = "-*-":X = 13: CALL 16544: PRINT 
  27. 2095  PRINT : PRINT "OR WE KIND OF LIKE:": PRINT "   A$="Q$" BEAGLE BROS "Q$":X=21:CALL 16544":A$ = " BEAGLE BROS ": PRINT :X = 21: CALL 16544: PRINT 
  28. 2120  GOSUB 10000
  29. 2140  INVERSE : PRINT " AND ANOTHER:": NORMAL : PRINT : PRINT "HERE'S A PROGRAM THAT DRAWS A HI-RES    BOX. X AND Y ARE THE COORDINATES AND L  IS THE LENGTH OF EACH SIDE:"
  30. 2160  PRINT : PRINT " 1  HPLOT X,Y TO X + L,Y TO X + L            ,Y + L TO X,Y + L TO X,Y"
  31. 2170  PRINT : PRINT : PRINT "HERE'S A SAMPLE APPLESOFT PROGRAM THAT  CALLS THE ROUTINE ABOVE AT 16676:"
  32. 2180  LIST 2500 -2520: PRINT "IMPORTANT: ANY IF-STATEMENT MUST BE ON  A SEPARATE LINE FROM THE CALL."
  33. 2188  VTAB 23: PRINT : PRINT "PRESS A KEY TO SEE IT WORK:";: GET A$: PRINT A$: HOME 
  34. 2500  HGR : HCOLOR= 3:BOX = 16676:X = 10:Y = 50:L = 10
  35. 2510  CALL BOX
  36. 2520 X = X +10:Y = Y -3:L = X: IF X <130  THEN 2510
  37. 2530  HOME : VTAB 22: PRINT "TYPE "Q$"RUN"Q$" TO RESTART PROGRAM.": SPEED= 255: END 
  38. 3999  REM <CTRL-J><CTRL-J>ENTER ROUTINE<CTRL-J>
  39. 4000  HOME : PRINT : INVERSE : PRINT " TO ENTER YOUR ROUTINE:": NORMAL 
  40. 4010  PRINT : PRINT "1.REPLACE LINE 1 WITH YOUR ONE-LINER.": PRINT "  (AVOID DOS COMMANDS, GOTO & GOSUB.)"
  41. 4100  PRINT : PRINT "2.TEST YOUR ONE-LINER BY TYPING "Q$"RUN 1"Q$".";: HTAB 34: PRINT "-----": PRINT "3.TYPE "Q$"RUN"Q$" AND SELECT A:ASSEMBLE.";: HTAB 25: INVERSE : PRINT "A": NORMAL : HTAB 9: PRINT "---"
  42. 4110  FOR I = 1 TO 40: PRINT "-";: NEXT : PRINT "CAUTION: DON'T CALL YOUR ROUTINE FROM   WITHIN A FOR-NEXT LOOP OR FROM A LINE   THAT CONTAINS AN IF STATEMENT.": FOR I = 1 TO 40: PRINT "-";: NEXT 
  43. 4500  PRINT : PRINT "REPLACE LINE 1 NOW:": POKE 34,17: LIST  -2: TEXT : VTAB 23: END 
  44. 5999  REM <CTRL-J><CTRL-J>ASSEMBLE<CTRL-J>
  45. 6000  HOME : INVERSE : PRINT " ASSEMBLING:": NORMAL : PRINT 
  46. 6120  POKE 34,2: HOME : POKE 33,33: LIST 1:V =  PEEK(37) +1:L = V -2
  47. 6200 Q = 0:C =  -1: FOR I = 4 TO L: VTAB I:SB =  PEEK(40) + PEEK(41) *256: REM        CALCULATE SCREEN BASE
  48. 6205  FOR J = SB TO SB +32:B =  PEEK(J): POKE J,32: FOR R = 0 TO 20: NEXT : POKE J,B: REM   SCANNING CURSOR
  49. 6210  IF J <1411  AND I = 4  THEN  NEXT : REM      SKIP THE LINE NUMBER
  50. 6212  IF B < >160  OR Q = 1  THEN C = C +1:M1 =  PEEK(49200): POKE ST +C,B -128: REM  ADD ANOTHER CHARACTER
  51. 6215  IF B = 162  THEN Q = 1 -Q: REM  TOGGLE QUOTE FLAG
  52. 6220  VTAB V: HTAB 10: PRINT "DRIVER LENGTH: 108"
  53. 6240  VTAB V +1: HTAB 10: PRINT "YOUR ROUTINE : ";: IF C +1 <100  THEN  PRINT " ";
  54. 6245  IF C +1 <10  THEN  PRINT " ";
  55. 6250  PRINT C +1"  ";
  56. 6255  VTAB V +2: HTAB 10: PRINT "------------------"
  57. 6260  VTAB V +3: HTAB 10: PRINT "TOTAL BYTES  : "C +109"  "
  58. 6300  NEXT : NEXT :EN = ST +C +1: POKE EN,0: NORMAL : POKE 33,40:A = 16384: CALL A
  59. 6330  POKE 34,0: VTAB V +4: PRINT : PRINT "YOUR ROUTINE IS NOW INSTALLED IN MEMORY.TO TEST IT, CALL 16384.                             ----------"
  60. 6335  PRINT : PRINT "TO SAVE YOUR ROUTINE ON DISK, TYPE:": PRINT " BSAVE ANYNAME........,A16384,E"EN: PRINT " ------------------------------------"
  61. 6340  PRINT : PRINT "IF YOU MIGHT WANT TO EDIT YOUR 1-LINER  LATER, SAVE THIS ENTIRE PROGRAM NOW.           ------------------------";: VTAB  PEEK(37) -5: END 
  62. 7999  REM <CTRL-J><CTRL-J>ERROR<CTRL-J>
  63. 8000 EL =  PEEK(219) *256 + PEEK(218):ER =  PEEK(222)
  64. 8010  IF ER = 6  AND EL = 6400  THEN 6410
  65. 8015  IF ER = 8  THEN  PRINT BP$: PRINT "   CHECK THE DRIVE AND PRESS ANY KEY": WAIT KP,128: POKE KR,0: RESUME 
  66. 8020  IF ER = 6  THEN  TEXT : HOME : VTAB 8: PRINT BP$: PRINT "THE FILE "Q$"CALL.BASIC.BIN"Q$" IS MISSING.": END 
  67. 8030  POKE 216,0: RESUME 
  68. 8999  REM <CTRL-J><CTRL-J>GET KEYPRESS<CTRL-J>
  69. 9500 KEY =  PEEK(KP): IF KEY <128  THEN  RETURN 
  70. 9510  NORMAL : POKE KR,0: IF KEY >224  THEN KEY = KEY -32
  71. 9515  IF KEY = 196  THEN 2000: REM  DEMO
  72. 9520  IF KEY = 197  THEN 4000: REM    ENTER
  73. 9525  IF KEY = 193  THEN 6000: REM    ASSEMBLE
  74. 9530  IF KEY = 204  THEN  VTAB 21: PRINT : PRINT "COME BACK SOON.": END 
  75. 9535  PRINT BP$;: RETURN 
  76. 9899  REM <CTRL-J><CTRL-J>DEFINE VARIABLES<CTRL-J>
  77. 9995 ST = 16492:D$ =  CHR$(4):Q$ =  CHR$(34):BP$ =  CHR$(7):KP = 49152:KR = 49168:A$(0) = "D":A$(1) = "E":A$(2) = "A":A$(3) = "L"
  78. 9997 CS =  -958:CL =  -868: RETURN 
  79. 9998  REM <CTRL-J><CTRL-J>TITLE SCREEN<CTRL-J>
  80. 9999  INVERSE : HTAB X: PRINT ":" SPC( 12)":": HTAB X: PRINT "  CALL.BASIC  ": HTAB X: PRINT ":" SPC( 12)":": NORMAL : PRINT : HTAB X -8: PRINT "BY BERT KERSEY & RANDY BRANDT": HTAB X -1: PRINT "BEAGLE BROS, INC.": PRINT : HTAB X: PRINT "(READ PAGE 38)": RETURN 
  81. 10000  FLASH : VTAB 24: HTAB 37: PRINT "KEY";: NORMAL : WAIT KP,128: POKE KR,0: HOME : RETURN