home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 22 / 022.d81 / communique (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  3KB  |  139 lines

  1. 0 zz$="":ifdl=1thendl=0:goto16020
  2. 1 rem           "communique"
  3. 2 rem      written by alan gardner
  4. 3 rem             2-21-86
  5. 4 rem
  6. 5 rem
  7. 6 iflf=0thenlf=1:load"unpacker",8,1
  8. 7 iflf=1thenlf=2:load"gallery.shps.lnk",8,1
  9. 8 iflf=2thenlf=3:load"textplot.8192.o",8,1
  10. 9 iflf=3thenlf=4:load"input.2.o",8,1
  11. 10 dimt$(300),vl$(30),vl%(30):open8,8,8,"gallery.text":lc=0:ll=0
  12. 11 sys828,8,80:zz$=zz$+""
  13. 12 ifleft$(zz$,2)="^@"thenll=ll+1:vl$(ll)=mid$(zz$,3):vl%(ll)=lc:goto11
  14. 13 ifzz$<>"[199]"thenlc=lc+1:t$(lc)=zz$:goto11
  15. 15 close8:close15:lc=lc-1
  16. 30 :
  17. 40 cl=1:re=0:dimlk$(20),ll$(20):c$="":z$=""
  18. 42 lm=0:rm=39:tm=0:bm=23:ty=0:text=8192
  19. 43 s$="                                       "
  20. 44 d$=""
  21. 50 :
  22. 55 gosub11000:sys51459:poke53280,0
  23. 56 :
  24. 60 rem
  25. 61 c$=t$(cl):ifc$=""thent$(cl)=" ":goto90
  26. 62 c$=left$(t$(cl),1):ifc$="'"thencl=cl+1:goto60
  27. 70 ifc$="^"thengosub1000:goto60
  28. 80 :
  29. 90 rem  routine to print text here
  30. 91 z$=t$(cl):systext,z$,lm*8,(tm+ty)*8
  31. 92 printt$(cl)
  32. 93 ty=ty+1
  33. 99 cl=cl+1:goto60
  34. 100 rem     *************************
  35. 110 end:rem *     end of body       *
  36. 120 rem     *************************
  37. 130 :
  38. 1000 rem   check options
  39. 1010 c$=mid$(t$(cl),2,1)
  40. 1020 :
  41. 1030 ifc$="l"thenlm=val(mid$(t$(cl),3)):     goto2000
  42. 1032 ifc$="r"thenrm=val(mid$(t$(cl),3)):     goto2000
  43. 1034 ifc$="t"thentm=val(mid$(t$(cl),3)):     goto2000
  44. 1036 ifc$="b"thenbm=val(mid$(t$(cl),3)):     goto2000
  45. 1040 :
  46. 1050 ifc$="c"thengosub10000:goto2000:         rem clear
  47. 1060 ifc$="w"thengosub11000:goto2000:         rem wipe
  48. 1070 ifc$="p"thengosub12000:goto2000:         rem plot shp
  49. 1080 ifc$="k"thengosub13000:goto2000:         rem wait
  50. 1090 ifc$="i"thengosub20000:goto2010:         rem input
  51. 1100 ifc$="x"thenifre=0then60000:             rem exit
  52. 1110 ifc$="x"thencl=re+1:re=0:goto2010:       rem return from sub
  53. 1120 ifc$="g"thengosub14000:goto2010:         rem goto
  54. 1130 ifc$="s"thengosub15000:goto2010:         rem gosub
  55. 1140 ifc$="d"thengosub16000:goto2000:         rem load a table
  56. 2000 rem  return to line 70
  57. 2005 cl=cl+1
  58. 2010 return
  59. 3000 :
  60. 10000 rem   clear current window
  61. 10010 op=val(right$(t$(cl),1))
  62. 10020 ifop=0then  rem    change eor to something else
  63. 10030 ifop=1then  rem    change something else to eor
  64. 10040 sp$=left$(s$,rm-lm+1)
  65. 10050 for t=tm to bm
  66. 10060 sys text,sp$,lm*8,t*8
  67. 10070 next t:ty=0
  68. 10080 return
  69. 10090 :
  70. 11000 rem   clear entire screen
  71. 11010 shp=0:px=0:py=0:gosub12100:ty=0:        return
  72. 11020 :
  73. 12000 rem   plot a shape
  74. 12010 ch=1:c=4
  75. 12020 ifmid$(t$(cl),ch,1)=";"thenshp=val(mid$(t$(cl),c,ch-1)):goto12040
  76. 12030 ch=ch+1:goto12020
  77. 12040 c=c+ch-1
  78. 12050 ifmid$(t$(cl),ch,1)=";"thenpx=val(mid$(t$(cl),c,ch-1)):goto12070
  79. 12060 ch=ch+1:goto12050
  80. 12070 py=val(mid$(t$(cl),c+ch))
  81. 12100 rem *** plot a shape ***
  82. 12110 poke249,224:poke250,204
  83. 12120 poke251,0:poke252,64
  84. 12130 poke253,px:poke254,py
  85. 12140 poke255,shp
  86. 12150 sys51462
  87. 12170 return
  88. 12180 :
  89. 13000 rem  wait for a keypress
  90. 13010 poke198,0:wait198,1:getk$:return
  91. 13020 :
  92. 14000 rem  goto a label
  93. 14010 l$=mid$(t$(cl),4):l=0:gosub14500
  94. 14020 cl=l:return
  95. 14030 :
  96. 14500 rem  find a label in the text
  97. 14510 for x=1 to ll
  98. 14520 ifvl$(x)=l$thenl=vl%(x):goto14550
  99. 14530 nextx
  100. 14540 print"unknown label --- "l$:stop
  101. 14550 return
  102. 14560 :
  103. 15000 rem  gosub a label
  104. 15010 l$=mid$(t$(cl),4):l=0:gosub14500
  105. 15020 re=cl:cl=l:return
  106. 15030 :
  107. 16000 rem   load a table
  108. 16005 f$=mid$(t$(cl),4)
  109. 16010 dl=1:loadf$,8,1
  110. 16020 rem   come from line zero
  111. 16030 cl=cl+1:goto60
  112. 16040 :
  113. 20000 rem  input certain keys and goto the designated label
  114. 20010 t$=t$(cl)
  115. 20020 nk=1:c=4
  116. 20030 vk$(nk)=mid$(t$,c,1)
  117. 20040 ifmid$(t$,c+1,1)=";"thennk=nk+1:c=c+2:goto20030
  118. 20050 rem  nk=num of valid keys
  119. 20060 c=c+2:ch=c
  120. 20080 forx=1tonk-1
  121. 20090 ifmid$(t$,ch,1)=";"then20110
  122. 20100 ch=ch+1:goto20090
  123. 20110 vl$(x)=mid$(t$,c,ch-c)
  124. 20120 c=ch+1:ch=c
  125. 20130 nextx:vl$(nk)=mid$(t$,ch)
  126. 20140 rem  labels in vl$(1-nk)
  127. 20150 :
  128. 20160 poke198,0:wait198,1:getk$
  129. 20170 forx=1tonk
  130. 20180 ifk$=vk$(x)then20200
  131. 20190 nextx:goto20160
  132. 20200 l$=vl$(x):gosub14500
  133. 20210 cl=l
  134. 20220 return
  135. 22000 :
  136. 60000 rem  return to magazette
  137. 60005 sys 51459:print"[147]":poke928,0
  138. 60010 load"hello connect",8:end
  139.