home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib34b.dsk / NR.CONVERTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  17KB  |  235 lines

  1. 10  REM ******************************
  2. 20  REM *                            *
  3. 30  REM *         NR.CONVERTER       *
  4. 40  REM *      BY SHERMAN PADDOCK    *
  5. 50  REM *      COPYRIGHT (C) 1988    *
  6. 60  REM *      by MICROSPARC, INC    *
  7. 70  REM *      CONCORD, MA 01742     *
  8. 80  REM *                            *
  9. 90  REM ******************************
  10. 100  PRINT  CHR$(21): GOTO 1230
  11. 110  REM Key-press routine
  12. 120  GET A$:AA =  ASC(A$):A$ =  CHR$(AA -32 *(AA >96  AND AA <122)): ON A$ =  CHR$(3) GOTO 2230: RETURN 
  13. 130  REM Input routine
  14. 140  ON WN$ = "" GOSUB 960: VTAB 18
  15. 150 MX = 19 - INT(( LEN(WN$) + LEN(NR$))/2): HTAB 1 +(MX -1) *(MX >0): PRINT " "NR$WN$" " CHR$(8);
  16. 160  GOSUB 120: ON N  AND A$ < > CHR$(13) GOSUB 210: ON (A$ =  CHR$(13)  AND  LEN(WN$) >0)  OR (A$ =  CHR$(27)) GOTO 190: ON A$ < > CHR$(8) GOTO 180: IF  LEN(WN$) <2  THEN WN$ = "": GOTO 140
  17. 170 WN$ =  LEFT$(WN$, LEN(WN$) -1): GOTO 150
  18. 180  ON (A$ = "1"  OR A$ = "2")  AND WN$ = "" GOTO 190: ON A$ <" " GOTO 160: ON   NOT  LEN(WN$) GOSUB 220:WN$ = WN$ +A$:LW =  LEN(WN$): IF (LW <38  AND   NOT L6)  OR (L6  AND LW <7)  THEN 150
  19. 190  RETURN 
  20. 200  REM Clear line routine
  21. 210 N = 0
  22. 220  VTAB 19: PRINT : PRINT  SPC( 40)"": VTAB 18: RETURN 
  23. 230  REM Print page working on
  24. 240  VTAB 6: HTAB 16: PRINT "PANEL # " RIGHT$(" " + STR$(PAGE),2): RETURN 
  25. 250  REM Set CATalog command
  26. 260 DS$ =  LEFT$("CATALOG",7 -4 *PRODOS) +",D": RETURN 
  27. 270  REM Clear screen routine
  28. 280  HOME :V = 0: VTAB 14: RETURN 
  29. 290  REM TeXT-to-NewsRoom transfer
  30. 300 B$ = "TEXT-TO-NEWSROOM TRANSFER":F$ = TFILE$:E$ = ">PN." +NFILE$: GOSUB 790: GOSUB 240: VTAB 8
  31. 310  REM Bring in text file
  32. 320 A2 =  PEEK(34): ONERR  GOTO 400
  33. 330  PRINT D$"OPEN"TFILE$DR$
  34. 340  PRINT D$"READ"TFILE$: GOSUB 510
  35. 350  GET A$: ON A$ < > CHR$(13)  AND A$ <" " GOTO 350: IF  PEEK(37) = 23  THEN  HOME 
  36. 360 F$(I) = F$(I) +A$: IF A$ =  CHR$(13)  OR ( LEN(F$(I)) >34  AND (A$ = ""  OR A$ = " "  OR A$ = "."))  THEN I = I +1
  37. 370  IF A$ =  CHR$(13)  OR A$ > CHR$(31)  THEN  PRINT A$;
  38. 380  IF I >49  THEN  GOSUB 430: GOTO 340
  39. 390  GOTO 350
  40. 400  ON  PEEK(222) < >5 GOTO 2270: POKE 216,0: PRINT D$"CLOSE"
  41. 410  ON F$(4) = "" GOTO 2280: GOSUB 430: GOSUB 510: GOTO 410
  42. 420  REM Indicate end of each panel
  43. 430 A1 =  PEEK(36) +1: POKE 34, PEEK(37) +2: VTAB 24:I = I -(  NOT  LEN(F$(I))): IF PRODOS  THEN  PRINT D$"FRE": GOTO 460
  44. 440 J =  FRE(0)
  45. 450  REM Poke in NewsRoom string
  46. 460  CALL 768:J =  PEEK(ADRS) + PEEK(ADRS +1) *256 +7
  47. 470  REM Save NewsRoom file
  48. 480  PRINT D$"BSAVE PN."NFILE$;PAGE",A"ADRS;",L"J;DN$:J = 0:PAGE = PAGE +1
  49. 490 I = I -22: RETURN 
  50. 500  REM Reposition screen
  51. 510  ON I <5 GOTO 520: HOME : GOSUB 240: VTAB  PEEK(34) -1: HTAB A1
  52. 520  POKE 34,A2: RETURN 
  53. 530  VTAB 14: PRINT  TAB( 16)"LOADING": RETURN 
  54. 540  VTAB 14: HTAB 16: INVERSE : PRINT "MERGING": NORMAL : RETURN 
  55. 550  REM NewsRoom-to-NewsRoom
  56. 560 B$ = "NEWSROOM-TO-NEWSROOM MERGE":F$ = "PN." +NFILE$:E$ = ">PN." +TFILE$: GOSUB 790: VTAB 8
  57. 570  GOSUB 530: PRINT D$"BLOAD PN."TFILE$DN$",A"ADRS:A1 =  PEEK(ADRS) + PEEK(ADRS +1) *256:A2 =  PEEK(ADRS +6) *13:A3 = ADRS +A1 +A2 +6
  58. 580  PRINT D$"DELETE PN."TFILE$: PRINT D$"BSAVE PN."TFILE$",A"ADRS",L"A1 +A2 +6
  59. 590  PRINT D$"BLOAD PN."NFILE$DS$",A"A3:A4 =  PEEK(A3) + PEEK(A3 +1) *256:A5 =  PEEK(A3 +6) *13:A6 = A1 +A2 +A4 +6:A7 = A3 -(7 +A5)
  60. 600  GOSUB 540: PRINT D$"BLOAD PN."NFILE$DS$",A"A7:A9 = A1 +A4 -1
  61. 610  PRINT D$"BLOAD PN."TFILE$DN$",A"ADRS: POKE ADRS +1, INT(A9/256): POKE ADRS,A9 - PEEK(ADRS +1) *256
  62. 620  PRINT D$"BSAVE PN."TFILE$DN$",A"ADRS",L"A6: GOTO 2280
  63. 630  REM NewsRoom to TeXT transfer
  64. 640 B$ = "NEWSROOM-TO-TEXT TRANSFER":F$ = "":E$ = ">" +TFILE$: GOSUB 790:J = 1: GOSUB 720:L = L -1:A8 = 8:A9 = 1
  65. 650  ONERR  GOTO 670
  66. 660  PRINT D$"DELETE"TFILE$
  67. 670  POKE 216,0: PRINT D$"OPEN"TFILE$: PRINT D$"CLOSE":J = 0
  68. 680 J = J +1: ON J >L GOTO 2280: GOSUB 720:K =  FRE(0): ONERR  GOTO 730
  69. 690  ON PRODOS GOSUB 530: PRINT D$"BLOAD PN."F$(J): POKE 216,0:A1 =  PEEK(ADRS) + PEEK(ADRS +1) *256 -2:A2 =  PEEK(ADRS +6) *13 +7 +ADRS: ONERR  GOTO 740
  70. 700  ON PRODOS GOSUB 540: PRINT D$"APPEND"TFILE$DN$: PRINT D$"WRITE"TFILE$: VTAB A8: HTAB A9: FOR K = A2 TO A2 +A1: IF  PEEK(37) = 23  THEN  HOME 
  71. 710  PRINT  CHR$( PEEK(K));: NEXT :A8 =  PEEK(37) +1:A9 =  PEEK(36) +1: PRINT D$"CLOSE": GOTO 680
  72. 720  VTAB 4: PRINT "PN." LEFT$( LEFT$(F$(J), LEN(F$(J)) -3) +"-------",11):PAGE = J: GOSUB 240: RETURN 
  73. 730  GOTO 2270
  74. 740  GOTO 2270
  75. 750  REM 
  76. 760  VTAB 9: PRINT "EITHER": PRINT : PRINT " - REINSERT DISKETTE AND PRESS <RETURN>"
  77. 770  PRINT : PRINT " - OR ENTER THE OTHER DRIVE NUMBER": PRINT : PRINT "- OR PRESS <ESC> TO ABORT": VTAB 23: PRINT  CHR$(7) TAB( 14)"ENTER KEY ";: RETURN 
  78. 780  REM Print work heading
  79. 790  ON  LEN(F$) + LEN(E$) <36 GOTO 810: IF  LEN(E$) > LEN(F$)  THEN E$ =  LEFT$(E$,32 - LEN(F$)) +"(+)": GOTO 810
  80. 800 F$ =  LEFT$(F$,32 - LEN(E$)) +"(+)"
  81. 810  TEXT : HOME : POKE 216,0: GOSUB 1000: PRINT : VTAB 4: PRINT F$;: FOR J =  LEN(F$) + LEN(E$) TO 39: PRINT "-";: NEXT 
  82. 820  PRINT E$: VTAB 6: FOR J = 1 TO 40: PRINT ".";: NEXT : GOSUB 930: RETURN 
  83. 830  REM Confirm file names
  84. 840  GOSUB 280: GOSUB 1000: PRINT : GOSUB 1080:B$ = "IS THIS CORRECT?  <Y>": GOSUB 1000: PRINT H$;
  85. 850  GOSUB 120: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 860: ON A$ < >"Y"  AND A$ < > CHR$(13) GOTO 850
  86. 860  RETURN 
  87. 870  REM Display title
  88. 880  POKE 216,0: TEXT : HOME : VTAB 3:B$ = "THE NEWSROOM CONVERTER": GOSUB 1000: PRINT : PRINT :B$ = G$
  89. 890  GOSUB 1000: PRINT : NORMAL : PRINT :B$ = "COPYRIGHT (C) 1988": GOSUB 1000: PRINT 
  90. 900 B$ = "BY MICROSPARC, INC": GOSUB 1000: PRINT :B$ = "CONCORD, MA. 01742": GOSUB 1000: PRINT 
  91. 910  FOR J = 1 TO 40: VTAB 1: HTAB J: PRINT "*": VTAB 11: HTAB J: PRINT "*": NEXT 
  92. 920  VTAB 2: FOR J = 3 TO 12: PRINT "*";: HTAB 40: PRINT "*" CHR$(8): NEXT 
  93. 930  PRINT : POKE 34, PEEK(37): RETURN 
  94. 940  REM Write lower message
  95. 950 B$ = "(OR PRESS <RETURN> TO OVERWRITE ANYWAY)": GOTO 970
  96. 960 B$ = "(ENTER DRIVE # TO CATALOG)": PRINT 
  97. 970  PRINT : VTAB 20: GOSUB 1000: PRINT :B$ = "(PRESS ESCAPE TO START OVER)": GOSUB 1000: RETURN 
  98. 980  REM Clear line, then center text
  99. 990  HTAB 1: PRINT  SPC( 38)
  100. 1000  IF  LEN(B$) <40  THEN  HTAB 20 - INT( LEN(B$)/2 +.5)
  101. 1010  PRINT B$;: RETURN 
  102. 1020  REM Print option
  103. 1030  PRINT : VTAB 14 +J +(J = 4): PRINT A$(J = G);J"  ";: IF J = G  THEN  INVERSE 
  104. 1040  PRINT A$(J +1): NORMAL : RETURN 
  105. 1050  POKE 216,0:NR$ = "PN.":DR$ = DD$: RETURN 
  106. 1060  GOSUB 280:NR$ = "":B$ = "ENTER TEXT FILE'S NAME": GOSUB 1000: PRINT : RETURN 
  107. 1070  REM Print file name inversed & centered
  108. 1080  PRINT : PRINT : PRINT :B$ = NR$ +WN$: INVERSE : GOSUB 1000: NORMAL : PRINT : VTAB 24: RETURN 
  109. 1090  PRINT : PRINT : GOSUB 1000: PRINT  CHR$(7): PRINT : PRINT : RETURN 
  110. 1100  REM BACKSPACE or UP-ARROW pressed
  111. 1110 A$ =  STR$(G -1 +4 *(G = 1)): RETURN 
  112. 1120  REM RIGHT- or DOWN-ARROW pressed
  113. 1130 A$ =  STR$(G +1 -4 *(G = 4)): RETURN 
  114. 1140  REM Choice entry routine
  115. 1150  HOME : FOR J = 1 TO 4: GOSUB 1030: NEXT :J = G
  116. 1160  VTAB 23: PRINT  TAB( 11)"ENTER CHOICE  <"G">"H$;
  117. 1170  GOSUB 120: ON A$ =  CHR$(13) GOTO 1190: ON A$ =  CHR$(8)  OR A$ =  CHR$(11) GOSUB 1110: ON A$ =  CHR$(21)  OR A$ =  CHR$(10) GOSUB 1130: IF A$ =  CHR$(27)  AND FLAG = 4  THEN G = 1:L = L -1: GOTO 1190
  118. 1180  ON A$ <"1"  OR A$ >"4" GOTO 1170:G =  VAL(A$): GOSUB 1030:J = G: GOSUB 1030: GOTO 1160
  119. 1190  RETURN 
  120. 1200  REM Establish panel number
  121. 1210 A$(2) = "ENTER NEWSROOM FILE NAME #" + RIGHT$(" " + STR$(L),2): RETURN 
  122. 1220  REM Initial setup
  123. 1230 PRODOS = ( PEEK(48896) = 76): IF   NOT PRODOS  THEN D$ =  CHR$(13)
  124. 1240 G = 1:AS =  PEEK(121) + PEEK(122) *256 -1
  125. 1250 PAGE = 1:ADRS = 16384:DD$ = ",D1":DN$ = DD$:D$ = D$ + CHR$(4):H$ =  CHR$(8) + CHR$(8): DIM F$(100),A$(5):G$ = "BY SHERMAN PADDOCK"
  126. 1260  PRINT  CHR$(26)1: PRINT D$"PR#0": REM Clears Franklin 80-column card
  127. 1270  GOSUB 880: ON  PEEK(768) + PEEK(769) < >233 GOSUB 2210
  128. 1280 A$(0) = "   ":A$(1) = "-->":A$(2) = "TRANSFER TEXT FILE TO NEWSROOM":A$(3) = "TRANSFER NEWSROOM TO TEXT FILE":A$(4) = "MERGE TWO NEWSROOM DATA FILES":A$(5) = "EXIT THIS PROGRAM"
  129. 1290  GOSUB 1150: IF G < >4  THEN  POKE AS, ASC( STR$(G)): VTAB 5: HTAB 2: PRINT  SPC( 37):B$ = A$(G +1):G$ = B$: INVERSE : GOSUB 1000: NORMAL : VTAB 23
  130. 1300  ON G GOTO 1700,1450,1320,2230
  131. 1310  REM NewsRoom to NewsRoom setup
  132. 1320  GOSUB 1050
  133. 1330 FLAG = 2: GOSUB 280:B$ = "ENTER PRIMARY NEWSROOM'S FILE NAME": GOSUB 1000: PRINT 
  134. 1340 WN$ = TFILE$: GOSUB 140: IF A$ =  CHR$(27)  THEN  ON WN$ = "" GOTO 2300:WN$ = ""
  135. 1350 TFILE$ = WN$: ON WN$ < >"" GOTO 1370: ON A$ <"1"  OR A$ >"2" GOTO 1330: GOTO 1730
  136. 1360  REM Confirm primary name
  137. 1370 B$ = "YOU WISH TO MERGE A FILE INTO": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1330: GOTO 1840
  138. 1380  POKE 216,0:DN$ = DS$
  139. 1390 FLAG = 3: GOSUB 280:B$ = "ENTER SECONDARY NEWSROOM'S FILE NAME": GOSUB 1000: PRINT 
  140. 1400 WN$ = NFILE$: GOSUB 140: IF A$ =  CHR$(27)  THEN  ON WN$ = "" GOTO 1320:WN$ = ""
  141. 1410 NFILE$ = WN$: ON WN$ < >"" GOTO 1430: ON A$ <"1"  OR A$ >"2" GOTO 1390: GOTO 1730
  142. 1420  REM Confirm secondary name
  143. 1430 B$ = "YOU WISH THE SECONDARY FILE NAME TO BE": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1390: GOTO 1840
  144. 1440  REM NewsRoom-to-TeXT File setup
  145. 1450  GOSUB 1050:L = 1:A$(3) = "LIST NEWSROOM FILE NAMES ENTERED":A$(4) = "ENTER YOUR TEXT FILE NAME"
  146. 1460 G = 2:FLAG = 4: GOSUB 280: GOSUB 1210:B$ = A$(2): GOSUB 1000: PRINT 
  147. 1470 WN$ = NFILE$: GOSUB 140: ON A$ < > CHR$(27) GOTO 1490: ON L = 1  AND WN$ = "" GOTO 2300: IF WN$ = ""  THEN L = L -1:NFILE$ =  LEFT$(F$(L), LEN(F$(L)) -3):F$(L) = "": GOTO 1460
  148. 1480 WN$ = ""
  149. 1490 NFILE$ = WN$: ON WN$ < >"" GOTO 1510: ON A$ <"1"  OR A$ >"2" GOTO 1460: GOTO 1730
  150. 1500  REM Confirm each NewsRoom file name entered
  151. 1510 B$ = "NEWSROOM FILE NAME #" + STR$(L) +" IS:": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1460: GOTO 1840
  152. 1520  REM Show menu of options available
  153. 1530 G = 1:F$(L) = NFILE$ +DS$:L = L +1: GOSUB 1210
  154. 1540 NR$ = "PN.": GOSUB 1150
  155. 1550  ON G GOTO 1460,1570,1630,2230
  156. 1560  REM List currently entered NewsRoom file names
  157. 1570  HOME :J = 0: VTAB 13 +4 *(L <13) - INT(L/3 -.5) *(L <13):SPACE9$ = "         ": REM nine spaces
  158. 1580 J = J +1:B$ = NR$ + LEFT$(F$(J), LEN(F$(J)) -3): ON L -J GOTO 1600:J = J +1:B$ =  LEFT$(B$ +SPACE9$,13) +NR$ + LEFT$(F$(J), LEN(F$(J)) -3)
  159. 1590  ON L -J GOTO 1600:J = J +1:B$ =  LEFT$(B$ +SPACE9$,26) +NR$ + LEFT$(F$(J), LEN(F$(J)) -3)
  160. 1600  GOSUB 1000: PRINT : ON L -J >1 GOTO 1580
  161. 1610  PRINT : VTAB 23: PRINT "PRESS RETURN TO CONTINUE";: GOSUB 120: ON A$ =  CHR$(27) GOTO 1570: GOTO 1540
  162. 1620  REM Enter text file name
  163. 1630 FLAG = 5: GOSUB 1060
  164. 1640 WN$ = TFILE$: ON N GOSUB 950: GOSUB 140: IF A$ =  CHR$(27)  THEN  ON WN$ = "" GOTO 1540:WN$ = "":N = 0
  165. 1650 TFILE$ = WN$: ON WN$ < >"" GOTO 1680: ON A$ <"1"  OR A$ >"2" GOTO 1630
  166. 1660  GOTO 1730
  167. 1670  REM Confirm text file name
  168. 1680  ON N GOTO 1860:B$ = "YOU WISH TO ESTABLISH": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1630: GOTO 1950
  169. 1690  REM TeXT File to NewsRoom setup
  170. 1700 FLAG = 1: GOSUB 1060
  171. 1710 WN$ = TFILE$: GOSUB 140: IF A$ =  CHR$(27)  THEN  ON WN$ = "" GOTO 2300:WN$ = ""
  172. 1720 TFILE$ = WN$: ON WN$ < >"" GOTO 1820: ON A$ <"1"  OR A$ >"2" GOTO 1700
  173. 1730  GOSUB 260:C$ = A$: ONERR  GOTO 1800
  174. 1740  REM Catalog routine
  175. 1750  IF A$ =  CHR$(27)  THEN  GOSUB 880: GOTO 1780
  176. 1760  TEXT : HOME : PRINT D$;DS$;C$:DD$ = ",D" +C$
  177. 1770  POKE 216,0: VTAB  PEEK(37) -4 *PRODOS: PRINT : PRINT : PRINT  TAB( 13 -5 *(  NOT PRODOS))"PRESS ANY KEY ";: GOSUB 120: GOSUB 880
  178. 1780  ON FLAG +1 GOTO 1900,1700,1330,1390,1460,1630
  179. 1790  REM Catalog error routine
  180. 1800  ON  PEEK(222) = 255 GOTO 1770: PRINT : PRINT  TAB( 8)"UNABLE TO CATALOG DRIVE #"C$: GOSUB 760
  181. 1810  GOSUB 120: ON A$ =  CHR$(27)  OR A$ =  CHR$(13) GOTO 1750: ON A$ <"1"  OR A$ >"2" GOTO 1810:C$ = A$: GOTO 1750
  182. 1820 B$ = "YOU WISH TO WORK ON": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1700
  183. 1830  REM Verifying name
  184. 1840 B$ = "VERIFYING NAME": GOSUB 990:E$ = "":DS$ = DD$:B$ = "THE NAME CHOSEN IS NOT ON DISKETTE": GOTO 2020
  185. 1850  REM Insure that file is TEXT file
  186. 1860  ON N  AND FLAG = 5 GOTO 2130:B$ = "THE NAME CHOSEN IS NOT A TEXT FILE": ONERR  GOTO 2070
  187. 1870  PRINT D$"OPEN"WN$DS$: PRINT D$"CLOSE"
  188. 1880  REM Input NewsRoom's file name
  189. 1890  POKE 216,0:NR$ = "PN.":DR$ = DS$
  190. 1900  GOSUB 280:B$ = "ENTER NEWSROOM'S FILE NAME": GOSUB 1000: PRINT :B$ = "(6 CHARACTERS MAXIMUM)": GOSUB 1000:FLAG = 0: PRINT 
  191. 1910 WN$ = NFILE$: ON N GOSUB 950:L6 = 1: GOSUB 140:L6 = 0:WN$ =  LEFT$(WN$,6): IF A$ =  CHR$(27)  THEN  ON WN$ = "" GOTO 1700:WN$ = ""
  192. 1920 NFILE$ = WN$: ON WN$ < >"" GOTO 1930: ON A$ <"1"  OR A$ >"2" GOTO 1900: GOTO 1730
  193. 1930  ON N  AND   NOT FLAG GOTO 2130:B$ = "YOU WISH THE NEWSROOM FILE NAME TO BE": GOSUB 840: ON A$ = "N"  OR A$ =  CHR$(27) GOTO 1900
  194. 1940  REM Determine drive to store NewsRoom file
  195. 1950  HOME :B$ = "ENTER <RETURN> TO ACCEPT - OR -": GOSUB 1000: PRINT :B$ = "PRESS ANY ARROW KEY TO CHANGE DRIVE #": GOSUB 1000: PRINT : PRINT : PRINT 
  196. 1960 B$ = "STORE THE TEXT FILE NAME": ON FLAG = 5 GOTO 1970:E$ = "1":B$ = "STORE THE NEWSROOM FILE NAME"
  197. 1970  GOSUB 1000: GOSUB 1080:B$ = "ON THE DISKETTE IN DRIVE #  ": GOSUB 1000: PRINT  CHR$(8);:DN$ = DD$
  198. 1980  PRINT  RIGHT$(DN$,1); CHR$(8);: GOSUB 120: ON A$ =  CHR$(13) GOTO 2000: ON A$ =  RIGHT$(DN$,1) GOTO 1980: IF A$ =  CHR$(27)  THEN  ON FLAG = 5 GOTO 1680: GOTO 1930
  199. 1990  ON A$ < >"1"  AND A$ < >"2"  AND A$ < > CHR$(8)  AND A$ < > CHR$(10)  AND A$ < > CHR$(11)  AND A$ < > CHR$(21) GOTO 1980:DN$ = ",D" + STR$(1 +(DN$ = ",D1")): GOTO 1980
  200. 2000 B$ = "INSURING NAME NOT ALREADY ESTABLISHED": GOSUB 990:DS$ = DN$
  201. 2010  REM Verifying file names
  202. 2020  VTAB 20: PRINT : ONERR  GOTO 2060
  203. 2030  PRINT D$"VERIFY"NR$WN$E$DS$:DD$ = DS$: POKE 216,0: ON FLAG GOTO 1860,1380,2130,1530
  204. 2040  ON V GOSUB 880: GOSUB 280:B$ = "FILE NAME ALREADY EXISTS ON DISKETTE": GOSUB 1000:B$ = "PLEASE RE-ENTER NEWSROOM'S FILE NAME": IF FLAG = 5  THEN B$ = "PLEASE RE-ENTER TEXT FILE NAME"
  205. 2050 N = 1: GOSUB 1090: ON FLAG = 5 GOTO 1640: GOTO 1910
  206. 2060  ON   NOT FLAG  OR FLAG = 5 GOTO 2080: IF DS$ = DD$  THEN DS$ = ",D" + STR$(1 +(DD$ = ",D1")): GOTO 2030
  207. 2070 N = 0: POKE 216,0: HOME : GOSUB 1000:B$ = "PLEASE CORRECT FILE NAME": GOSUB 1090: ON FLAG GOTO 1710,1340,1400,1470,1640
  208. 2080  IF  PEEK(222) < >2  AND  PEEK(222) < >3  AND  PEEK(222) < >8 GOTO 2130
  209. 2090  TEXT : HOME :V = 1:B$ = "UNABLE TO VERIFY": GOSUB 1000: PRINT : PRINT : INVERSE :B$ = NR$ +WN$: GOSUB 1000: NORMAL : PRINT : PRINT :B$ = "IN DRIVE #" + RIGHT$(DS$,1): GOSUB 1000: PRINT : GOSUB 760
  210. 2100  GOSUB 120: ON A$ =  CHR$(13) GOTO 2030: IF A$ = "1"  OR A$ = "2"  THEN DN$ = ",D" + STR$(1 +(DS$ = "2")):DS$ = DN$: GOTO 2030
  211. 2110  ON A$ < > CHR$(27) GOTO 2100: GOSUB 880: GOTO 1950
  212. 2120  REM Insuring diskette can be written on
  213. 2130  ONERR  GOTO 2160
  214. 2140  VTAB 14: PRINT D$"OPEN CONV.DISK.CHECK"DN$: PRINT D$"CLOSE": PRINT D$"DELETE CONV.DISK.CHECK": POKE 216,0
  215. 2150  ON   NOT FLAG GOTO 300: ON FLAG = 3 GOTO 560: GOTO 640
  216. 2160  GOSUB 280:B$ = "CANNOT WRITE TO DISKETTE": GOSUB 1000: PRINT  CHR$(7): PRINT :B$ = "Please REINSERT DISKETTE in Drive #"
  217. 2170  IF  PEEK(222) = 4  THEN B$ = "Please REMOVE WRITE PROTECT TAB": GOSUB 1000: PRINT : PRINT :B$ = "from the DISKETTE in Drive #"
  218. 2180 B$ = B$ + RIGHT$(DN$,1): GOSUB 1000: PRINT : PRINT :B$ = "Then press <RETURN>": GOSUB 1000: PRINT :B$ = "or-->Press <ESC> to abort.": GOSUB 1000: PRINT : VTAB 24: PRINT  TAB( 14)"ENTER KEY ";
  219. 2190  GOSUB 120: ON A$ =  CHR$(13) GOTO 2140: ON A$ < > CHR$(27) GOTO 2190: GOTO 2300
  220. 2200  REM Poke in machine language program
  221. 2210  VTAB 18: HTAB 11: INVERSE : PRINT "ONE MOMENT PLEASE": NORMAL : FOR J = 768 TO 926: READ K: POKE J,K: NEXT : RETURN 
  222. 2220  REM End routine
  223. 2230  VTAB  PEEK(37) +1 -2 *(  NOT PRODOS)
  224. 2240  POKE 34,0
  225. 2250  POKE 216,0: HOME 
  226. 2260  END 
  227. 2270  PRINT D$"CLOSE": POKE 34,0: PRINT : PRINT  CHR$(7)"ERROR #" PEEK(222)" DETECTED": PRINT  TAB( 8)"AT LINE #" PEEK(218) + PEEK(219) *256: PRINT  TAB( 16)"CONVERSION ABORTED": PRINT : GOTO 2290
  228. 2280  HOME : VTAB 15:B$ = "JOB COMPLETE": GOSUB 1000
  229. 2290  PRINT : VTAB 24:B$ = "PRESS RETURN TO CONTINUE": GOSUB 1000: GOSUB 120
  230. 2300  HOME 
  231. 2310  RUN 
  232. 2320  DATA 169,64,133,255,160,0,132,254,140,1,64,200,140,0,64,200,162,0,189,154,3,145,254,200,232,224,5,144,245,132,254,24,165,107,72,105,7,133,107,133
  233. 2330  DATA 252,165,108,72,105,0,133,108,133,253,160,0,177,107,240,66,170,230,107,208,2,230,108,165,108,72,165,107,72,177,107,72,200,177,107,133,108,104,133,107
  234. 2340  DATA 136,238,0,64,208,3,238,1,64,177,107,145,254,200,202,208,240,152,24,101,254,133,254,169,0,101,255,133,255,24,104,105,2,133,107,104,105,0,133,108
  235. 2350  DATA 208,184,169,127,145,254,169,69,101,252,133,254,169,0,101,253,133,255,177,254,145,252,200,192,234,144,247,104,133,108,104,133,107,96,0,1,84,115,0,