Author Topic: BBS Color Screen Creator Program problems  (Read 6039 times)

0 Members and 1 Guest are viewing this topic.

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #15 on: September 16, 2020, 08:12:08 am »
I solved the problem , I now have a fully working program, I simply put in the statements in the colorchange area that basically said : g1=g1, g2=g2, and g=g as well as t1=t1 and t2=t2 and t=t then refered to those variables elsewhere in the program, plus the missing return in the specialcharacters2 sub-routine helped conndiderably once I put in that return.

The program works really good now, thanks to you and several other users here, a big thanks goes out to you all.

Russ Campbell

g1 = g1 wouldn't fix anything but getting that missing RETURN most definitely would fix things!!!

Have you tried commenting out g1 = g1... stuff to see if still works, I bet ;-))

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #16 on: September 16, 2020, 03:49:00 pm »
@bplus  you're right I missed to put the outer DO LOOP as first and last line of SUB rand!

@rcamp48  I'm glad that you find a solution also if I have no idea how you get this with that identity g1= g1 etc...


Programming isn't difficult, only it's  consuming time and coffee

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #17 on: September 16, 2020, 05:21:26 pm »
@bplus  you're right I missed to put the outer DO LOOP as first and last line of SUB rand!

@rcamp48  I'm glad that you find a solution also if I have no idea how you get this with that identity g1= g1 etc...

Oh ha! didn't suspect a missing DO LOOP,
Code: QB64: [Select]
  1.  SUB rand
  2. PRINT "Do you wish to have multi colors randomly chosen for everything"
  3. PRINT "or user set colors for the entire area that makes up all of the "
  4. PRINT "the menus. This can all be used in either displays or menus"
  5. PRINT "Choose [T]est Program [L]oad Color Patterns or [C]reate new Color Patterns"
  6. PRINT "Choose [X] to exit program"
  7. answer = INPUT$(1)
  8. answer = UCASE$(answer)
  9. IF answer = "C" THEN GOTO inputscreen1
  10. IF answer = "L" THEN GOSUB load
  11. IF answer = "T" THEN GOTO inputscreen
  12. IF answer = "X" THEN GOTO finish
  13.  
  14.  

No inside a SUB, you can not GOTO nor GOSUB to anything outside that SUB.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #18 on: September 16, 2020, 06:58:11 pm »
Oh Bplus
yes you're right but the translation from spaghetti code GOTO /GOSUB must be done for all the GOTO blocks and GOSUB blocks
so those GOTO and GOSUB must be changed as soon as each block is changed into another SUB.
I think that this translating method is not so clear into my long post before the answer to you.
Just for exercise I'm trying to translate all the V13 file into a modular structure. But it is so long and I have found 2-3 spaghetti's node to solve. I'll finish this task another day.
Thanks for feedback!
Programming isn't difficult, only it's  consuming time and coffee

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #19 on: September 16, 2020, 08:28:53 pm »
@rcamp48
Hi
here I post an example of translation from spaghetti code to SUB/FUNCTION code...
yes it is raw, using many SHARED variables... I don't know the original output of the program because it needs of extra files used by it.
So I am not abled to test it...
you can do this test

the code:
Code: QB64: [Select]
  1. DIM SHARED x AS INTEGER ' x is used in my program as a variable for the background color
  2. DIM SHARED y AS INTEGER ' y is used as a variable for the foreground color
  3. DIM SHARED i AS INTEGER ' i is used as a variable for the length of the line of display
  4. ' above variables are used for the reading and writing of each character of info
  5. ' in each line of the ascii screens that are read into an array.
  6.  
  7. DIM SHARED lnumber AS STRING ' used as a variable for the line number of the ascii screen
  8. DIM SHARED file AS STRING ' used as a variable for the filename entered in the program
  9. DIM answer AS STRING ' used as a variable for the answer to a question
  10. DIM SHARED asciidisp AS STRING ' ascii display variable used as the ascii display path
  11. DIM SHARED ansidisp AS STRING ' ansi display variable used as the ansi path and filename
  12. DIM SHARED wc8disp AS STRING 'Winserver 8 variable used as the wc8 BBS display path
  13. DIM SHARED pcbdisp AS STRING 'Pc Board display variable used as the pcb display path
  14. DIM SHARED asciipromptmenu AS STRING
  15. DIM SHARED syndisp AS STRING 'Syncronet display variabe used as the Syncronet display path
  16. DIM SHARED asciimenu AS STRING 'ascii menu variable used as the ascii menu path for input
  17. DIM SHARED ansimenu AS STRING 'ansi menu variable used as the ansi path for output
  18. DIM SHARED wc8menu AS STRING 'Winserver 8 variable used as the wc8 menu bbs path for output
  19. DIM SHARED pcbmenu AS STRING 'PC Board variable used as the PcB BBS menu display for output
  20. DIM SHARED synmenu AS STRING 'Syncronet variable used as the Syncronet Menu Display for output
  21. DIM SHARED mysmenu AS STRING 'Mystic variable
  22. DIM SHARED mysdisp AS STRING 'Mystic variable
  23.  
  24. 'above variables are all string variables that are used for storing different information that in the
  25. 'Wildcat, Winserver, Ascii, and Ansi screens that are either read in , or written out to different filenames
  26. 'in my program. The *120, or *16 etc are just string lenghths.
  27.  
  28. DIM SHARED file1 AS STRING ' file1 is the ascii input file for the displays or menus that either other people or I create
  29. DIM SHARED file2 AS STRING ' file2 is the ansi file created by he program from the ascii file above
  30. DIM SHARED file3 AS STRING ' file3 is the Wildcator WInserver .BBS file that is created when the user selects wc8
  31. DIM SHARED file4 AS STRING ' file4 is the PCBoard .BBS file created when the user selects pcb as a display
  32. DIM SHARED file5 AS STRING ' file5 is reserved for Synchronet BBS when the user selects syncronet as a display
  33. DIM SHARED file6 AS STRING ' file6 is reserved for Mystic BBS in the user selects mystic as a display
  34. DIM SHARED file7 AS STRING ' file7 is reserved for the prompt files that follow any menu in any BBS
  35.  
  36. 'ALL of the above are actual filenames without the drive letter and path for my program.
  37.  
  38.  
  39. DIM SHARED horizontalines AS STRING
  40. DIM SHARED verticalines AS STRING
  41. DIM SHARED foregroundcoloransi AS STRING
  42. DIM SHARED backgroundcoloransi AS STRING
  43. DIM SHARED foregroundcolorbbs AS STRING
  44. DIM SHARED backgroundcolorbbs AS STRING
  45. DIM SHARED foregroundcolorpcb AS STRING
  46. DIM SHARED backgroundcolorpcb AS STRING
  47. DIM SHARED foregroundcolorsynchro AS STRING
  48. DIM SHARED backgroundcolorsynchro AS STRING
  49. DIM SHARED foregroundcolormystic AS STRING
  50. DIM SHARED backgroundcolormystic AS STRING
  51.  
  52. DIM SHARED code0b AS STRING ' Code Setup for Black   Background
  53. DIM SHARED code0f AS STRING ' Code Setup for Black   Foreground
  54. DIM SHARED code1b AS STRING ' Code Setup for Blue    Background
  55. DIM SHARED code1f AS STRING ' Code Setup for Blue    Foreground
  56. DIM SHARED code2b AS STRING ' Code Setup for Green   Background
  57. DIM SHARED code2f AS STRING ' Code Setup for Green   Foreground
  58. DIM SHARED code3b AS STRING ' Code Setup for Cyan    Background
  59. DIM SHARED code3f AS STRING ' Code Setup for Cyan    Foreground
  60. DIM SHARED code4b AS STRING ' Code Setup for Red     Background
  61. DIM SHARED code4f AS STRING ' Code Setup for Red     Foreground
  62. DIM SHARED code5b AS STRING ' Code Setup for Magenta Background
  63. DIM SHARED code5f AS STRING ' Code Setup for Magenta Foreground
  64. DIM SHARED code6b AS STRING ' Code Setup for Brown   Background
  65. DIM SHARED code6f AS STRING ' Code Setup for Yellow  Foreground
  66. DIM SHARED code7b AS STRING ' Code Setup for White   Background
  67. DIM SHARED code7f AS STRING ' Code Setup for White   Foreground
  68. DIM SHARED connector1 AS STRING
  69. DIM SHARED connector2 AS STRING
  70. DIM SHARED connector3 AS STRING
  71. DIM SHARED connector4 AS STRING
  72. DIM SHARED lineconnector AS STRING
  73. DIM SHARED menuchoice AS STRING
  74. DIM SHARED verticalline AS STRING
  75. DIM SHARED pick AS INTEGER ' I add this to convert pick into a function
  76.  
  77. ' general settings
  78.  
  79. ' start  program
  80. SplashScreen
  81. WaitAKey
  82. 'setup:
  83. Info
  84. WaitAKey
  85. MenuMessage
  86. WaitAKey
  87. rand
  88. inputscreen1
  89. prompts
  90. filen
  91. combos
  92. back
  93. GOSUB enteryourbackground
  94. whatyouget
  95. create
  96.  
  97.  
  98.  
  99. displays
  100.  
  101. 'startit:
  102. 'selector:
  103.  
  104.  
  105.  
  106.  
  107. '----------------------------------------------------------------------------------------------------------------------------
  108.  
  109.  
  110.  
  111.  
  112.  
  113. Menu
  114.  
  115. '-------------------------------------------------------------------------------------------------------------
  116. ' Start of actual program , continues until ended
  117. 'Start of menu selection decisions by the program
  118. file1 = file + ".txt"
  119. file2 = file + ".ans" ' adds file extension to each type of file
  120. file3 = file + ".bbs"
  121. file4 = file + ".bbs"
  122. file5 = file + ".txt"
  123. file6 = file + ".txt"
  124. file7 = file + "a.txt"
  125. asciidisp = "c:\display\bbsdispascii\" + file1
  126.  
  127. ansidisp = "c:\display\bbsdispansi\" + file2
  128. wc8disp = "c:\display\bbsdispwildcat\" + file3
  129. pcbdisp = "c:\display\bbsdisppcb\" + file4 ' all path, drive and filename variables
  130. syndisp = "c:\display\bbsdispsyncro\" + file5
  131. mysdisp = "c:\display\bbsdispmystic\" + file6
  132. asciimenu = "c:\display\bbsmenuascii\" + file1
  133. ansimenu = "c:\display\bbsmenuansi\" + file2 ' for various screen ouputs
  134. wc8menu = "c:\display\bbsmenuWildcat\" + file3
  135. pcbmenu = "c:\display\bbsmenupcb\" + file4
  136. synmenu = "c:\display\bbsmenusyncro\" + file5
  137. mysmenu = "C:\display\bbsmenumystic\" + file6
  138. asciipromptmenu = "c:\display\bbsmenuascii\" + file7
  139.  
  140. IF menuchoice = "D" THEN
  141.     contlne = 0
  142.     picks
  143.     selector
  144.     OPEN asciidisp FOR INPUT AS #1
  145.  
  146.     IF display = "ansi" THEN
  147.         OPEN ansidisp FOR OUTPUT AS #2
  148.     END IF
  149.  
  150.     IF display = "wc8" THEN
  151.         OPEN wc8disp FOR OUTPUT AS #2
  152.     END IF
  153.  
  154.     IF display = "pcb" THEN
  155.         OPEN pcbdisp FOR OUTPUT AS #2
  156.     END IF
  157.     IF display = "synchro" THEN
  158.         OPEN syndisp FOR OUTPUT AS #2
  159.     END IF
  160.     IF display = "mystic" THEN
  161.         OPEN mysdisp FOR OUTPUT AS #2
  162.     END IF
  163.  
  164.  
  165. IF menuchoice = "M" THEN
  166.  
  167.     contlne = 0
  168.     picks
  169.     selector
  170.     OPEN asciimenu FOR INPUT AS #1
  171.     OPEN asciipromptmenu FOR INPUT AS #3
  172.  
  173.     IF display = "ansi" THEN
  174.         OPEN ansimenu FOR OUTPUT AS #2
  175.     END IF
  176.  
  177.     IF display = "wc8" THEN
  178.         OPEN wc8menu FOR OUTPUT AS #2
  179.     END IF
  180.  
  181.     IF display = "pcb" THEN
  182.         OPEN pcbmenu FOR OUTPUT AS #2
  183.     END IF
  184.     IF display = "synchro" THEN
  185.         OPEN synmenu FOR OUTPUT AS #2
  186.     END IF
  187.     IF display = "mystic" THEN
  188.         OPEN mysmenu FOR OUTPUT AS #2
  189.     END IF
  190. END IF ' end of menu selection decisions by the program.
  191. IF display = "ansi" THEN
  192.     ' Clear screen
  193.     CLS
  194.     ' Set background to black
  195.     COLOR 0, 0
  196. IF display = "wc8" THEN
  197.     ' clear screen
  198.     CLS
  199.     PRINT #2, "@0" + "0@" + "@CLS@"
  200.     ' set background to black
  201.     COLOR 7, 0
  202. IF display = "pcb" THEN
  203.     ' clear screen
  204.     CLS
  205.     ' set background to black
  206.     COLOR 0, 0
  207. IF display = "synchro" THEN
  208.     ' clear screen
  209.     CLS
  210.     ' set background to black
  211.     COLOR 7, 0
  212. IF display = "mystic" THEN
  213.     ' clear screen
  214.     CLS
  215.     ' set background to black
  216.     COLOR 7, 0
  217.  
  218.  
  219.     LINE INPUT #1, lnumber
  220.  
  221.     FOR i = 1 TO LEN(lnumber)
  222.  
  223.         b = MID$(lnumber, i, 1) ' Calculates the ascii value of every character in the line
  224.         IF display = "ansi" THEN
  225.             specialcharacters3
  226.             specialcharacters2
  227.             IF flag$ = "Y1" THEN
  228.                 colorchange
  229.                 COLOR t1, g1
  230.                 x = g1
  231.                 y = t1
  232.                 displ
  233.                 IF colorchanges = 1 THEN
  234.                     PRINT #2, backgroundcoloransi + foregroundcoloransi + b;
  235.                     PRINT b;
  236.                 ELSEIF colorchanges = 0 THEN
  237.                     PRINT #2, b;
  238.                     PRINT b;
  239.                 END IF
  240.             END IF
  241.             IF flag$ = "Y2" THEN
  242.                 colorchange
  243.                 COLOR t2, g2
  244.                 x = g2
  245.                 y = t2
  246.                 displ
  247.                 IF colorchanges = 1 THEN
  248.                     PRINT #2, backgroundcoloransi + foregroundcoloransi + b;
  249.                     PRINT b;
  250.                 ELSEIF colorchanges = 0 THEN
  251.                     PRINT #2, b;
  252.                     PRINT b;
  253.                 END IF
  254.             END IF
  255.             IF flag$ = "Y3" THEN
  256.                 colorchange
  257.                 COLOR t, g
  258.                 x = g
  259.                 y = t
  260.                 displ
  261.                 IF colorchanges = 1 THEN
  262.                     PRINT #2, backgroundcoloransi + foregroundcoloransi + b;
  263.                     PRINT b;
  264.                 END IF
  265.             ELSE
  266.                 IF colorchanges = 0 THEN
  267.                     PRINT #2, b;
  268.                     PRINT b;
  269.                 END IF
  270.             END IF
  271.         END IF
  272.  
  273.         IF display = "wc8" THEN
  274.             specialcharacters3
  275.             specialcharacters2
  276.             IF flag$ = "Y1" THEN
  277.                 colorchange
  278.                 x = g1
  279.                 y = t1
  280.                 COLOR t1, g1
  281.                 displ
  282.                 IF colorchanges = 1 THEN
  283.                     PRINT #2, backgroundcolorbbs + foregroundcolorbbs + b;
  284.                     PRINT b;
  285.                 ELSEIF colorchanges = 0 THEN
  286.                     PRINT #2, b;
  287.                     PRINT b;
  288.                 END IF
  289.             END IF
  290.             IF flag$ = "Y2" THEN
  291.                 colorchange
  292.                 x = g2
  293.                 y = t2
  294.                 COLOR t2, g2
  295.                 displ
  296.                 IF colorchanges = 1 THEN
  297.                     PRINT #2, backgroundcolorbbs + foregroundcolorbbs + b;
  298.                     PRINT b;
  299.                 ELSEIF colorchanges = 0 THEN
  300.                     PRINT #2, b;
  301.                     PRINT b;
  302.                 END IF
  303.             END IF
  304.             IF flag$ = "Y3" THEN
  305.                 colorchange
  306.                 x = g
  307.                 y = t
  308.                 COLOR t, g
  309.                 displ
  310.                 IF colorchanges = 1 THEN
  311.                     PRINT #2, backgroundcolorbbs + foregroundcolorbbs + b;
  312.                     PRINT b;
  313.                 END IF
  314.             ELSE
  315.                 IF colorchanges = 0 THEN
  316.                     PRINT #2, b;
  317.                     PRINT b;
  318.                 END IF
  319.             END IF
  320.         END IF
  321.         IF display = "pcb" THEN
  322.             specialcharacters3
  323.             specialcharacters2
  324.             IF flag$ = "Y1" THEN
  325.                 colorchange
  326.                 COLOR t1, g1
  327.                 x = g1
  328.                 y = t1
  329.                 displ
  330.                 IF colorchanges = 1 THEN
  331.                     PRINT #2, backgroundcolorpcb + foregroundcolorpcb + b;
  332.                     PRINT b;
  333.                 ELSEIF colorchanges = 0 THEN
  334.                     PRINT #2, b;
  335.                     PRINT b;
  336.                 END IF
  337.             END IF
  338.             IF flag$ = "Y2" THEN
  339.                 colorchange
  340.                 COLOR t2, g2
  341.                 x = g2
  342.                 y = t2
  343.                 displ
  344.                 IF colorchanges = 1 THEN
  345.                     PRINT #2, backgroundcolorpcb + foregroundcolorpcb + b;
  346.                     PRINT b;
  347.                 ELSEIF colorchanges = 0 THEN
  348.                     PRINT #2, b;
  349.                     PRINT b;
  350.                 END IF
  351.             END IF
  352.             IF flag$ = "Y3" THEN
  353.                 colorchange
  354.                 COLOR t, g
  355.                 x = g
  356.                 y = t
  357.                 displ
  358.                 IF colorchanges = 1 THEN
  359.                     PRINT #2, backgroundcolorpcb + foregroundcolorpcb + b;
  360.                     PRINT b;
  361.                 END IF
  362.             ELSE
  363.                 IF colorchanges = 0 THEN
  364.                     PRINT #2, b;
  365.                     PRINT b;
  366.                 END IF
  367.             END IF
  368.         END IF
  369.         IF display = "synchro" THEN
  370.             specialcharacters3
  371.             specialcharacters2
  372.             IF flag$ = "Y1" THEN
  373.                 colorchange
  374.                 COLOR t1, g1
  375.                 x = g1
  376.                 y = t1
  377.                 displ
  378.                 IF colorchanges = 1 THEN
  379.                     PRINT #2, backgroundcolorsynchro + foregroundcolorsynchro + b;
  380.                     PRINT b;
  381.                 ELSEIF colorchanges = 0 THEN
  382.                     PRINT #2, b;
  383.                     PRINT b;
  384.                 END IF
  385.             END IF
  386.             IF flag$ = "Y2" THEN
  387.                 colorchange
  388.                 COLOR t2, g2
  389.                 x = g2
  390.                 y = t2
  391.                 displ
  392.                 IF colorchanges = 1 THEN
  393.                     PRINT #2, backgroundcolorsynchro + foregroundcolorsynchro + b;
  394.                     PRINT b;
  395.                 ELSEIF colorchanges = 0 THEN
  396.                     PRINT #2, b;
  397.                     PRINT b;
  398.                 END IF
  399.             END IF
  400.             IF flag$ = "Y3" THEN
  401.                 colorchange
  402.                 COLOR t, g
  403.                 x = g
  404.                 y = t
  405.                 displ
  406.                 IF colorchanges = 1 THEN
  407.                     PRINT #2, backgroundcolorsynchro + foregroundcolorsynchro + b;
  408.                     PRINT b;
  409.                 END IF
  410.             ELSE
  411.                 IF colorchanges = 0 THEN
  412.                     PRINT #2, b;
  413.                     PRINT b;
  414.                 END IF
  415.             END IF
  416.         END IF
  417.         IF display = "mystic" THEN
  418.             specialcharacters3
  419.             specialcharacters2
  420.             IF flag$ = "Y1" THEN
  421.                 colorchange
  422.                 COLOR t1, g1
  423.                 x = g1
  424.                 y = t1
  425.                 displ
  426.                 IF colorchanges = 1 THEN
  427.                     PRINT #2, backgroundcolormystic + foregroundcolormystic + b;
  428.                     PRINT b;
  429.                 ELSEIF colorchanges = 0 THEN
  430.                     PRINT #2, b;
  431.                     PRINT b;
  432.                 END IF
  433.             END IF
  434.             IF flag$ = "Y2" THEN
  435.                 colorchange
  436.                 COLOR t2, g2
  437.                 x = g2
  438.                 y = t2
  439.                 displ
  440.                 IF colorchanges = 1 THEN
  441.                     PRINT #2, backgroundcolormystic + foregroundcolormystic + b;
  442.                     PRINT b;
  443.                 ELSEIF colorchanges = 0 THEN
  444.                     PRINT #2, b;
  445.                     PRINT b;
  446.                 END IF
  447.             END IF
  448.             IF flag$ = "Y3" THEN
  449.                 colorchange
  450.                 COLOR t, g
  451.                 x = g
  452.                 y = t
  453.                 displ
  454.                 IF colorchanges = 1 THEN
  455.                     PRINT #2, backgroundcolormystic + foregroundcolormystic + b;
  456.                     PRINT b;
  457.                 END IF
  458.             ELSE
  459.                 IF colorchanges = 0 THEN
  460.                     PRINT #2, b;
  461.                     PRINT b;
  462.                 END IF
  463.             END IF
  464.         END IF
  465.     NEXT i
  466.     PRINT #2, ""
  467.     PRINT
  468. fini:
  469. closeit:
  470. PRINT #2, "@0" + "7@";
  471. COLOR 7, 0
  472. IF menuchoice = "M" THEN
  473.     DO UNTIL EOF(3)
  474.         LINE INPUT #3, lnumber
  475.         PRINT #2, lnumber
  476.         PRINT lnumber
  477.     LOOP
  478. PRINT #2, "@0" + "7@"
  479. COLOR 7, 0
  480. PRINT " Create another screen ? [Defaults to [Y]es : "
  481. answer = INPUT$(1)
  482. answer = UCASE$(answer)
  483. IF answer = "N" THEN
  484.     finish
  485.     contlne = 0
  486.     CLEAR
  487.     rand
  488.  
  489.  
  490.  
  491. ' specialcharacters2:
  492.  
  493. 'specialcharacters3:
  494.  
  495. 'randomsettings:
  496.  
  497.  
  498. 'fixedsettings:
  499. load
  500.  
  501.  
  502.  
  503. errorhandle:
  504. PRINT "Most likely there was a filename that you entered"
  505. PRINT "That did not exist or you have not created the"
  506. PRINT "prompt file for the Menu item desired. Or you picked"
  507. PRINT "a Menu filename and selected a display output instead "
  508. PRINT "a Menu display, the difference is that Menu output "
  509. PRINT "files have a prompt file, display files do not. "
  510. PRINT "Your File "; file1; " Has Not Been Found .... Please Try Again."
  511. PRINT "Press any key to try again......"
  512. WaitAKey
  513. inputscreen
  514.  
  515.  
  516. enteryourbackground:
  517.  
  518. etry1
  519. etry2
  520. etry3
  521. etry4
  522. etry5
  523. etry6
  524. etry7
  525. etry8
  526. whatyouget
  527. load
  528.  
  529.  
  530. '-------------------------------------------
  531. SUB SplashScreen
  532.     CLS
  533.     COLOR 14, 12
  534.     LOCATE 10, 24
  535.     PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
  536.     LOCATE 11, 24
  537.     PRINT "%                 BBS Screen Creator Written By Russ Campbell                  %"
  538.     LOCATE 12, 24
  539.     PRINT "%                                                                              %"
  540.     LOCATE 13, 24
  541.     PRINT "%                   Beta Version 13  Release Candidate RC2                     %"
  542.     LOCATE 14, 24
  543.     PRINT "%                                                                              %"
  544.     LOCATE 15, 24
  545.     PRINT "%                This is a beta release, not everything is working yet         %"
  546.     LOCATE 16, 24
  547.     PRINT "%                                                                              %"
  548.     LOCATE 17, 24
  549.     PRINT "%             With fully customisable color sets added to the program.         %"
  550.     LOCATE 18, 24
  551.     PRINT "%                                                                              %"
  552.     LOCATE 19, 24
  553.     PRINT "%                    Press any key to continue.............                    %"
  554.     LOCATE 20, 24
  555.     PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
  556.  
  557. SUB WaitAKey
  558.     DO WHILE INKEY$ = ""
  559.     LOOP
  560.  
  561.  
  562. SUB Info
  563.     COLOR 7, 0
  564.     CLS
  565.     PRINT
  566.     PRINT "BBS Menu Color Scheme Creator Version 13 Final Version RC1"
  567.     PRINT "Written by Russ Campbell Updated September 14 2020"
  568.     PRINT
  569.     PRINT "First of all design your menus in straight text no colors, etc"
  570.     PRINT "Do not put any background colors in either as the program will"
  571.     PRINT "Do that for you automatically. Use the following convention"
  572.     PRINT "that is laid out in the next display."
  573.     PRINT
  574.     PRINT "This program will then take your plain text menu and turn it into"
  575.     PRINT "a random colored display, methods will be taken to ensure that"
  576.     PRINT "the backgound and text colors do not print the same colors"
  577.     PRINT
  578.     PRINT "Take a look and see what you think, it will of course write"
  579.     PRINT "out your menus in .BBS and .ANS formats, kind of a neat feature."
  580.     PRINT
  581.     PRINT "Don't like what you get? Then run the program again and again"
  582.     PRINT "until you get what you like as a menu screen."
  583.     PRINT
  584.     PRINT "This is a complicated program, you don't have to use boxes"
  585.     PRINT "but for now that is the only shape that my program will"
  586.     PRINT "accept. I will print an example of a menu on the screen so"
  587.     PRINT "that you know exactly how to use my program with a text drawing."
  588.     PRINT ""
  589.     PRINT "Press any key to continue..."
  590.  
  591. SUB MenuMessage
  592.     CLS
  593.     PRINT
  594.     PRINT " ^-------------------------------------------------+"
  595.     PRINT " !               Main Message Menu                 !"
  596.     PRINT " *-------------------&-----------------------------="
  597.     PRINT " !       $           !                             !"
  598.     PRINT " *-------------------#-----------------------------="
  599.     PRINT " ! [C] Check Your Mail   [S] Scan Messages         !"
  600.     PRINT " ! [E] Enter New Message [J] Join Conference       !"
  601.     PRINT " ! [F] FILE MENU         [U] Update Settings       !"
  602.     PRINT " ! [G] Goodbye           [H] Help Level            !"
  603.     PRINT " ! [Q] Quit to Main Menu [?] Command Help          !"
  604.     PRINT " ! [R] Read Messages                               !"
  605.     PRINT " ~-------------------------------------------------%"
  606.     PRINT
  607.     PRINT "Pay special attention to the symbols on each corner"
  608.     PRINT "They are all different, one for each corner, to work"
  609.     PRINT "properly with my program , they must be right. The "
  610.     PRINT "rest of the characters also must be right except for"
  611.     PRINT "whats in the menu. You can see the other characters"
  612.     PRINT "that I use lines and connectors, the program turns"
  613.     PRINT "into nice corners and borders, for double corners "
  614.     PRINT "and borders, well , you can figure that one out."
  615.     PRINT
  616.     PRINT "Press any key to continue..."
  617.  
  618.  
  619. SUB rand
  620.     DIM answer AS STRING
  621.     ' this is a local variable visible only in this block of code
  622.     DO
  623.         CLS
  624.         PRINT
  625.         PRINT "Do you wish to have multi colors randomly chosen for everything"
  626.         PRINT "or user set colors for the entire area that makes up all of the "
  627.         PRINT "the menus. This can all be used in either displays or menus"
  628.         PRINT
  629.         PRINT "Choose [T]est Program [L]oad Color Patterns or [C]reate new Color Patterns"
  630.         PRINT "Choose [X] to exit program"
  631.         answer = INPUT$(1)
  632.         answer = UCASE$(answer)
  633.         IF answer = "C" THEN inputscreen1
  634.         IF answer = "L" THEN load
  635.         IF answer = "T" THEN inputscreen
  636.         IF answer = "X" THEN finish
  637.     LOOP
  638.  
  639. SUB inputscreen1
  640.     DO
  641.         CLS
  642.         PRINT "Do you wish to use pre-selected colors or use your own sets "
  643.         PRINT "Of color selections: (10) color schemes can be customised."
  644.  
  645.         PRINT "This section is for entering your own color schemes , it is  "
  646.         PRINT "for selecting either Preselected or your own colors."
  647.         PRINT
  648.         PRINT "If you want random colors, choose [Y]es as your answer."
  649.         PRINT
  650.         PRINT "However if you want to enter your own colors , then enter"
  651.         PRINT " N as your choice of color selection"
  652.         PRINT
  653.         PRINT "Do you wish to use random colors? [Y]es  or [N]o  [Defaults to [N]o   "
  654.         answer$ = INPUT$(1)
  655.         answer$ = UCASE$(answer$)
  656.         IF answer$ = "N" THEN prompts
  657.         IF answer$ = "" THEN prompts
  658.         IF answer$ = "Y" THEN inputscreen
  659.     LOOP
  660.  
  661. SUB prompts
  662.     DO
  663.         CLS
  664.         PRINT
  665.         PRINT "This section will either load or create a new user data file with all used"
  666.         PRINT "variables saved in a filename that you entered. It will give you the option"
  667.         PRINT "of loading a saved file or creating a totally new filename. You do not have"
  668.         PRINT "to write over any existing files, and the program will be fool proof."
  669.         PRINT
  670.         PRINT "[L]oad or [C]reate User Data file or [X]xit Program"
  671.         answer$ = INPUT$(1)
  672.         database$ = UCASE$(answer$)
  673.         IF database$ = "L" THEN filen
  674.         IF database$ = "C" THEN combos
  675.         IF database$ = "X" THEN finish
  676.     LOOP
  677.  
  678. SUB finish
  679.     CLS
  680.     PRINT "My program is now finished and I"
  681.     PRINT "am looking for suggestions on ways"
  682.     PRINT "To improve it. The program has been"
  683.     PRINT "tested with Winserver 8.0 but has"
  684.     PRINT "not been tested with any other BBS"
  685.     PRINT "programs at this moment."
  686.     PRINT
  687.     PRINT "By now you will have noticed custom"
  688.     PRINT "Color sets, if you have not tried "
  689.     PRINT "this out , then give it a try."
  690.     PRINT
  691.     PRINT "The option to load and save and create"
  692.     PRINT "data sets is now here , if you have not"
  693.     PRINT "tried this feature out then give it a try."
  694.     PRINT
  695.     PRINT "Program written by Russ Campbell"
  696.     PRINT "For more information on how I"
  697.     PRINT "wrote this program, contact me"
  698.     PRINT "on Facebook at many of the groups"
  699.     PRINT "I am in , or email me at"
  700.     PRINT "rcamp48@rogers.com"
  701.     PRINT
  702.     PRINT "Thank you for using BBS Menu Color Scheme Creator 13 RC3"
  703.     PRINT
  704.     END
  705.  
  706. SUB displ
  707.  
  708.     IF display = "ansi" THEN
  709.         IF x = 0 THEN code0b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(48) + CHR$(109) ' Black     Background
  710.         IF y = 0 THEN code0f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(48) + CHR$(109) ' Black     Foreground
  711.         IF x = 1 THEN code1b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(52) + CHR$(109) ' Blue      Background
  712.         IF y = 1 THEN code1f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(52) + CHR$(109) ' Blue      Foreground
  713.         IF x = 2 THEN code2b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(50) + CHR$(109) ' Green     Background
  714.         IF y = 2 THEN code2f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(50) + CHR$(109) ' Green     Foreground
  715.         IF x = 3 THEN code3b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(54) + CHR$(109) ' Cyan      Background
  716.         IF y = 3 THEN code3f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(54) + CHR$(109) ' Cyan      Foreground
  717.         IF x = 4 THEN code4b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(49) + CHR$(109) ' Red       Background
  718.         IF y = 4 THEN code4f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(49) + CHR$(109) ' Red       Foreground
  719.         IF x = 5 THEN code5b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(53) + CHR$(109) ' Magenta   Background
  720.         IF y = 5 THEN code5f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(53) + CHR$(109) ' Magenta   Foreground
  721.         IF x = 6 THEN code6b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(51) + CHR$(109) ' Brown     Background
  722.         IF y = 6 THEN code6f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(51) + CHR$(109) ' Brown     Foreground
  723.         IF x = 7 THEN code7b = CHR$(27) + CHR$(91) + CHR$(52) + CHR$(55) + CHR$(109) ' White     Background
  724.         IF y = 7 THEN code7f = CHR$(27) + CHR$(91) + CHR$(51) + CHR$(55) + CHR$(109) ' White     Foreground
  725.         IF x = 0 THEN backgroundcoloransi = code0b
  726.         IF x = 1 THEN backgroundcoloransi = code1b
  727.         IF x = 2 THEN backgroundcoloransi = code2b
  728.         IF x = 3 THEN backgroundcoloransi = code3b
  729.         IF x = 4 THEN backgroundcoloransi = code4b
  730.         IF x = 5 THEN backgroundcoloransi = code5b
  731.         IF x = 6 THEN backgroundcoloransi = code6b
  732.         IF x = 7 THEN backgroundcoloransi = code7b
  733.         IF y = 0 THEN foregroundcoloransi = code0f
  734.         IF y = 1 THEN foregroundcoloransi = code1f
  735.         IF y = 2 THEN foregroundcoloransi = code2f
  736.         IF y = 3 THEN foregroundcoloransi = code3f
  737.         IF y = 4 THEN foregroundcoloransi = code4f
  738.         IF y = 5 THEN foregroundcoloransi = code5f
  739.         IF y = 6 THEN foregroundcoloransi = code6f
  740.         IF y = 7 THEN foregroundcoloransi = code7f
  741.     END IF
  742.     IF display = "wc8" THEN
  743.         IF x = 0 THEN backgroundcolorbbs = "@0"
  744.         IF x = 1 THEN backgroundcolorbbs = "@1"
  745.         IF x = 2 THEN backgroundcolorbbs = "@2"
  746.         IF x = 3 THEN backgroundcolorbbs = "@3"
  747.         IF x = 4 THEN backgroundcolorbbs = "@4"
  748.         IF x = 5 THEN backgroundcolorbbs = "@5"
  749.         IF x = 6 THEN backgroundcolorbbs = "@6"
  750.         IF x = 7 THEN backgroundcolorbbs = "@7"
  751.         IF x = 8 THEN backgroundcolorbbs = "@8"
  752.         IF x = 9 THEN backgroundcolorbbs = "@9"
  753.         IF x = 10 THEN backgroundcolorbbs = "[member=427]A[/member]"
  754.         IF x = 11 THEN backgroundcolorbbs = "@B"
  755.         IF x = 12 THEN backgroundcolorbbs = "@C"
  756.         IF x = 13 THEN backgroundcolorbbs = "@D"
  757.         IF x = 14 THEN backgroundcolorbbs = "@E"
  758.         IF x = 15 THEN backgroundcolorbbs = "@F"
  759.         IF y = 0 THEN foregroundcolorbbs = "0@"
  760.         IF y = 1 THEN foregroundcolorbbs = "1@"
  761.         IF y = 2 THEN foregroundcolorbbs = "2@"
  762.         IF y = 3 THEN foregroundcolorbbs = "3@"
  763.         IF y = 4 THEN foregroundcolorbbs = "4@"
  764.         IF y = 5 THEN foregroundcolorbbs = "5@"
  765.         IF y = 6 THEN foregroundcolorbbs = "6@"
  766.         IF y = 7 THEN foregroundcolorbbs = "7@"
  767.         IF y = 8 THEN foregroundcolorbbs = "8@"
  768.         IF y = 9 THEN foregroundcolorbbs = "9@"
  769.         IF y = 10 THEN foregroundcolorbbs = "A@"
  770.         IF y = 11 THEN foregroundcolorbbs = "B@"
  771.         IF y = 12 THEN foregroundcolorbbs = "C@"
  772.         IF y = 13 THEN foregroundcolorbbs = "D@"
  773.         IF y = 14 THEN foregroundcolorbbs = "E@"
  774.         IF y = 15 THEN foregroundcolorbbs = "F@"
  775.     END IF
  776.     IF display = "pcb" THEN
  777.         IF x = 0 THEN backgroundcolorpcb$ = "@X0"
  778.         IF x = 1 THEN backgroundcolorpcb$ = "@X1"
  779.         IF x = 2 THEN backgroundcolorpcb$ = "@X2"
  780.         IF x = 3 THEN backgroundcolorpcb$ = "@X3"
  781.         IF x = 4 THEN backgroundcolorpcb$ = "@X4"
  782.         IF x = 5 THEN backgroundcolorpcb$ = "@X5"
  783.         IF x = 6 THEN backgroundcolorpcb$ = "@X6"
  784.         IF x = 7 THEN backgroundcolorpcb$ = "@X7"
  785.         IF x = 8 THEN backgroundcolorpcb$ = "@X8"
  786.         IF x = 9 THEN backgroundcolorpcb$ = "@X9"
  787.         IF x = 10 THEN backgroundcolorpcb$ = "@XA"
  788.         IF x = 11 THEN backgroundcolorpcb$ = "@XB"
  789.         IF x = 12 THEN backgroundcolorpcb$ = "@XC"
  790.         IF x = 13 THEN backgroundcolorpcb$ = "@XD"
  791.         IF x = 14 THEN backgroundcolorpcb$ = "@XE"
  792.         IF x = 15 THEN backgroundcolorpcb$ = "@XF"
  793.         IF y = 0 THEN foregroundcolorpcb$ = "0@"
  794.         IF y = 1 THEN foregroundcolorpcb$ = "1@"
  795.         IF y = 2 THEN foregroundcolorpcb$ = "2@"
  796.         IF y = 3 THEN foregroundcolorpcb$ = "3@"
  797.         IF y = 4 THEN foregroundcolorpcb$ = "4@"
  798.         IF y = 5 THEN foregroundcolorpcb$ = "5@"
  799.         IF y = 6 THEN foregroundcolorpcb$ = "6@"
  800.         IF y = 7 THEN foregroundcolorpcb$ = "7@"
  801.         IF y = 8 THEN foregroundcolorpcb$ = "8@"
  802.         IF y = 9 THEN foregroundcolorpcb$ = "9@"
  803.         IF y = 10 THEN foregroundcolorpcb$ = "A@"
  804.         IF y = 11 THEN foregroundcolorpcb$ = "B@"
  805.         IF y = 12 THEN foregroundcolorpcb$ = "C@"
  806.         IF y = 13 THEN foregroundcolorpcb$ = "D@"
  807.         IF y = 14 THEN foregroundcolorpcb$ = "E@"
  808.         IF y = 15 THEN foregroundcolorpcb$ = "F@"
  809.     END IF
  810.     IF display = "synchro" THEN
  811.         IF x = 0 THEN backgroundcolorsyncro$ = CHR$(1) + "0"
  812.         IF x = 1 THEN backgroundcolorsyncro$ = CHR$(1) + "1"
  813.         IF x = 2 THEN backgroundcolorsyncro$ = CHR$(1) + "2"
  814.         IF x = 3 THEN backgroundcolorsyncro$ = CHR$(1) + "3"
  815.         IF x = 4 THEN backgroundcolorsyncro$ = CHR$(1) + "4"
  816.         IF x = 5 THEN backgroundcolorsyncro$ = CHR$(1) + "5"
  817.         IF x = 6 THEN backgroundcolorsyncro$ = CHR$(1) + "6"
  818.         IF x = 7 THEN backgroundcolorsyncro$ = CHR$(1) + "7"
  819.         IF y = 0 THEN foregroundcolorsyncro$ = "k"
  820.         IF y = 1 THEN foregroundcolorsyncro$ = "b"
  821.         IF y = 2 THEN foregroundcolorsyncro$ = "g"
  822.         IF y = 3 THEN foregroundcolorsyncro$ = "c"
  823.         IF y = 4 THEN foregroundcolorsyncro$ = "r"
  824.         IF y = 5 THEN foregroundcolorsyncro$ = "m"
  825.         IF y = 6 THEN foregroundcolorsyncro$ = "y"
  826.         IF y = 7 THEN foregroundcolorsyncro$ = "w"
  827.     END IF
  828.     IF display = "mystic" THEN
  829.         IF x = 0 THEN backgroundcolormystic$ = CHR$(254) + "16"
  830.         IF x = 1 THEN backgroundcolormystic$ = CHR$(254) + "17"
  831.         IF x = 2 THEN backgroundcolormystic$ = CHR$(254) + "18"
  832.         IF x = 3 THEN backgroundcolormystic$ = CHR$(254) + "19"
  833.         IF x = 4 THEN backgroundcolormystic$ = CHR$(254) + "20"
  834.         IF x = 5 THEN backgroundcolormystic$ = CHR$(254) + "21"
  835.         IF x = 6 THEN backgroundcolormystic$ = CHR$(254) + "22"
  836.         IF x = 7 THEN backgroundcolormystic$ = CHR$(254) + "23"
  837.         IF x = 8 THEN backgroundcolormystic$ = CHR$(254) + "24"
  838.         IF x = 9 THEN backgroundcolormystic$ = CHR$(254) + "25"
  839.         IF x = 10 THEN backgroundcolormystic$ = CHR$(254) + "26"
  840.         IF x = 11 THEN backgroundcolormystic$ = CHR$(254) + "27"
  841.         IF x = 12 THEN backgroundcolormystic$ = CHR$(254) + "28"
  842.         IF x = 13 THEN backgroundcolormystic$ = CHR$(254) + "29"
  843.         IF x = 14 THEN backgroundcolormystic$ = CHR$(254) + "30"
  844.         IF x = 15 THEN backgroundcolormystic$ = CHR$(254) + "31"
  845.         IF y = 0 THEN foregroundcolormystic$ = CHR$(254) + "00"
  846.         IF y = 1 THEN foregroundcolormystic$ = CHR$(254) + "01"
  847.         IF y = 2 THEN foregroundcolormystic$ = CHR$(254) + "02"
  848.         IF y = 3 THEN foregroundcolormystic$ = CHR$(254) + "03"
  849.         IF y = 4 THEN foregroundcolormystic$ = CHR$(254) + "04"
  850.         IF y = 5 THEN foregroundcolormystic$ = CHR$(254) + "05"
  851.         IF y = 6 THEN foregroundcolormystic$ = CHR$(254) + "06"
  852.         IF y = 7 THEN foregroundcolormystic$ = CHR$(254) + "07"
  853.         IF y = 8 THEN foregroundcolormystic$ = CHR$(254) + "08"
  854.         IF y = 9 THEN foregroundcolormystic$ = CHR$(254) + "09"
  855.         IF y = 10 THEN foregroundcolormystic$ = CHR$(254) + "10"
  856.         IF y = 11 THEN foregroundcolormystic$ = CHR$(254) + "11"
  857.         IF y = 12 THEN foregroundcolormystic$ = CHR$(254) + "12"
  858.         IF y = 13 THEN foregroundcolormystic$ = CHR$(254) + "13"
  859.         IF y = 14 THEN foregroundcolormystic$ = CHR$(254) + "14"
  860.         IF y = 15 THEN foregroundcolormystic$ = CHR$(254) + "15"
  861.     END IF
  862.  
  863. SUB load
  864.     CLS
  865.     PRINT
  866.     PRINT "Do you wish to load a configuration file for later on [Y] or [N] : "
  867.     answer$ = UCASE$(answer$)
  868.     IF answer$ = "N" THEN inputscreen1
  869.     INPUT "Enter Filename [No extender :  ", files$
  870.     PRINT
  871.     files$ = files$ + ".dat"
  872.     filename$ = "c:\display\data\" + file$
  873.     PRINT
  874.     PRINT "Loading data..........."
  875.     PRINT
  876.     OPEN filename$ FOR INPUT AS #4
  877.     INPUT #4, usercolorentry_g1
  878.     INPUT #4, usercolorentry_t1
  879.     INPUT #4, usercolorentry_g2
  880.     INPUT #4, usercolorentry_t2
  881.     INPUT #4, color1background
  882.     INPUT #4, color1foreground
  883.     INPUT #4, color2background
  884.     INPUT #4, color2foreground
  885.     INPUT #4, color3background
  886.     INPUT #4, color3foreground
  887.     INPUT #4, color4background
  888.     INPUT #4, color4foreground
  889.     INPUT #4, color5background
  890.     INPUT #4, color5foreground
  891.     INPUT #4, color6background
  892.     INPUT #4, color6foreground
  893.     INPUT #4, color7background
  894.     INPUT #4, color7foreground
  895.     INPUT #4, color8background
  896.     INPUT #4, color8foreground
  897.     CLOSE #4
  898.     whatyouget
  899.  
  900. SUB whatyouget
  901.     CLS
  902.     PRINT
  903.     COLOR 7, 0
  904.     PRINT
  905.     PRINT "This is what you get for colors [Is it still acceptable] [Y] or [N] : "
  906.  
  907.     COLOR usercolorentry_t1, usercolorentry_g1
  908.     PRINT "[------------------------------------------------------]"
  909.     COLOR color1foreground, color1background
  910.     PRINT "[This is line 1 of 8 printed to see what it looks like.]"
  911.     COLOR usercolorentry_t1, usercolorentry_g1
  912.  
  913.     PRINT "[------------------------------------------------------]"
  914.     COLOR color2foreground, color2background
  915.     PRINT "[This is line 2 of 8 printed to see what it looks like.]"
  916.     COLOR usercolorentry_t1, usercolorentry_g1
  917.  
  918.     PRINT "[------------------------------------------------------]"
  919.     COLOR color3foreground, color3background
  920.     PRINT "[This is line 3 of 8 printed to see what it looks like.]"
  921.     COLOR usercolorentry_t1, usercolorentry_g1
  922.  
  923.     PRINT "[------------------------------------------------------]"
  924.     COLOR color4foreground, color4background
  925.     PRINT "[This is line 4 of 8 printed to see what it looks like.]"
  926.     COLOR usercolorentry_t1, usercolorentry_g1
  927.  
  928.     PRINT "[------------------------------------------------------]"
  929.     COLOR color5foreground, color5background
  930.     PRINT "[This is line 5 of 8 printed to see what it looks like.]"
  931.     COLOR usercolorentry_t1, usercolorentry_g1
  932.  
  933.     PRINT "[------------------------------------------------------]"
  934.     COLOR color6foreground, color6background
  935.  
  936.     PRINT "[This is line 6 of 8 printed to see what it looks like.]"
  937.     COLOR usercolorentry_t1, usercolorentry_g1
  938.  
  939.     PRINT "[------------------------------------------------------]"
  940.     COLOR color7foreground, color7background
  941.  
  942.     PRINT "[This is line 7 of 8 printed to see what it looks like.]"
  943.     COLOR usercolorentry_t1, usercolorentry_g1
  944.  
  945.     PRINT "[------------------------------------------------------]"
  946.     COLOR color8foreground, color8background
  947.     PRINT "[This is line 8 of 8 printed to see what it looks like.]"
  948.     COLOR usercolorentry_t1, usercolorentry_g1
  949.  
  950.     PRINT "[------------------------------------------------------]"
  951.  
  952.     COLOR 7, 0
  953.     PRINT
  954.     PRINT "Acceptable ???? [Y]es or [N]o : "
  955.     PRINT
  956.     answer$ = INPUT$(1)
  957.     answer$ = UCASE$(answer$)
  958.     IF answer$ = "N" THEN inputscreen1
  959.     create
  960.  
  961. SUB colorchange
  962.     IF flag$ = "Y1" THEN
  963.         g1 = 3
  964.         t1 = 6
  965.         colorchanges = 1
  966.     ELSEIF flag$ = "Y2" THEN
  967.         g2 = 6
  968.         t2 = 7
  969.         colorchanges = 1
  970.     ELSEIF flag$ = "Y3" THEN
  971.         g = 4
  972.         t = 7
  973.         colorchanges = 1
  974.     ELSE
  975.         g = 4
  976.         t = 7
  977.         colorchanges = 0
  978.     END IF
  979.  
  980. SUB picks
  981.     pick = INT(RND(1) * 4) + 1
  982.  
  983. SUB etry1
  984.     DO
  985.         background
  986.         INPUT "Color # 1 Background [From 0 to  7] : ", color1background
  987.         INPUT "Color # 1 Foreground [From 0 to 15] : ", color1foreground
  988.         PRINT
  989.         COLOR color1foreground, color1background
  990.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  991.         PRINT
  992.         PRINT "Is This acceptable [Y]es or [N]o : "
  993.         answer$ = INPUT$(1)
  994.         answer$ = UCASE$(answer$)
  995.     LOOP WHILE answer$ = "N"
  996.  
  997. SUB background
  998.     CLS
  999.     PRINT
  1000.     PRINT "Please enter the color of your Background "
  1001.     PRINT
  1002.     PRINT "Black        is color code 0 "
  1003.     PRINT "Blue         is color code 1 "
  1004.     PRINT "Green        is color code 2 " ' ask for and show the various colors of
  1005.     PRINT "Cyan         is color code 3 " ' background codes.
  1006.     PRINT "Red          is color code 4 "
  1007.     PRINT "Magenta      is color code 5 "
  1008.     PRINT "Brown        is color code 6 "
  1009.     PRINT "White        is color code 7 "
  1010.     IF display = "syn" OR display = "ansi" THEN
  1011.         PRINT
  1012.         PRINT "Don't worry, the program will translate from decimal to hex for this."
  1013.         PRINT "Make your Background selection from [0] to [7] for Syncronet and Ansi."
  1014.         PRINT "And [0] to [15] for everything else"
  1015.         PRINT
  1016.     ELSE
  1017.         PRINT "Black        is color code 8 "
  1018.         PRINT "Blue         is color code 9 "
  1019.         PRINT "Green        is color code 10"
  1020.         PRINT "Cyan         is color code 11"
  1021.         PRINT "Red          is color code 12"
  1022.         PRINT "Magenta      is color code 13"
  1023.         PRINT "Yellow       is color code 14"
  1024.         PRINT "White        is color code 15"
  1025.         PRINT
  1026.     END IF
  1027.  
  1028. SUB create
  1029.     CLS
  1030.     PRINT
  1031.     PRINT "Do you wish to save a configuration file for later on [Y] or [N] : "
  1032.     answer$ = UCASE$(answer$)
  1033.     IF answer$ = "N" THEN inputscreen
  1034.     PRINT
  1035.     PRINT "Enter Data for program."
  1036.     PRINT
  1037.     INPUT "Enter Filename [No extender :  ", files$
  1038.     PRINT
  1039.     files$ = files$ + ".dat"
  1040.     filename$ = "c:\display\data\" + files$
  1041.     PRINT "Saving data............"
  1042.     PRINT
  1043.     OPEN filename$ FOR OUTPUT AS #4
  1044.     PRINT #4, usercolorentry_g1
  1045.     PRINT #4, usercolorentry_g1
  1046.     PRINT #4, usercolorentry_g2
  1047.     PRINT #4, usercolorentry_g2
  1048.     PRINT #4, color1background
  1049.     PRINT #4, color1foreground
  1050.     PRINT #4, color2background
  1051.     PRINT #4, color2foreground
  1052.     PRINT #4, color3background
  1053.     PRINT #4, color3foreground
  1054.     PRINT #4, color4background
  1055.     PRINT #4, color4foreground
  1056.     PRINT #4, color5background
  1057.     PRINT #4, color5foreground
  1058.     PRINT #4, color6background
  1059.     PRINT #4, color6foreground
  1060.     PRINT #4, color7background
  1061.     PRINT #4, color7foreground
  1062.     PRINT #4, color8background
  1063.     PRINT #4, color8foreground
  1064.     CLOSE #4
  1065.  
  1066. SUB back
  1067.     ' back1
  1068.     DO
  1069.         background
  1070.         INPUT "Outside Lines Background [From 0 to  7] : ", usercolorentry_g1
  1071.         INPUT "Outside Lines Foreground [From 0 to 15] : ", usercolorentry_t1
  1072.         PRINT
  1073.         COLOR usercolorentry_t1, usercolorentry_g1
  1074.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1075.         PRINT
  1076.         PRINT "Is This acceptable [Y]es or [N]o : "
  1077.         answer$ = INPUT$(1)
  1078.         answer$ = UCASE$(answer$)
  1079.     LOOP WHILE answer$ = "N"
  1080.     ' back2
  1081.     DO
  1082.         background
  1083.         INPUT "Brackets  Background [From 0 to  7] : ", usercolorentry_g2
  1084.         INPUT "Brackets  Foreground [From 0 to 15] : ", usercolorentry_t2
  1085.         PRINT
  1086.         PRINT
  1087.         COLOR usercolorentry_t2, usercolorentry_g2
  1088.         PRINT "[";: COLOR 7, 0: COLOR 7, 0
  1089.         PRINT "A";
  1090.         COLOR usercolorentry_t2, usercolorentry_g2
  1091.         PRINT "]";: COLOR 7, 0: COLOR 7, 0
  1092.         PRINT
  1093.         PRINT "Is This acceptable [Y]es or [N]o : "
  1094.         answer$ = INPUT$(1)
  1095.         answer$ = UCASE$(answer$)
  1096.     LOOP WHILE answer$ = "N"
  1097.  
  1098. SUB etry2
  1099.     DO
  1100.         background
  1101.         INPUT "Color # 2 Background [From 0 to  7] : ", color2background
  1102.         INPUT "Color # 2 Foreground [From 0 to 15] : ", color2foreground
  1103.         PRINT
  1104.         COLOR color2foreground, color2background
  1105.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1106.         PRINT
  1107.         PRINT "Is This acceptable [Y]es or [N]o : "
  1108.         answer$ = INPUT$(1)
  1109.         answer$ = UCASE$(answer$)
  1110.     LOOP WHILE answer$ = "N"
  1111.  
  1112. SUB etry8
  1113.     DO
  1114.         background
  1115.         INPUT "Color # 8 Background [From 0 to  7] : ", color8background
  1116.         INPUT "Color # 8 Foreground [From 0 to 15] : ", color8foreground
  1117.         PRINT
  1118.         COLOR color8foreground, color8background
  1119.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1120.         PRINT
  1121.         PRINT "Is This acceptable [Y]es or [N]o : "
  1122.         answer$ = INPUT$(1)
  1123.         answer$ = UCASE$(answer$)
  1124.     LOOP WHILE answer$ = "N"
  1125.  
  1126. SUB etry7
  1127.     DO
  1128.         background
  1129.         INPUT "Color # 7 Background [From 0 to  7] : ", color7background
  1130.         INPUT "Color # 7 Foreground [From 0 to 15] : ", color7foreground
  1131.         PRINT
  1132.         COLOR color7foreground, color7background
  1133.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1134.         PRINT
  1135.         PRINT "Is This acceptable [Y]es or [N]o : "
  1136.         answer$ = INPUT$(1)
  1137.         answer$ = UCASE$(answer$)
  1138.     LOOP WHILE answer$ = "N"
  1139.  
  1140. SUB displays
  1141.     DO
  1142.         CLS
  1143.         PRINT "Output display [A] Any Ansi BBS    [B] Wildcat 5-8 BBS  [C] PCboard BBS   "
  1144.         PRINT "Output Display [D] Synchronet BBS  [E] Mystic BBS                       : " 'which BBS display the user wants
  1145.         displaychoice$ = INPUT$(1)
  1146.         displaychoice$ = UCASE$(displaychoice$)
  1147.         IF displaychoice$ = "A" THEN display = "ansi": Menu
  1148.         IF displaychoice$ = "B" THEN display = "wc8": Menu ' select display coding by what the user types in
  1149.         IF displaychoice$ = "C" THEN display = "pcb": Menu
  1150.         IF displaychoice$ = "D" THEN display = "synchro": Menu
  1151.         IF displaychoice$ = "E" THEN display = "mystic": Menu
  1152.     LOOP
  1153.  
  1154. SUB etry3
  1155.     DO
  1156.         background
  1157.         INPUT "Color # 3 Background [From 0 to  7] : ", color3background
  1158.         INPUT "Color # 3 Foreground [From 0 to 15] : ", color3foreground
  1159.         PRINT
  1160.         COLOR color3foreground, color3background
  1161.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1162.         PRINT
  1163.         PRINT "Is This acceptable [Y]es or [N]o : "
  1164.         answer$ = INPUT$(1)
  1165.         answer$ = UCASE$(answer$)
  1166.     LOOP WHILE answer$ = "N"
  1167.  
  1168. SUB etry4
  1169.     DO
  1170.         background
  1171.         INPUT "Color # 4 Background [From 0 to  7] : ", color4background
  1172.         INPUT "Color # 4 Foreground [From 0 to 15] : ", color4foreground
  1173.         PRINT
  1174.         COLOR color4foreground, color4background
  1175.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1176.         PRINT
  1177.         PRINT "Is This acceptable [Y]es or [N]o : "
  1178.         answer$ = INPUT$(1)
  1179.         answer$ = UCASE$(answer$)
  1180.     LOOP WHILE answer$ = "N"
  1181.  
  1182. SUB etry5
  1183.     DO
  1184.         background
  1185.         INPUT "Color # 5 Background [From 0 to  7] : ", color5background
  1186.         INPUT "Color # 5 Foreground [From 0 to 15] : ", color5foreground
  1187.         PRINT
  1188.         COLOR color5foreground, color5background
  1189.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1190.         PRINT
  1191.         PRINT "Is This acceptable [Y]es or [N]o : "
  1192.         answer$ = INPUT$(1)
  1193.         answer$ = UCASE$(answer$)
  1194.     LOOP WHILE answer$ = "N"
  1195.  
  1196. SUB etry6
  1197.     DO
  1198.         background
  1199.         INPUT "Color # 6 Background [From 0 to  7] : ", color6background
  1200.         INPUT "Color # 6 Foreground [From 0 to 15] : ", color6foreground
  1201.         PRINT
  1202.         COLOR color6foreground, color6background
  1203.         PRINT "[------------------]";: COLOR 7, 0: COLOR 7, 0
  1204.         PRINT
  1205.         PRINT "Is This acceptable [Y]es or [N]o : "
  1206.         answer$ = INPUT$(1)
  1207.         answer$ = UCASE$(answer$)
  1208.     LOOP WHILE answer$ = "N"
  1209.  
  1210. SUB inputscreen
  1211.     DO
  1212.         'CLEAR
  1213.         CLS
  1214.         PRINT "Demo files that are available are: "
  1215.         PRINT
  1216.         PRINT "In the Menu selector"
  1217.         PRINT
  1218.         PRINT "    inet5     inet6     inet9"
  1219.         PRINT "    msg1      msg5      msg6     msg9"
  1220.         PRINT "    main1     main5     main6    main9"
  1221.         PRINT "    file1     file5     file6    file9"
  1222.         PRINT "    sysop8    sysop9" '                  display demo files that are available
  1223.         PRINT
  1224.         PRINT "In the Disp selector"
  1225.         PRINT
  1226.         PRINT "    prelog goodbye"
  1227.         PRINT
  1228.         PRINT "More are coming soon. Custom files are up to you to upload and then use"
  1229.         PRINT
  1230.         PRINT "Filename : [Do not put in the extender ]"
  1231.         INPUT "           [Enter defaults to main5    ] : ", file ' ask user for filename
  1232.         '       IF file = "a" OR file = "A" THEN GOTO inputscreen
  1233.         '      IF file = "b" OR file = "B" THEN GOTO inputscreen
  1234.         '     IF file = "c" OR file = "C" THEN GOTO inputscreen
  1235.         '    IF file = "d" OR file = "D" THEN GOTO inputscreen
  1236.         '   IF file = "e" OR file = "E" THEN GOTO inputscreen
  1237.     LOOP WHILE INSTR("abcdeABCDE", file) > 0 AND LEN(file) = 1
  1238.  
  1239. SUB filen
  1240.     PRINT
  1241.     INPUT "Filename  [Please no extenders I will put them in ] : ", filename$
  1242.     filename$ = "c:\display\data\" + filename$ + ".txt"
  1243.     IF database$ = "L" THEN
  1244.         load
  1245.     END IF
  1246.  
  1247. SUB combos
  1248.     CLS
  1249.     PRINT
  1250.     PRINT "Please enter 8 different color combinations for the display , be creative : "
  1251.     PRINT "the program will pick randomly from those colors or will use them 1 at a time,"
  1252.     PRINT "depending on what you choose, either you will use the colors one at a time or "
  1253.     PRINT "you will use the same colors randomly. This can be fun to do and interesting."
  1254.     PRINT "depending on what you choose."
  1255.     PRINT
  1256.     PRINT "Press any key...."
  1257.     WaitAKey
  1258.  
  1259. SUB specialcharacters3
  1260.     IF b = CHR$(94) OR b = CHR$(43) OR b = CHR$(37) OR b = CHR$(126) OR b = CHR$(45) OR b = CHR$(38) OR b = CHR$(35) OR b = CHR$(42) OR b = CHR$(33) OR b = CHR$(61) THEN
  1261.         flag$ = "Y1"
  1262.     ELSEIF b = CHR$(91) OR b = CHR$(93) THEN
  1263.         flag$ = "Y2"
  1264.     ELSE
  1265.         flag$ = "Y3"
  1266.     END IF
  1267.  
  1268. SUB specialcharacters2
  1269.     IF b = CHR$(94) THEN b = corner1
  1270.     IF b = CHR$(43) THEN b = corner2
  1271.     IF b = CHR$(37) THEN b = corner3
  1272.     IF b = CHR$(126) THEN b = corner4
  1273.     IF b = CHR$(45) THEN
  1274.         b = lineconnector
  1275.     END IF
  1276.     IF b = CHR$(38) THEN
  1277.         b = connector1
  1278.     END IF
  1279.  
  1280.     IF b = CHR$(61) THEN
  1281.         b = connector2
  1282.     END IF
  1283.     IF b = CHR$(35) THEN
  1284.         b = connector3
  1285.     END IF
  1286.     IF b = CHR$(42) THEN
  1287.         b = connector4
  1288.     END IF
  1289.     IF b = CHR$(33) THEN
  1290.         b = verticalline
  1291.     END IF
  1292.  
  1293. SUB selector
  1294.     IF pick = 1 THEN
  1295.         horizontalines = "double": verticalines$ = "double"
  1296.         corner1 = CHR$(201)
  1297.         corner2 = CHR$(187) ' corner character for new corners of new box output
  1298.         corner3 = CHR$(188)
  1299.         corner4 = CHR$(200)
  1300.         connector1 = CHR$(203)
  1301.         connector2 = CHR$(185) 'various connectors for lines in boxes
  1302.         connector3 = CHR$(202)
  1303.  
  1304.         connector4 = CHR$(204)
  1305.         lineconnector = CHR$(205) ' Horizontal line character for new box output
  1306.         verticalline = CHR$(186)
  1307.     END IF
  1308.     IF pick = 2 THEN
  1309.         horizontalines = "double": verticalines = "single"
  1310.         corner1 = CHR$(213)
  1311.         corner2 = CHR$(184) ' corner character for new corners of new box output
  1312.         corner3 = CHR$(190)
  1313.         corner4 = CHR$(212)
  1314.         connector1 = CHR$(209)
  1315.         connector2 = CHR$(181) 'various connectors for lines in boxes
  1316.         connector3 = CHR$(207)
  1317.         connector4 = CHR$(198)
  1318.         lineconnector = CHR$(205) ' Horizontal line character for new box output
  1319.         verticalline = CHR$(179)
  1320.     END IF
  1321.     IF pick = 3 THEN
  1322.         horizontalines = "single": verticalines = "double"
  1323.         corner1 = CHR$(214)
  1324.         corner2 = CHR$(183) ' corner character for new corners of new box output
  1325.         corner3 = CHR$(189)
  1326.         corner4 = CHR$(211)
  1327.         connector1 = CHR$(210)
  1328.         connector2 = CHR$(182) 'various connectors for lines in boxes
  1329.         connector3 = CHR$(208)
  1330.         connector4 = CHR$(199)
  1331.         lineconnector = CHR$(196) ' Horizontal line character for new box output
  1332.         verticalline = CHR$(186)
  1333.  
  1334.     END IF
  1335.     IF pick = 4 THEN
  1336.         horizontalines = "single": verticalines = "single"
  1337.         corner1 = CHR$(218)
  1338.         corner2 = CHR$(191) ' corner character for new corners of new box output
  1339.         corner3 = CHR$(217)
  1340.         corner4 = CHR$(192)
  1341.         connector1 = CHR$(194)
  1342.         connector2 = CHR$(180) 'various connectors for lines in boxes
  1343.         connector3 = CHR$(193)
  1344.         connector4 = CHR$(195)
  1345.         lineconnector = CHR$(196) ' Horizontal line character for new box output
  1346.         verticalline = CHR$(179)
  1347.     END IF
  1348.  
  1349. SUB Menu
  1350.     DIM answer AS STRING
  1351.     DO
  1352.         PRINT "[M]enu file or [D]isplay file : "
  1353.         answer$ = INPUT$(1)
  1354.         answer = UCASE$(answer) ' ask the user what type of display they want, display file
  1355.         menuchoice = answer ' or menu file , gives two choices
  1356.         IF menuchoice = "M" OR menuchoice = "D" OR menuchoice = "" THEN EXIT DO
  1357.     LOOP
  1358.     ' fileit:
  1359.     IF file = "" THEN
  1360.         IF menuchoice = "D" THEN ' default file for display files
  1361.             file = "goodbye"
  1362.         ELSEIF menuchoice = "M" THEN ' default file for menu files
  1363.             file = "main5"
  1364.         END IF
  1365.     END IF
there are some dubts about the right translation...
1. CLEAR in the inputscreen block of code
2.  the flow of program... too complex at a first look.

However it is here.
Programming isn't difficult, only it's  consuming time and coffee

Offline rcamp48

  • Newbie
  • Posts: 62
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #20 on: September 17, 2020, 01:24:56 pm »
Thank you TempodiBasic, the programs works up until I type in the filename for the ascii file , and it goes back to that same menu, I am including the data files fo you in a zip file, put the display folder into the root directory or you cchange it in the program , the program basicall turns ascii code into Telnet graphics grated rather simple graphics. Russ
Russ Campbell
rcamp48@rogers.com
BBS Files Programmer

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #21 on: September 17, 2020, 06:29:13 pm »
Well so I can verify the flow!
Programming isn't difficult, only it's  consuming time and coffee

Offline rcamp48

  • Newbie
  • Posts: 62
    • View Profile
Re: BBS Color Screen Creator Program problems
« Reply #22 on: September 17, 2020, 08:50:09 pm »
I can try a little bit but I am not as familiar with Subs, etc
Anyways I do have a working copy but its in spagetti code of you know what I mean, I can compare my printout with what you have to verify flow, if you want I will send the new program so that you hasve something to work with , I believe that the one you converted to subs did not work, I will send version 15 which works all of the time.

Note that the zip file says version 13 but its version 15....anyways compare the one you downloaded to the new one there are some changes to make it work.

Note that the inputscreen sub loops forever it keeps going back to itself when you make a selection but you are close with thhe new version.
« Last Edit: September 17, 2020, 09:28:06 pm by rcamp48 »
Russ Campbell
rcamp48@rogers.com
BBS Files Programmer