home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / STFORMAT / STF18A.MSA / SIDE_2_DOT2DOT_DOTMAKER.LST < prev    next >
File List  |  1990-11-04  |  30KB  |  1,434 lines

  1. '
  2. ' *********************************************************************
  3. '                              D O T M A K E R
  4. '                       Puzzle Editor for DOT-TO-DOTS
  5. '                    yet another kidprg in GFA Basic from
  6. '                               D.A. Brumleve
  7. '                         Copyright 1989 by ST-LOG
  8. ' **********************************************************************
  9. '                               Version 3.2
  10. '                            February 21, 1989
  11. ' **********************************************************************
  12. '                                REFERENCE
  13. ' **********************************************************************
  14. ' VARIABLES
  15. ' Aa%
  16. ' Ab%
  17. ' Ac%
  18. ' Ad%
  19. ' Addx$
  20. ' Addx%()
  21. ' Addxx$
  22. ' Addy$
  23. ' Addy%()
  24. ' Addyy$
  25. ' Adx%()
  26. ' Ady%()
  27. ' Alrt$
  28. ' Bb%
  29. ' C$
  30. ' C%
  31. ' Cc%
  32. ' Ch%
  33. ' Ch1%
  34. ' D$
  35. ' D%
  36. ' Ddd$
  37. ' Dn%
  38. ' Dot_mode%
  39. ' Dummy%
  40. ' Dur%
  41. ' Edit_option$
  42. ' Got_dot%
  43. ' Grid$
  44. ' Hh%
  45. ' I%
  46. ' Ii%
  47. ' J%
  48. ' Jj%
  49. ' Just_starting%
  50. ' K%
  51. ' Lnumber%
  52. ' Lsuccess%
  53. ' Main_option$
  54. ' Main_screen$
  55. ' Mm%
  56. ' N%
  57. ' Nding$
  58. ' Nding%
  59. ' Nn%
  60. ' No_dot%
  61. ' Nt%
  62. ' Numc%
  63. ' Oct%
  64. ' Oo%
  65. ' P$
  66. ' Palette%()
  67. ' Pdot%
  68. ' Recno%
  69. ' Rez%
  70. ' Rr%
  71. ' Screen$
  72. ' T$
  73. ' Temp_grid$
  74. ' Tt%
  75. ' Ttt%
  76. ' Undo$
  77. ' X$
  78. ' X%()
  79. ' Xd%
  80. ' Xx$
  81. ' Y$
  82. ' Y%()
  83. ' Y1%
  84. ' Y2%
  85. ' Yd%
  86. ' Yy$
  87. ' Z$
  88. ' Z%
  89. ' Zn%
  90. ' Zz%
  91. '
  92. ' ********************* INITIALIZE AND SET UP SCREEN **********************
  93. Sget Screen$
  94. Rez%=Xbios(4)
  95. If Rez%<>0
  96.   Alrt$=" |This kidprg requires|low resolution."
  97.   Alert 3,Alrt$,1,"Oops!",Dummy%
  98.   End
  99. Endif
  100. Hidem
  101. Defmouse 0
  102. Dim X%(27),Y%(27),Palette%(15),Addx%(100),Addy%(100),Ady%(100),Adx%(100)
  103. @Save_palette
  104. @Black_screen
  105. Cls
  106. Graphmode 2
  107. @Main_screen
  108. Cls
  109. @Edit_screen
  110. Cls
  111. @Title
  112. Cls
  113. Sput Main_screen$
  114. D%=1
  115. Nding%=0
  116. Lnumber%=0
  117. Z%=1
  118. Zz%=1
  119. Defmouse 0
  120. Showm
  121. '
  122. ' ***************************** MAIN LOOP ***************************
  123. Do
  124.   Mouse Aa%,Bb%,Cc%
  125.   Vsync
  126.   If Cc%>0
  127.     If Aa%>0 And Aa%<50
  128.       ' *** exit
  129.       If Bb%>0 And Bb%<16
  130.         Deffill 2
  131.         Fill 6,1
  132.         Sget Screen$
  133.         Numc%=2
  134.         @Select_sound
  135.         @Alert_box2
  136.         @Alert_box3
  137.         Deftext 1,0,0,6
  138.         Text 89,85,"Do you really want"
  139.         Text 88,105,"     to stop?"
  140.         @Alert_check
  141.         If Ab%>74 And Ab%<154
  142.           Pause 15
  143.           @Finale_sound
  144.           Cls
  145.           @R_palette
  146.           End
  147.         Else
  148.           Sput Screen$
  149.           Pause 15
  150.           Deffill 11
  151.           Fill 6,1
  152.         Endif
  153.       Endif
  154.       ' *** help
  155.       If Bb%>19 And Bb%<35
  156.         Deffill 4
  157.         Fill 6,34
  158.         @Select_sound
  159.         Sget Screen$
  160.         Numc%=4
  161.         K%=0
  162.         @Help_alert
  163.         @Help_alert2
  164.         @Help1
  165.         @Help_alert_check
  166.         Sput Screen$
  167.         Pause 15
  168.         Deffill 11
  169.         Fill 6,34
  170.       Endif
  171.       ' *** print
  172.       If Bb%>38 And Bb%<54 And X%(1)<>0
  173.         Sget Screen$
  174.         Deffill 3
  175.         Fill 1,39
  176.         @Select_sound
  177.         Numc%=3
  178.         @Alert_box2
  179.         @Alert_box3
  180.         Deftext 1,0,0,6
  181.         Text 87,85,"  Do you want to"
  182.         Text 88,105,"print this puzzle?"
  183.         @Alert_check
  184.         If Ab%>74 And Ab%<154
  185.           @Print_it
  186.         Else
  187.           Sput Screen$
  188.         Endif
  189.         @Let_go
  190.         Pdot%=0
  191.         Pause 15
  192.       Endif
  193.       ' *** save
  194.       If Bb%>130 And Bb%<146
  195.         If X%(D%-1)<>0
  196.           Sget Screen$
  197.           Deffill 5
  198.           Fill 1,131
  199.           @Select_sound
  200.           @Let_go
  201.           Numc%=5
  202.           @Connect_q
  203.           @Alert_box2
  204.           @Alert_box3
  205.           Deftext 1,0,0,6
  206.           Text 87,85,"  Do you want to"
  207.           Text 84,105," save this puzzle?"
  208.           @Alert_check
  209.           If Ab%>74 And Ab%<154
  210.             @Save_it
  211.           Endif
  212.           Sput Screen$
  213.           Pause 15
  214.         Endif
  215.       Endif
  216.       ' *** load
  217.       If Bb%>164 And Bb%<180
  218.         Sget Screen$
  219.         Deffill 14
  220.         Fill 1,165
  221.         @Select_sound
  222.         Pause 15
  223.         @Let_go
  224.         @Clear_arrays
  225.         Inc Lnumber%
  226.         @Load_it
  227.         Pause 15
  228.         Sput Screen$
  229.         If Lsuccess%=1
  230.           @Clear_dot_box
  231.           @Restore_extra_lines2
  232.           @Redraw_pic
  233.         Endif
  234.         Showm
  235.       Endif
  236.       ' *** edit
  237.       If Bb%>74 And Bb%<90
  238.         Hidem
  239.         @Make_mouse
  240.         Defmouse Cross$
  241.         Deffill 9
  242.         Fill 1,75
  243.         @Select_sound
  244.         @Let_go
  245.         Pause 15
  246.         Put 0,0,Edit_option$
  247.         Deffill 5
  248.         Fill 1,75
  249.         Just_starting%=1
  250.         Dot_mode%=1
  251.         Showm
  252.         @Place_dots
  253.         Hidem
  254.         Defmouse 0
  255.         Showm
  256.         Put 0,0,Main_option$
  257.       Endif
  258.       ' *** new
  259.       If Bb%>183 And Bb%<199
  260.         Deffill 12
  261.         Fill 1,184
  262.         @Select_sound
  263.         @Clear_arrays
  264.         @Erase_sound
  265.         Pause 15
  266.         Sput Main_screen$
  267.       Endif
  268.     Endif
  269.   Endif
  270. Loop
  271. '
  272. ' ******************************* EDITOR ******************************
  273. Procedure Place_dots
  274.   Do
  275.     @Let_go
  276.     Repeat
  277.       Mouse Aa%,Bb%,Cc%
  278.     Until Cc%>0
  279.     Exit If Aa%>0 And Aa%<50 And Bb%>0 And Bb%<16
  280.     If Aa%>0 And Aa%<50
  281.       ' *** undo
  282.       If Bb%>183 And Bb%<199 And Just_starting%=0
  283.         Deffill 6
  284.         Fill 1,184
  285.         @Select_sound
  286.         Put 60,0,Temp_grid$
  287.         If Dot_mode%=1
  288.           X%(D%-1)=0
  289.           Y%(D%-1)=0
  290.           Dec D%
  291.         Else
  292.           If Zz%=1
  293.             Z%=Z%-2
  294.           Else
  295.             Z%=Z%-1
  296.           Endif
  297.           Zz%=1
  298.         Endif
  299.         Pause 15
  300.         Put 0,183,Undo$
  301.         Just_starting%=1
  302.         Goto No_dot
  303.       Endif
  304.       ' *** alter a dot
  305.       If Bb%>93 And Bb%<109 And X%(D%-1)<>0
  306.         Deffill 13
  307.         Fill 1,94
  308.         @Select_sound
  309.         @Let_go
  310.         Sget Screen$
  311.         Deftext 1,1,0,4
  312.         Text 72,196,"  CLICK ON THE DOT YOU WANT TO CHANGE."
  313.         @Determine_dot
  314.         Sget Screen$
  315.         Hidem
  316.         Defmouse 0
  317.         Showm
  318.         @Alert_box4
  319.         @Alert_check2
  320.         Hidem
  321.         Defmouse Cross$
  322.         Showm
  323.         Sput Screen$
  324.         If Ab%>103 And Ab%<183
  325.           @Replace_dots
  326.           @Clear_dot_box
  327.           @Restore_extra_lines2
  328.           @Redraw_pic
  329.           @Let_go
  330.         Else
  331.           @Delete_dots
  332.         Endif
  333.         Clr Temp_grid$
  334.         Just_starting%=1
  335.         @Let_go
  336.         Deffill 11
  337.         Fill 1,94
  338.         Goto No_dot
  339.       Endif
  340.       ' *** show
  341.       If Bb%>19 And Bb%<35 And X%(1)<>0
  342.         Hidem
  343.         Deffill 3
  344.         Fill 6,20
  345.         @Select_sound
  346.         Sget Screen$
  347.         Numc%=3
  348.         Show%=1
  349.         @Alert_box2
  350.         @Alert_box3
  351.         Deftext 1,0,0,6
  352.         Text 87,85,"  Do you want to"
  353.         Text 86,105," see this puzzle?"
  354.         Defmouse 0
  355.         Showm
  356.         @Alert_check
  357.         If Ab%>74 And Ab%<154
  358.           @Show_it
  359.         Endif
  360.         Hidem
  361.         Defmouse Cross$
  362.         Showm
  363.         Sput Screen$
  364.         @Let_go
  365.         Pdot%=0
  366.         Show%=0
  367.         Pause 15
  368.         Deffill 11
  369.         Fill 6,20
  370.       Endif
  371.       ' *** dot mode
  372.       If Bb%>74 And Bb%<90 And Dot_mode%=0
  373.         Put 0,0,Edit_option$
  374.         Deffill 5
  375.         Fill 1,75
  376.         @Select_sound
  377.         Dot_mode%=1
  378.         Just_starting%=1
  379.         Clr Temp_grid$
  380.         Goto No_dot
  381.       Endif
  382.       ' *** line mode
  383.       If Bb%>130 And Bb%<146 And Dot_mode%=1
  384.         Put 0,0,Edit_option$
  385.         Deffill 10
  386.         Fill 1,131
  387.         @Select_sound
  388.         Dot_mode%=0
  389.         Just_starting%=1
  390.         Clr Temp_grid$
  391.         Goto No_dot
  392.       Endif
  393.     Endif
  394.     ' *** in the grid area in line mode
  395.     If Aa%>60 And Bb%>0 And Aa%<319 And Bb%<199 And Dot_mode%=0
  396.       If Aa%>71 And Bb%>15 And Aa%<305 And Bb%<185 And Dot_mode%=0
  397.         @Let_go
  398.         If Z%<101
  399.           If Zz%=1
  400.             Get 60,0,319,199,Temp_grid$
  401.           Endif
  402.           Color 2
  403.           Draw Aa%,Bb%
  404.           Adx%(Z%)=Aa%
  405.           Ady%(Z%)=Bb%
  406.           Just_starting%=0
  407.           If Zz%=2
  408.             Draw Adx%(Z%-1),Ady%(Z%-1) To Aa%,Bb%
  409.             Addx%(Z%)=Aa%
  410.             Addy%(Z%)=Bb%
  411.             Addx%(Z%-1)=Adx%(Z%-1)
  412.             Addy%(Z%-1)=Ady%(Z%-1)
  413.           Endif
  414.           Inc Z%
  415.           If Zz%=1
  416.             Zz%=2
  417.           Else
  418.             Zz%=1
  419.           Endif
  420.           @Other_sound
  421.         Else
  422.           Hidem
  423.           Sget Screen$
  424.           Deftext 1,1,0,4
  425.           Text 72,196,"  WHOOPS!  YOU ALREADY HAVE 5O LINES!"
  426.           @Buzz_sound
  427.           Pause 100
  428.           Sput Screen$
  429.           Showm
  430.         Endif
  431.       Else
  432.         @Dud_sound
  433.       Endif
  434.       Goto No_dot
  435.     Endif
  436.     ' *** in the grid area in dot mode
  437.     If Aa%>60 And Bb%>0 And Aa%<319 And Bb%<199 And Dot_mode%=1
  438.       If Aa%>71 And Bb%>15 And Aa%<305 And Bb%<185 And Dot_mode%=1
  439.         If D%<27
  440.           Xd%=Aa%
  441.           Yd%=Bb%
  442.           No_dot%=0
  443.           If D%>1
  444.             For I%=1 To D%-1
  445.               If Abs(X%(I%)-Xd%)<16 And Abs(Y%(I%)-Yd%)<16
  446.                 No_dot%=1
  447.               Endif
  448.               Exit If No_dot%=1
  449.             Next I%
  450.             If Abs(X%(I%)-Xd%)<16 And Abs(Y%(I%)-Yd%)<16
  451.               Hidem
  452.               Sget Screen$
  453.               Deftext 1,1,0,4
  454.               Text 76,196,"   THAT'S TOO CLOSE TO ANOTHER DOT!"
  455.               @Dud_sound
  456.               Pause 100
  457.               Sput Screen$
  458.               Showm
  459.               Goto No_dot
  460.             Endif
  461.           Endif
  462.           Sound 1,15,4,4,8
  463.           Sound 1,15,1,5,4
  464.           Sound 1,0,0,0,0
  465.           Color 1
  466.           Deffill 11
  467.           Get 60,0,319,199,Temp_grid$
  468.           X%(D%)=Aa%
  469.           Y%(D%)=Bb%
  470.           If D%>1
  471.             Draw X%(D%-1),Y%(D%-1) To X%(D%),Y%(D%)
  472.           Endif
  473.           Pcircle X%(D%),Y%(D%),7
  474.           Circle X%(D%),Y%(D%),7
  475.           If D%=20
  476.             Ddd$="2O"
  477.             Text X%(D%)-6,Y%(D%)+2,Ddd$
  478.             Goto No_dot2
  479.           Endif
  480.           If D%=10
  481.             Ddd$="1O"
  482.             Text X%(D%)-6,Y%(D%)+2,Ddd$
  483.             Goto No_dot2
  484.           Endif
  485.           If Len(Str$(D%))=1
  486.             Tt%=3
  487.           Else
  488.             Tt%=6
  489.           Endif
  490.           Deftext 1,1,0,4
  491.           Text X%(D%)-Tt%,Y%(D%)+2,D%
  492.           No_dot2:
  493.           If D%>1
  494.             I%=D%-1
  495.             Pcircle X%(D%-1),Y%(D%-1),7
  496.             Circle X%(D%-1),Y%(D%-1),7
  497.             If I%=20
  498.               Ddd$="2O"
  499.               Text X%(I%)-6,Y%(I%)+2,Ddd$
  500.               Goto No_dot3
  501.             Endif
  502.             If I%=10
  503.               Ddd$="1O"
  504.               Text X%(I%)-6,Y%(I%)+2,Ddd$
  505.               Goto No_dot3
  506.             Endif
  507.             If Len(Str$(D%-1))=1
  508.               Tt%=3
  509.             Else
  510.               Tt%=6
  511.             Endif
  512.             Text X%(D%-1)-Tt%,Y%(D%-1)+2,D%-1
  513.           Endif
  514.           No_dot3:
  515.           Inc D%
  516.           Just_starting%=0
  517.         Else
  518.           Hidem
  519.           Sget Screen$
  520.           Deftext 1,1,0,4
  521.           Text 76,196,"  WHOOPS!  YOU ALREADY HAVE 26 DOTS!"
  522.           @Buzz_sound
  523.           Pause 100
  524.           Sput Screen$
  525.           Showm
  526.         Endif
  527.       Else
  528.         @Dud_sound
  529.       Endif
  530.     Endif
  531.     No_dot:
  532.   Loop
  533.   Deffill 9
  534.   Fill 1,1
  535.   @Select_sound
  536.   @Let_go
  537.   If Zz%=2
  538.     Zz%=1
  539.     Put 60,0,Temp_grid$
  540.   Endif
  541.   Pause 15
  542. Return
  543. '
  544. ' ****************************** DETERMINE DOT ****************************
  545. Procedure Determine_dot
  546.   Got_dot%=0
  547.   Again:
  548.   Repeat
  549.     Mouse Hh%,Ii%,Jj%
  550.   Until Jj%>0 And Hh%>64 And Ii%>8 And Hh%<312 And Ii%<192
  551.   @Let_go
  552.   For I%=1 To D%-1
  553.     If Hh%>X%(I%)-7 And Hh%<X%(I%)+7 And Ii%>Y%(I%)-7 And Ii%<Y%(I%)+7
  554.       Sput Screen$
  555.       Deffill 2
  556.       Pcircle X%(I%),Y%(I%),7
  557.       Color 1
  558.       Circle X%(I%),Y%(I%),7
  559.       J%=I%
  560.       Got_dot%=1
  561.       Deftext 1,0,0,4
  562.       If J%=10
  563.         Text X%(J%)-6,Y%(J%)+2,"1O"
  564.         Goto Did_it2
  565.       Endif
  566.       If J%=20
  567.         Text X%(J%)-6,Y%(J%)+2,"2O"
  568.         Goto Did_it2
  569.       Endif
  570.       If Len(Str$(J%))=1
  571.         Tt%=3
  572.       Else
  573.         Tt%=6
  574.       Endif
  575.       Text X%(J%)-Tt%,Y%(J%)+2,J%
  576.       Did_it2:
  577.     Endif
  578.     Exit If Got_dot%=1
  579.   Next I%
  580.   If Got_dot%=0
  581.     @Dud_sound
  582.     Goto Again
  583.   Endif
  584. Return
  585. '
  586. ' ********************************* DELETE DOTS ****************************
  587. Procedure Delete_dots
  588.   If D%-1>1
  589.     For Ttt%=J% To D%-1
  590.       X%(Ttt%)=X%(Ttt%+1)
  591.       Y%(Ttt%)=Y%(Ttt%+1)
  592.     Next Ttt%
  593.   Endif
  594.   D%=D%-1
  595.   @Clear_dot_box
  596.   @Restore_extra_lines2
  597.   @Redraw_pic
  598. Return
  599. '
  600. ' ******************************** REPLACE DOTS ****************************
  601. Procedure Replace_dots
  602.   Deffill 11
  603.   Pcircle X%(J%),Y%(J%),7
  604.   Color 1
  605.   Circle X%(J%),Y%(J%),7
  606.   Try2:
  607.   Deftext 1,1,0,4
  608.   Text 72,196,"    CLICK ON THE GRID FOR A NEW DOT."
  609.   Repeat
  610.     Mouse Aa%,Bb%,Cc%
  611.   Until Cc%>0 And Aa%>71 And Bb%>15 And Aa%<305 And Bb%<185
  612.   No_dot%=0
  613.   For I%=1 To D%-1
  614.     If Abs(X%(I%)-Aa%)<16 And Abs(Y%(I%)-Bb%)<16
  615.       No_dot%=1
  616.     Endif
  617.     If I%=J%
  618.       No_dot%=0
  619.     Endif
  620.     Exit If No_dot%=1
  621.   Next I%
  622.   If No_dot%=1
  623.     Hidem
  624.     Deffill 11,2,8
  625.     Pbox 61,188,318,198
  626.     Deftext 1,1,0,4
  627.     Text 76,196,"   THAT'S TOO CLOSE TO ANOTHER DOT!"
  628.     @Dud_sound
  629.     Pause 100
  630.     Deffill 11,2,8
  631.     Pbox 61,188,318,198
  632.     Showm
  633.     Goto Try2
  634.   Endif
  635.   @Let_go
  636.   Sound 1,15,4,4,8
  637.   Sound 1,15,1,5,4
  638.   Sound 1,0,0,0,0
  639.   X%(J%)=Aa%
  640.   Y%(J%)=Bb%
  641. Return
  642. '
  643. ' *************************** DISK ACTIVITIES ***************************
  644. Procedure Load_it
  645.   If Exist("dot2dots.dat")
  646.     Hidem
  647.     Open "r",#1,"dot2dots.dat",255
  648.     Field #1,1 As Nding$,1 As D$,1 As Z$,100 As Addx$,100 As Addy$,26 As X$,26 As Y$
  649.     Rr%=Lof(#1)/255
  650.     If Lnumber%>Rr%
  651.       Lnumber%=1
  652.     Endif
  653.     Get #1,Lnumber%
  654.     Dn%=Asc(D$)
  655.     Zn%=Asc(Z$)
  656.     Nding%=Asc(Nding$)
  657.     Color 1
  658.     For I%=1 To Zn%
  659.       Addx%(I%)=Asc(Mid$(Addx$,I%,1))+72
  660.       Addy%(I%)=Asc(Mid$(Addy$,I%,1))+15
  661.     Next I%
  662.     For I%=1 To Dn%
  663.       X%(I%)=Asc(Mid$(X$,I%,1))+72
  664.       Y%(I%)=Asc(Mid$(Y$,I%,1))+15
  665.     Next I%
  666.     Close #1
  667.     D%=Dn%+1
  668.     Z%=Zn%+1
  669.     Lsuccess%=1
  670.   Else
  671.     Numc%=14
  672.     K%=0
  673.     Pause 15
  674.     @Buzz_sound
  675.     @Help_alert
  676.     @Help_alert2
  677.     @Load_dialog
  678.     Showm
  679.     @Help_alert_check
  680.     Lsuccess%=0
  681.   Endif
  682. Return
  683. '
  684. Procedure Save_it
  685.   Hidem
  686.   Xx$=""
  687.   Yy$=""
  688.   Addxx$=""
  689.   Addyy$=""
  690.   X$=String$(26,0)
  691.   Y$=X$
  692.   Addx$=String$(100,0)
  693.   Addy$=Addx$
  694.   For I%=1 To 100
  695.     Addxx$=Addxx$+Chr$(Addx%(I%)-72)
  696.     Addyy$=Addyy$+Chr$(Addy%(I%)-15)
  697.   Next I%
  698.   For I%=1 To D%-1
  699.     Xx$=Xx$+Chr$(X%(I%)-72)
  700.     Yy$=Yy$+Chr$(Y%(I%)-15)
  701.   Next I%
  702.   Open "r",#1,"dot2dots.dat",255
  703.   Field #1,1 As Nding$,1 As D$,1 As Z$,100 As Addx$,100 As Addy$,26 As X$,26 As Y$
  704.   Recno%=(Lof(#1)/255)+1
  705.   If Dfree(0)>(Recno%)*255
  706.     Lset Nding$=Chr$(Nding%)
  707.     Lset D$=Chr$(D%-1)
  708.     Lset Z$=Chr$(Z%-1)
  709.     Lset Addx$=Addxx$
  710.     Lset Addy$=Addyy$
  711.     Lset X$=Xx$
  712.     Lset Y$=Yy$
  713.     Put #1,Recno%
  714.     Close #1
  715.     Showm
  716.   Else
  717.     Close #1
  718.     Numc%=6
  719.     K%=0
  720.     Pause 15
  721.     @Buzz_sound
  722.     @Help_alert
  723.     @Help_alert2
  724.     @Save_dialog
  725.     Showm
  726.     @Help_alert_check
  727.   Endif
  728. Return
  729. '
  730. ' ***************** CLEAR/RESTORE SCREEN AREAS AND VARIABLES ***************
  731. Procedure Clear_dot_box
  732.   Deffill 11
  733.   Pbox 61,1,318,198
  734.   Put 60,0,Grid$
  735. Return
  736. '
  737. Procedure Clear_arrays
  738.   For I%=1 To 27
  739.     X%(I%)=0
  740.     Y%(I%)=0
  741.   Next I%
  742.   For I%=1 To 100
  743.     Addx%(I%)=0
  744.     Addy%(I%)=0
  745.   Next I%
  746.   D%=1
  747.   Dn%=0
  748.   Zn%=0
  749.   Z%=1
  750. Return
  751. '
  752. Procedure Clear_numbers
  753.   Color 1
  754.   For I%=1 To D%-1
  755.     Deffill 11
  756.     Pcircle X%(I%),Y%(I%),7
  757.   Next I%
  758.   For I%=2 To D%-1
  759.     Draw X%(I%-1),Y%(I%-1) To X%(I%),Y%(I%)
  760.   Next I%
  761.   If Nding%=1
  762.     Draw X%(1),Y%(1) To X%(D%-1),Y%(D%-1)
  763.   Endif
  764. Return
  765. '
  766. Procedure Restore_extra_lines
  767.   If Z%>1
  768.     For I%=2 To Z% Step 2
  769.       Color 1
  770.       Draw Addx%(I%-1),Addy%(I%-1) To Addx%(I%),Addy%(I%)
  771.     Next I%
  772.   Endif
  773. Return
  774. '
  775. Procedure Restore_extra_lines2
  776.   If Z%>1
  777.     For I%=2 To Z% Step 2
  778.       Color 2
  779.       Draw Addx%(I%-1),Addy%(I%-1) To Addx%(I%),Addy%(I%)
  780.     Next I%
  781.   Endif
  782. Return
  783. '
  784. Procedure Restore_numbers
  785.   For I%=1 To D%-1
  786.     Deffill 11
  787.     Pcircle X%(I%),Y%(I%),7
  788.     Color 1
  789.     Circle X%(I%),Y%(I%),7
  790.     Deftext 1,1,0,4
  791.     If I%=10
  792.       Text X%(I%)-6,Y%(I%)+2,"1O"
  793.       Goto Did_it1
  794.     Endif
  795.     If I%=20
  796.       Text X%(I%)-6,Y%(I%)+2,"2O"
  797.       Goto Did_it1
  798.     Endif
  799.     If Len(Str$(I%))=1
  800.       Tt%=3
  801.     Else
  802.       Tt%=6
  803.     Endif
  804.     Text X%(I%)-Tt%,Y%(I%)+2,I%
  805.     Did_it1:
  806.   Next I%
  807. Return
  808. '
  809. Procedure Redraw_pic
  810.   If D%-1>0
  811.     For I%=1 To D%-1
  812.       If I%>1
  813.         Color 1
  814.         Draw X%(I%),Y%(I%) To X%(I%-1),Y%(I%-1)
  815.       Endif
  816.     Next I%
  817.     For I%=1 To D%-1
  818.       Deffill 11
  819.       Pcircle X%(I%),Y%(I%),7
  820.       Color 1
  821.       Circle X%(I%),Y%(I%),7
  822.       Deftext 1,1,0,4
  823.       If I%=10
  824.         Text X%(I%)-6,Y%(I%)+2,"1O"
  825.         Goto Did_it
  826.       Endif
  827.       If I%=20
  828.         Text X%(I%)-6,Y%(I%)+2,"2O"
  829.         Goto Did_it
  830.       Endif
  831.       If Len(Str$(I%))=1
  832.         Tt%=3
  833.       Else
  834.         Tt%=6
  835.       Endif
  836.       Text X%(I%)-Tt%,Y%(I%)+2,I%
  837.       Did_it:
  838.     Next I%
  839.   Endif
  840. Return
  841. '
  842. ' ***************************** SCREENS **********************************
  843. Procedure Main_screen
  844.   Deffill 11
  845.   Pbox 0,0,319,199
  846.   Deffill 7,3,12
  847.   Fill 72,16
  848.   Get 72,16,304,184,Grid$
  849.   Cls
  850.   Deffill 1,2,8
  851.   @Clear_dot_box
  852.   Graphmode 2
  853.   Color 1
  854.   Restore Screen_data
  855.   For I%=1 To 7
  856.     Read Y1%,Y2%,C%
  857.     Deffill 11
  858.     Pbox 0,Y1%,50,Y2%+2
  859.     Box 0,Y1%,50,Y2%+2
  860.     Deffill C%
  861.     Pbox 2,Y1%+2,48,Y2%
  862.     Box 2,Y1%+2,48,Y2%
  863.   Next I%
  864.   Deftext 1,0,0,6
  865.   Text 10,11,"EXIT"
  866.   Text 10,30,"HELP"
  867.   Text 6,49,"PRINT"
  868.   Text 10,85,"EDIT"
  869.   Text 10,141,"SAVE"
  870.   Text 9,175,"LOAD"
  871.   Text 6,194,"BLANK"
  872.   Deffill 11
  873.   Pbox 60,0,319,199
  874.   Color 1
  875.   Box 60,0,319,199
  876.   Put 72,16,Grid$
  877.   Get 60,0,319,199,Grid$
  878.   Get 0,0,50,199,Main_option$
  879.   Sget Main_screen$
  880. Return
  881. '
  882. Procedure Edit_screen
  883.   Color 1
  884.   Restore Screen2_data
  885.   For I%=1 To 6
  886.     Read Y1%,Y2%,C%
  887.     Deffill 11
  888.     Pbox 0,Y1%,50,Y2%+2
  889.     Box 0,Y1%,50,Y2%+2
  890.     Deffill C%
  891.     Pbox 2,Y1%+2,48,Y2%
  892.     Box 2,Y1%+2,48,Y2%
  893.   Next I%
  894.   Deftext 1,0,0,6
  895.   Text 10,11,"DONE"
  896.   Text 13,85,"DOT"
  897.   Text 9,30,"SHOW"
  898.   Text 6,104,"ALTER"
  899.   Text 10,141,"LINE"
  900.   Text 10,194,"UNDO"
  901.   Get 0,183,50,199,Undo$
  902.   Get 0,0,50,199,Edit_option$
  903. Return
  904. '
  905. Procedure Title
  906.   K%=30
  907.   Numc%=9
  908.   @Clear_arrays
  909.   @Title_alert
  910.   Deftext 2,1,0,13
  911.   Text 98,30,"D O T M A K E R"
  912.   Deftext 1,0,0,6
  913.   T$="              "+Chr$(191)
  914.   Text 47,50,T$
  915.   Text 47,50,"Another KIDPRG  in GFA Basic"
  916.   Deftext 1,0,0,6
  917.   Text 89,70,"from D.A. Brumleve"
  918.   C$="   "+Chr$(189)
  919.   Text 75,89,C$
  920.   Text 75,90,"    1988 by"
  921.   Text 70,130,"As published in ST-Log!"
  922.   Deftext 1,5,0,6
  923.   Text 75,90,"            ST-LOG"
  924.   Deftext 1,1,0,4
  925.   Text 58,110,"           VERSION 3.2"
  926.   Deftext 2,1,0,4
  927.   Text 45,150,"PUZZLE FILES CREATED WITH THIS PROGRAM"
  928.   Text 43,160,"CAN BE USED WITH THE GAME, DOT-TO-DOTS."
  929.   @Help_alert2
  930.   @Set_color
  931.   Showm
  932.   @Help_alert_check
  933.   Hidem
  934. Return
  935. '
  936. ' ************************ COLOR PALETTE ACTIVITIES **********************
  937. Procedure Set_color
  938.   Setcolor 0,4,4,4            !=Color# 0
  939.   Setcolor 15,0,0,0           !=Color# 1--black
  940.   Setcolor 1,7,0,0            !=Color# 2--red
  941.   Setcolor 2,0,6,0            !=Color# 3--(print) green
  942.   Setcolor 4,7,4,0            !=Color# 4--(help) orange
  943.   Setcolor 6,7,6,0            !=Color# 5--gold
  944.   Setcolor 3,7,0,7            !=Color# 6
  945.   Setcolor 5,0,5,7            !=Color# 7--blue
  946.   Setcolor 7,5,5,5            !=Color# 8
  947.   Setcolor 8,3,3,3            !=Color# 9
  948.   Setcolor 9,7,3,3            !=Color# 10
  949.   Setcolor 10,7,7,7           !=Color# 11--white
  950.   Setcolor 12,3,3,7           !=Color# 12
  951.   Setcolor 14,5,4,7           !=Color# 13
  952.   Setcolor 11,7,3,5           !=Color# 14
  953.   Setcolor 13,0,5,0           !=Color# 15
  954. Return
  955. '
  956. Procedure Black_screen
  957.   For I%=0 To 15
  958.     Setcolor I%,4,4,4
  959.   Next I%
  960. Return
  961. '
  962. Procedure Save_palette
  963.   For I%=0 To 15
  964.     Palette%(I%)=Xbios(7,W:I%,W:-1)
  965.   Next I%
  966. Return
  967. '
  968. Procedure R_palette
  969.   For I%=0 To 15
  970.     Setcolor I%,Palette%(I%)
  971.   Next I%
  972. Return
  973. '
  974. ' ************************** MOUSE ACTIVITIES ***************************
  975. Procedure Let_go
  976.   Repeat
  977.     Mouse Mm%,Nn%,Oo%
  978.   Until Oo%=0
  979. Return
  980. '
  981. Procedure Make_mouse
  982.   Let Cross$=Mki$(7)+Mki$(8)
  983.   Let Cross$=Cross$+Mki$(0)
  984.   Let Cross$=Cross$+Mki$(11)
  985.   Let Cross$=Cross$+Mki$(1)
  986.   Restore Ms_data
  987.   For I%=1 To 16
  988.     Read Backgrnd%
  989.     Let Cross$=Cross$+Mki$(Backgrnd%)
  990.   Next I%
  991.   For I%=1 To 16
  992.     Read Foregrnd%
  993.     Let Cross$=Cross$+Mki$(Foregrnd%)
  994.   Next I%
  995. Return
  996. '
  997. ' ******************************* DIALOGS *******************************
  998. Procedure Alert_box1
  999.   @Alert_box2
  1000.   Deffill 11
  1001.   Pbox 74,80,154,120
  1002.   Pbox 165,80,245,120
  1003.   Color 1
  1004.   Box 74,80,154,120
  1005.   Box 75+1,81+1,153-1,119-1
  1006.   Box 165,80,245,120
  1007.   Box 166+1,81+1,244-1,119-1
  1008.   Deftext 1,0,0,6
  1009.   Text 78,135,"Dots Only"
  1010.   Text 166,135,"Lines Only"
  1011.   If Show%=1
  1012.     Text 137,70," See:"
  1013.   Else
  1014.     Text 137,70,"Print:"
  1015.   Endif
  1016.   Draw 178,90 To 232,100
  1017.   Draw 232,100 To 200,110
  1018.   Draw 200,110 To 178,90
  1019.   Circle 87,90,7
  1020.   Circle 141,100,7
  1021.   Circle 109,110,7
  1022.   Deftext 1,1,0,4
  1023.   Text 84,92,"1"
  1024.   Text 138,102,"2"
  1025.   Text 106,112,"3"
  1026.   Repeat
  1027.     Mouse Ab%,Ac%,Ad%
  1028.   Until Ad%>0 And Ac%>80 And Ac%<120 And ((Ab%>74 And Ab%<154) Or (Ab%>165 And Ab%<245))
  1029.   @Let_go
  1030.   If Ab%>74 And Ab%<154
  1031.     Deffill 3
  1032.     Fill 75,81
  1033.     Pdot%=1
  1034.   Else
  1035.     Deffill 3
  1036.     Fill 166,81
  1037.     Pdot%=0
  1038.   Endif
  1039.   @Alert_sound
  1040.   Pause 15
  1041. Return
  1042. '
  1043. Procedure Alert_box2
  1044.   Deffill 11
  1045.   Pbox 65,50,254,149
  1046.   Color 1
  1047.   Box 65,50,254,149
  1048.   Box 66,51,253,148
  1049.   Box 68,53,251,146
  1050.   Deffill Numc%
  1051.   Pbox 69,54,250,145
  1052. Return
  1053. '
  1054. Procedure Alert_box3
  1055.   Ch%=0
  1056.   Ch1%=0
  1057.   Deffill 11
  1058.   Pbox 74,124,154,140
  1059.   Pbox 165,124,245,140
  1060.   Color 1
  1061.   Box 74,124,154,140
  1062.   Box 76,126,152,138
  1063.   Box 165,124,245,140
  1064.   Box 167,126,243,138
  1065.   Deftext 1,0,0,6
  1066.   Text 100,135,"Yes."
  1067.   Text 195,135,"No."
  1068. Return
  1069. '
  1070. Procedure Alert_box4
  1071.   Ch%=59
  1072.   Ch1%=29
  1073.   Deffill 11
  1074.   Pbox 103,185,183,199
  1075.   Pbox 194,185,274,199
  1076.   Color 1
  1077.   Box 103,185,183,199
  1078.   Box 105,187,181,197
  1079.   Box 194,185,274,199
  1080.   Box 196,187,272,197
  1081.   Deftext 1,0,0,6
  1082.   Text 114,195,"Replace."
  1083.   Text 209,195,"Remove."
  1084. Return
  1085. '
  1086. Procedure Alert_check
  1087.   Repeat
  1088.     Mouse Ab%,Ac%,Ad%
  1089.   Until Ad%>0 And Ac%>124+Ch% And Ac%<140+Ch% And ((Ab%>74+Ch1% And Ab%<154+Ch1%) Or (Ab%>165+Ch1% And Ab%<245+Ch1%))
  1090.   Deffill Numc%
  1091.   If Ch%=59
  1092.     Ch%=61
  1093.   Endif
  1094.   If Ab%>74+Ch1% And Ab%<154+Ch1%
  1095.     Fill 75+Ch1%,125+Ch%
  1096.   Else
  1097.     Fill 166+Ch1%,125+Ch%
  1098.   Endif
  1099.   @Alert_sound
  1100.   Pause 15
  1101.   @Let_go
  1102. Return
  1103. '
  1104. Procedure Alert_check2
  1105.   Repeat
  1106.     Mouse Ab%,Ac%,Ad%
  1107.   Until Ad%>0 And Ac%>183 And Ac%<199 And ((Ab%>103 And Ab%<183) Or (Ab%>194 And Ab%<274))
  1108.   Deffill 9
  1109.   If Ch%=59
  1110.     Ch%=61
  1111.   Endif
  1112.   If Ab%>103 And Ab%<183
  1113.     Fill 104,186
  1114.   Else
  1115.     Fill 195,186
  1116.   Endif
  1117.   @Alert_sound
  1118.   Pause 15
  1119.   @Let_go
  1120. Return
  1121. '
  1122. Procedure Title_alert
  1123.   Color 1
  1124.   Box 30,0,289,199
  1125.   Box 31,1,288,198
  1126.   Deffill 11
  1127.   Pbox 32,2,287,197
  1128. Return
  1129. '
  1130. Procedure Help_alert
  1131.   Deffill 11
  1132.   Pbox 61,1,318,198
  1133.   Color 1
  1134.   Box 61,1,318,198
  1135.   Deffill Numc%
  1136.   Pbox 63,3,316,196
  1137.   Box 63,3,316,196
  1138. Return
  1139. '
  1140. Procedure Help_alert2
  1141.   Deffill 11
  1142.   Pbox 100-K%,175,279-K%,191
  1143.   Color 1
  1144.   Box 61-K%,1,318-K%,198
  1145.   Box 100-K%,175,279-K%,191
  1146.   Box 102-K%,177,277-K%,189
  1147.   Deftext 1,0,0,6
  1148.   Text 117-K%,186,"     CONTINUE"
  1149. Return
  1150. '
  1151. Procedure Help_alert_check
  1152.   Repeat
  1153.     Mouse Ab%,Ac%,Ad%
  1154.   Until Ad%>0 And Ac%>175 And Ac%<191 And Ab%>100-K% And Ab%<279-K%
  1155.   Deffill Numc%
  1156.   Fill 101-K%,176
  1157.   @Alert_sound
  1158.   Pause 15
  1159.   @Let_go
  1160. Return
  1161. '
  1162. Procedure Help1
  1163.   Deftext 1,0,0,6
  1164.   Text 66,18,"Use this program to create puz-"
  1165.   Text 66,28,"zles for use with DOT2DOTS.PRG."
  1166.   Text 66,38,"Choose EDIT to create or change"
  1167.   Text 66,48,"a puzzle.  Each puzzle may have"
  1168.   Text 66,58,"up to 26 dots and 5O extra"
  1169.   Text 66,68,"lines.  When drawing, you can"
  1170.   Text 66,78,"delete your last drawing action"
  1171.   Text 66,88,"by clicking UNDO, but only if"
  1172.   Text 66,98,"you haven't made any further"
  1173.   Text 66,108,"selections.  Dots must be"
  1174.   Text 66,118,"placed several pixels apart."
  1175.   Text 66,138,"For further information, refer"
  1176.   Text 66,148,"to the issue of ST-Log in"
  1177.   Text 66,158,"which this program appeared."
  1178. Return
  1179. '
  1180. Procedure Print_dialog
  1181.   Deftext 1,0,0,6
  1182.   Text 66,68,"      Something is wrong!"
  1183.   Text 66,88,"      Is your printer on?"
  1184.   Text 69,108,"      Is it connected to"
  1185.   Text 69,118,"        your computer?"
  1186. Return
  1187. '
  1188. Procedure Save_dialog
  1189.   Deftext 1,0,0,6
  1190.   Text 63,68,"             Sorry!"
  1191.   Text 66,88,"      There is not enough"
  1192.   Text 69,98,"     room on this disk to"
  1193.   Text 66,108,"        save your work."
  1194. Return
  1195. '
  1196. Procedure No_way_jose
  1197.   Deftext 1,0,0,6
  1198.   Text 63,68,"              Hey!"
  1199.   Text 66,88,"      You've only got one"
  1200.   Text 66,98,"  puzzle dot in this picture!"
  1201.   Text 65,108,"I can't show or print the lines"
  1202.   Text 69,118,"      'between' one dot!"
  1203. Return
  1204. '
  1205. Procedure Load_dialog
  1206.   Deftext 1,0,0,6
  1207.   Text 68,68,"            Sorry!"
  1208.   Text 68,88,"   There is no DOT2DOTS.DAT"
  1209.   Text 68,98,"      file on this disk!"
  1210. Return
  1211. '
  1212. Procedure Connect_q
  1213.   @Alert_box2
  1214.   @Alert_box3
  1215.   Deftext 1,0,0,6
  1216.   Text 87,85,"  Do you want the"
  1217.   Text 84,95,"first and last dots"
  1218.   Text 84,105," to be connected?"
  1219.   @Alert_check
  1220.   @Let_go
  1221.   If Ab%>74 And Ab%<154
  1222.     Nding%=1
  1223.   Else
  1224.     Nding%=0
  1225.   Endif
  1226. Return
  1227. '
  1228. ' ******************************* SHOW ***********************************
  1229. Procedure Show_it
  1230.   @Alert_box1
  1231.   If Pdot%=0 And X%(2)<>0
  1232.     @Connect_q
  1233.   Endif
  1234.   If Pdot%=0 And X%(2)=0
  1235.     Hidem
  1236.     Numc%=3
  1237.     K%=0
  1238.     Pause 25
  1239.     @Buzz_sound
  1240.     @Help_alert
  1241.     @Help_alert2
  1242.     @No_way_jose
  1243.     Showm
  1244.     @Help_alert_check
  1245.     Hidem
  1246.     Goto No_show
  1247.   Endif
  1248.   Hidem
  1249.   Deffill 11
  1250.   Pbox 60,0,319,199
  1251.   Color 1
  1252.   Box 60,0,319,199
  1253.   Deftext 1,1,0,4
  1254.   Text 72,197,"    CLICK MOUSE BUTTON TO RESUME."
  1255.   If Pdot%=1
  1256.     ' show dots only
  1257.     @Restore_extra_lines
  1258.     @Restore_numbers
  1259.   Else
  1260.     ' show lines only
  1261.     @Clear_numbers
  1262.     @Restore_extra_lines
  1263.   Endif
  1264.   Repeat
  1265.   Until Mousek
  1266.   No_show:
  1267. Return
  1268. '
  1269. ' ******************************** PRINT ***********************************
  1270. Procedure Print_it
  1271.   @Alert_box1
  1272.   If Pdot%=0 And X%(2)<>0
  1273.     @Connect_q
  1274.   Endif
  1275.   If Pdot%=0 And X%(2)=0
  1276.     Numc%=3
  1277.     K%=0
  1278.     Pause 25
  1279.     @Buzz_sound
  1280.     @Help_alert
  1281.     @Help_alert2
  1282.     @No_way_jose
  1283.     Showm
  1284.     @Help_alert_check
  1285.     Hidem
  1286.     Goto No_prnt
  1287.   Endif
  1288.   If Out?(0)<>0
  1289.     @Black_screen
  1290.     Cls
  1291.     Deffill 11
  1292.     Pbox 60,0,319,199
  1293.     Color 1
  1294.     Box 60,0,319,199
  1295.     If Pdot%=1
  1296.       ' print dots only
  1297.       @Restore_extra_lines
  1298.       @Restore_numbers
  1299.       Get 60,0,319,199,P$
  1300.       Cls
  1301.       Put 30,0,P$
  1302.       Setcolor 0,7,7,7
  1303.       Setcolor 15,0,0,0
  1304.       Setcolor 10,7,7,7
  1305.       Hardcopy
  1306.     Else
  1307.       ' print lines only
  1308.       @Clear_numbers
  1309.       @Restore_extra_lines
  1310.       Get 60,0,319,199,P$
  1311.       Cls
  1312.       Put 30,0,P$
  1313.       Setcolor 0,7,7,7
  1314.       Setcolor 15,0,0,0
  1315.       Setcolor 10,7,7,7
  1316.       Hardcopy
  1317.     Endif
  1318.     @Black_screen
  1319.     Cls
  1320.   Else
  1321.     Numc%=3
  1322.     K%=0
  1323.     Pause 15
  1324.     @Buzz_sound
  1325.     @Help_alert
  1326.     @Help_alert2
  1327.     @Print_dialog
  1328.     Showm
  1329.     @Help_alert_check
  1330.   Endif
  1331.   @Set_color
  1332.   No_prnt:
  1333.   Sput Screen$
  1334.   Showm
  1335. Return
  1336. '
  1337. ' ******************************* SOUNDS *********************************
  1338. Procedure Select_sound
  1339.   Sound 1,15,6,3,2
  1340.   Sound 1,15,6,4,2
  1341.   Sound 1,15,8,4,6
  1342.   Sound 1,0,0,0,0
  1343. Return
  1344. '
  1345. Procedure Buzz_sound
  1346.   Sound 1,15,1,1,10
  1347.   Sound 1,0,0,0,0
  1348. Return
  1349. '
  1350. Procedure Other_sound
  1351.   Sound 1,15,6,4,2
  1352.   Sound 1,15,1,4,5
  1353.   Sound 1,0,0,0,0
  1354. Return
  1355. '
  1356. Procedure Finale_sound
  1357.   Hidem
  1358.   Pause 15
  1359.   Restore Finale_data
  1360.   Read N%
  1361.   For I%=1 To N%
  1362.     Read Nt%,Oct%,Dur%
  1363.     Sound 1,15,Nt%,Oct%,Dur%
  1364.     Sound 1,0,0,0,0
  1365.     Pause 5
  1366.   Next I%
  1367. Return
  1368. '
  1369. Procedure Erase_sound
  1370.   For Oct%=6 Downto 3
  1371.     For N%=12 Downto 1
  1372.       Sound 1,15,N%,Oct%,3
  1373.     Next N%
  1374.   Next Oct%
  1375.   Sound 1,0,0,0,0
  1376. Return
  1377. '
  1378. Procedure Dud_sound
  1379.   Sound 1,15,10,3,2
  1380.   Sound 1,15,1,3,8
  1381.   Sound 1,0,0,0,0
  1382. Return
  1383. '
  1384. Procedure Alert_sound
  1385.   Sound 1,15,10,3,2
  1386.   Sound 1,0,0,0,0
  1387. Return
  1388. '
  1389. ' ******************************* DATA ********************************
  1390. Finale_data:
  1391. Data 7
  1392. Data 6,4,16
  1393. Data 1,4,8
  1394. Data 1,4,8
  1395. Data 3,4,16
  1396. Data 1,4,32
  1397. Data 5,4,16
  1398. Data 6,4,64
  1399. '
  1400. Screen_data:
  1401. ' exit:
  1402. Data 0,14,2
  1403. ' help:
  1404. Data 19,33,4
  1405. ' print:
  1406. Data 38,52,3
  1407. ' edit:
  1408. Data 74,88,11
  1409. ' save:
  1410. Data 130,144,5
  1411. ' load:
  1412. Data 164,178,14
  1413. ' new:
  1414. Data 183,197,12
  1415. '
  1416. Screen2_data:
  1417. ' done:
  1418. Data 0,14,11
  1419. ' show:
  1420. Data 19,33,3
  1421. ' add dot:
  1422. Data 74,88,5
  1423. ' change:
  1424. Data 93,107,13
  1425. ' line:
  1426. Data 130,144,10
  1427. ' undo:
  1428. Data 183,197,6
  1429. '
  1430. Ms_data:
  1431. Data 0,896,640,640,640,640,640,65278,32770,65278,640,640,640,640,640,896
  1432. Data 0,0,256,256,256,256,256,256,32508,256,256,256,256,256,256,0
  1433. '
  1434.