home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / text_ed / speedwri / spwriter.lst < prev    next >
File List  |  1990-07-30  |  10KB  |  536 lines

  1. ' Speedwriter V1.0
  2. '
  3. ' Written by Frank Lemmen and Richard Karsmakers
  4. '
  5. '
  6. @Intro
  7. @Buffemp
  8. @Help
  9. @Buffemp
  10. @Main
  11. Procedure Intro
  12.   X%=0
  13.   Hidem
  14.   Repeat
  15.     Add X%,3
  16.     Color 1
  17.     Circle 320,200,X%
  18.     Color 0
  19.     Circle 320,200,X%-3
  20.   Until X%=99
  21.   Showm
  22.   Color 1
  23.   Deftext 1,1,0,13
  24.   Text 262,180,"SPEEDWRITER BY"
  25.   Text 270,195,"FRANK LEMMEN"
  26.   Text 310,210,"AND"
  27.   Text 250,225,"RICHARD KARSMAKERS"
  28.   Box 280,250,360,270
  29.   Text 295,265,"GREAT"
  30.   Graphmode 3
  31.   Repeat
  32.     For X%=1 To 50
  33.       Draw 295,175+X% To 295+X%,225 To 345,225-X% To 345-X%,175 To 295,175+X%
  34.       Pause 1
  35.       Draw 295,175+X% To 295+X%,225 To 345,225-X% To 345-X%,175 To 295,175+X%
  36.     Next X%
  37.   Until Inp?(2)<>0
  38.   A=Inp(2)
  39.   Graphmode 1
  40.   Color 0
  41.   Box 280,250,360,270
  42.   Color 1
  43.   X%=99
  44.   Hidem
  45.   Repeat
  46.     Sub X%,3
  47.     Color 1
  48.     Circle 320,200,X%
  49.     Color 0
  50.     Circle 320,200,X%+3
  51.   Until X%=0
  52.   Deftext 1,0,0,13
  53.   Color 1
  54.   Cls
  55. Return
  56. Procedure Main
  57.   Hidem
  58.   @Con
  59.   Cls
  60.   A$=""
  61.   Spoke 16745024,1
  62.   Print Chr$(27);"q";
  63.   Do
  64.     A=Inp(2)
  65.     B=A+1
  66.     If A=13 And Crslin=25
  67.       Print Chr$(13)
  68.       Print Chr$(27);"Y";Chr$(32+25);Chr$(32);
  69.       A=0
  70.       Goto Label2
  71.     Endif
  72.     If A=13
  73.       Print Chr$(A)
  74.       A=0
  75.     Endif
  76.     Label2:
  77.     If A=8 And Crscol=1 And Crslin=1
  78.       A=0
  79.       Goto Label100
  80.     Endif
  81.     If A=8 And Crscol=1
  82.       Buf=Crslin
  83.       Buf=Buf-2
  84.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  85.       Print " ";
  86.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  87.       A=0
  88.       Goto Label100
  89.     Endif
  90.     If A=8
  91.       Print Chr$(27);"D";
  92.       Print " ";
  93.       Print Chr$(27);"D";
  94.       A=0
  95.     Endif
  96.     Label100:
  97.     If A=226
  98.       @Buffcursor
  99.       @Help
  100.       @Setcursor
  101.       A=0
  102.       Goto Label10
  103.     Endif
  104.     If A=187
  105.       Cls
  106.       A=0
  107.     Endif
  108.     If A=188
  109.       Print Chr$(27);"l";
  110.       A=0
  111.     Endif
  112.     If A=189
  113.       Print Chr$(27);"L";
  114.       A=0
  115.     Endif
  116.     If A=190
  117.       Print Chr$(27);"p";
  118.       A=0
  119.     Endif
  120.     If A=191
  121.       Print Chr$(27);"q";
  122.       A=0
  123.     Endif
  124.     If A=205 And Crscol=80
  125.       Print Chr$(13)
  126.       A=0
  127.       Goto Label666
  128.     Endif
  129.     If A=205
  130.       Print Chr$(27);"C";
  131.       A=0
  132.     Endif
  133.     Label666:
  134.     If A=203 And Crscol=1 And Crslin=1
  135.       A=0
  136.       Goto Label109
  137.     Endif
  138.     If A=203 And Crscol=1
  139.       Buf=Crslin
  140.       Buf=Buf-2
  141.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  142.       A=0
  143.       Goto Label109
  144.     Endif
  145.     If A=195
  146.       @Buffcursor
  147.       @Stat
  148.       @Setcursor
  149.       A=0
  150.       Goto Label10
  151.     Endif
  152.     If A=203
  153.       Print Chr$(27);"D";
  154.       A=0
  155.     Endif
  156.     Label109:
  157.     If A=208 And Crslin=25
  158.       Buf=Crscol
  159.       Print
  160.       Print Chr$(13);
  161.       Print Chr$(27);"Y";Chr$(32+25);Chr$(31+Buf);
  162.       A=0
  163.     Endif
  164.     If A=208
  165.       Print Chr$(27);"B";
  166.       A=0
  167.     Endif
  168.     If A=200
  169.       Print Chr$(27);"A";
  170.       A=0
  171.     Endif
  172.     If A=192
  173.       If Peek(16745024)=248
  174.         Spoke (16745024),249
  175.       Else
  176.         Spoke (16745024),248
  177.       Endif
  178.       Pause 2
  179.       A=0
  180.     Endif
  181.     If A=225
  182.       @Buffcursor
  183.       @Uit
  184.       A=0
  185.       @Setcursor
  186.       Goto Label10
  187.     Endif
  188.     If A=194
  189.       @Buffcursor
  190.       @Disk
  191.       A=0
  192.       @Setcursor
  193.       Goto Label10
  194.     Endif
  195.     If A=193
  196.       @Go
  197.       A=0
  198.       Goto Label10
  199.     Endif
  200.     If A=196
  201.       @Buffcursor
  202.       @Nieuw
  203.       A=0
  204.       Goto Label10
  205.     Endif
  206.     Print Chr$(A);
  207.     A$=A$+Chr$(B)
  208.     Label10:
  209.   Loop
  210. Return
  211. Procedure Uit
  212.   @Coff
  213.   @Sg
  214.   Cls
  215.   Alert 1,"DO YOU REALY WANT TO QUIT",2,"YES|NO",Bes
  216.   If Bes=2
  217.     @Sp
  218.     @Con
  219.     Goto Label999
  220.   Endif
  221.   End
  222.   Label999:
  223. Return
  224. Procedure Help
  225.   Deftext 1,0,0,13
  226.   Deffill 1,1,1
  227.   X$=""
  228.   Defline 1,1
  229.   @Coff
  230.   @Sg
  231.   Showm
  232.   Cls
  233.   Box 150,50,480,340
  234.   Box 153,53,477,337
  235.   Defline 1,3,0,0
  236.   Box 270,310,370,330
  237.   Text 298,325,"Return"
  238.   Text 220,75,"F1    -    CLEAR ALL"
  239.   Text 220,90,"F2    -    DELETE LINE"
  240.   Text 220,105,"F3    -    INSERT LINE"
  241.   Text 220,120,"F4    -    REVERSE ON"
  242.   Text 220,135,"F5    -    REVERSE OFF"
  243.   Text 220,150,"F6    -    TOGGLE COLORS"
  244.   Text 220,165,"F7    -    RUN SESSION"
  245.   Text 220,180,"F8    -    DISK OPERATIONS"
  246.   Text 220,195,"F9    -    STATISTICS"
  247.   Text 220,210,"F10   -    KILL THIS SESSION"
  248.   Text 220,225,"HELP  -    GO BACK HERE"
  249.   Text 220,240,"UNDO  -    LEAVE PROGRAM"
  250.   Text 183,260,"CURSOR MOVEMENT CAN BE DONE WITH"
  251.   Text 260,275,"CURSOR KEYS"
  252.   Text 180,290,"PRESS RETURN OF KLICK WITH MOUSE TO"
  253.   Text 260,305,"EXIT THIS MENU"
  254.   Do
  255.     X$=Inkey$
  256.     If Mousex<370 And Mousex>270 And Mousey>310 And Mousey<330 And Mousek<>0 Or X$=Chr$(13)
  257.       Pbox 270,310,370,330
  258.       Goto E
  259.     Endif
  260.     If Mousek<>0
  261.       Print Chr$(7);
  262.     Endif
  263.   Loop
  264.   E:
  265.   @Sp
  266.   @Con
  267. Return
  268. Procedure Laden
  269.   Sget Screen3$
  270.   Cls
  271.   Defline 1,1,0,0
  272.   Deffill 1,2,1
  273.   Prbox 20,20,620,380
  274.   Deftext 1,9,0,32
  275.   Graphmode 2
  276.   Text 250,50,"LOAD"
  277.   Sget Screen2$
  278.   Labdoe:
  279.   Fileselect "\*.WRT","",A$
  280.   If A$=""
  281.     Goto Label4
  282.   Endif
  283.   If Exist(A$)=0
  284.     Goto Labdoe
  285.   Endif
  286.   Open "I",#1,A$
  287.   Size=Lof(#1)
  288.   A$=Input$(Size,#1)
  289.   Close #1
  290.   Sput Screen2$
  291.   Label4:
  292.   Sput Screen3$
  293.   Graphmode 1
  294. Return
  295. Procedure Go
  296.   @Coff
  297.   Cls
  298.   @Line
  299.   @Con
  300. Return
  301. Procedure Opslaan
  302.   Sget Screen3$
  303.   Cls
  304.   Deffill 1,2,1
  305.   Prbox 20,20,620,380
  306.   Graphmode 2
  307.   Deftext 1,9,0,32
  308.   Text 250,50,"SAVE"
  309.   Sget Screen2$
  310.   Fileselect "\*.WRT","",Ww$
  311.   If Ww$=""
  312.     Goto Label6
  313.   Endif
  314.   Open "O",#1,Ww$
  315.   Print #1,A$;
  316.   Close #1
  317.   Sput Screen2$
  318.   Label6:
  319.   Graphmode 1
  320.   Sput Screen3$
  321. Return
  322. Procedure Line
  323.   Print Chr$(27);"H";
  324.   Print Chr$(27);"q";
  325.   @Con
  326.   Le=Len(A$)
  327.   Bef=Peek(16745024)
  328.   Spoke 16745024,1
  329.   For X%=1 To Le
  330.     Ww=Asc(Mid$(A$,X%,1))-1
  331.     Sound 1,0,59,5,1
  332.     If Ww=8 And Crscol=1 And Crslin=1
  333.       Goto Label1
  334.     Endif
  335.     If Ww=8 And Crscol=1
  336.       Buf=Crslin
  337.       Buf=Buf-2
  338.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  339.       Print " ";
  340.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  341.       Goto Label1
  342.     Endif
  343.     If Ww=8
  344.       Print Chr$(27);"D";
  345.       Print " ";
  346.       Print Chr$(27);"D";
  347.       Goto Label1
  348.     Endif
  349.     Label200:
  350.     If Ww=200
  351.       Print Chr$(27);"A";
  352.       Goto Label1
  353.     Endif
  354.     If Ww=208 And Crslin=25
  355.       Buf=Crscol
  356.       Print
  357.       Print Chr$(13);
  358.       Print Chr$(27);"Y";Chr$(32+25);Chr$(31+Buf);
  359.       Goto Label1
  360.     Endif
  361.     If Ww=208
  362.       Print Chr$(27);"B";
  363.       Goto Label1
  364.     Endif
  365.     Label3:
  366.     If Ww=203 And Crscol=1 And Crslin=1
  367.       Goto Label1
  368.     Endif
  369.     If Ww=203 And Crscol=1
  370.       Buf=Crslin
  371.       Buf=Buf-2
  372.       Print Chr$(27);"Y";Chr$(32+Buf);Chr$(32+80);
  373.       Goto Label1
  374.     Endif
  375.     If Ww=203
  376.       Print Chr$(27);"D";
  377.       Goto Label1
  378.     Endif
  379.     If Ww=205 And Crscol=80
  380.       Print Chr$(13)
  381.       Goto Label1
  382.     Endif
  383.     If Ww=205
  384.       Print Chr$(27);"C";
  385.       Goto Label1
  386.     Endif
  387.     If Ww=13
  388.       Print Chr$(13)
  389.       Goto Label1
  390.     Endif
  391.     If Ww=187
  392.       Print Chr$(27);"E";
  393.       Goto Label1
  394.     Endif
  395.     If Ww=188
  396.       Print Chr$(27);"l";
  397.       Goto Label1
  398.     Endif
  399.     If Ww=189
  400.       Print Chr$(27);"L";
  401.       Goto Label1
  402.     Endif
  403.     If Ww=190
  404.       Print Chr$(27);"p";
  405.       Goto Label1
  406.     Endif
  407.     If Ww=192
  408.       If Peek(16745024)=248
  409.         Spoke (16745024),249
  410.       Else
  411.         Spoke (16745024),248
  412.       Endif
  413.       Pause 2
  414.       Goto Label1
  415.     Endif
  416.     If Ww=191
  417.       Print Chr$(27);"q";
  418.       Goto Label1
  419.     Endif
  420.     Print Chr$(Ww);
  421.     Label1:
  422.     Sound 1,15,Ww,5,1
  423.   Next X%
  424.   Sound 1,0,0,0,0
  425.   @Coff
  426.   Spoke (16745024),Bef
  427. Return
  428. Procedure Buffcursor
  429.   Bufx=Crscol
  430.   Bufy=Crslin
  431. Return
  432. Procedure Setcursor
  433.   Print Chr$(27);"Y";Chr$(31+Bufy);Chr$(31+Bufx);
  434. Return
  435. Procedure Nieuw
  436.   @Coff
  437.   @Sg
  438.   Cls
  439.   Alert 1,"DO YOU WANT TO KILL|   THIS SESSION",2,"YES|NO",I
  440.   If I=1
  441.     A$=""
  442.     Spoke 16745024,1
  443.     Print Chr$(27);"q";
  444.   Endif
  445.   If I=2
  446.     @Sp
  447.     @Setcursor
  448.   Endif
  449.   @Con
  450. Return
  451. Procedure Coff
  452.   Print Chr$(27);"f";
  453. Return
  454. Procedure Con
  455.   Print Chr$(27);"e";
  456. Return
  457. Procedure Sg
  458.   Sget Screen$
  459. Return
  460. Procedure Sp
  461.   Sput Screen$
  462. Return
  463. Procedure Disk
  464.   Fl=0
  465.   @Coff
  466.   If A$=""
  467.     Fl=1
  468.     Goto Label33
  469.   Endif
  470.   @Sg
  471.   Label33:
  472.   Deffill 1,2,11
  473.   Pbox 0,0,639,399
  474.   Deffill 1,0,0
  475.   Prbox 500,50,150,350
  476.   Deffill 1,2,2
  477.   Pbox 490,48,160,30
  478.   Deftext 1,1,0,13
  479.   Graphmode 2
  480.   Text 220,45,"-- DISK OPERATIONS MENU --"
  481.   Graphmode 1
  482.   Text 230,70,"F1    -    LOAD SESSION"
  483.   Text 230,95,"F2    -    SAVE SESSION"
  484.   Text 230,120,"F3    -    DELETE FILES"
  485.   Text 230,145,"F4    -    RETURN TO SPEEDWRITER"
  486.   Text 230,235,"CHOOSE ONE OF THESE OPTIONS"
  487.   Repeat
  488.     Di=Inp(2)
  489.     If Di=187
  490.       @Laden
  491.     Endif
  492.     If Di=188
  493.       @Opslaan
  494.     Endif
  495.     If Di=189
  496.       @Delete
  497.     Endif
  498.   Until Di=190
  499.   If Fl<>1
  500.     @Sp
  501.   Else
  502.     Cls
  503.   Endif
  504.   @Con
  505. Return
  506. Procedure Delete
  507.   Sget Screen3$
  508.   Cls
  509.   Fileselect "*.*","",Del$
  510.   If Del$=""
  511.     Goto Labely
  512.   Endif
  513.   Kill Del$
  514.   Labely:
  515.   Sput Screen3$
  516. Return
  517. Procedure Buffemp
  518.   While Inp?(2)
  519.     A=Inp(2)
  520.   Wend
  521. Return
  522. Procedure Stat
  523.   @Coff
  524.   @Sg
  525.   Bb=Len(A$)
  526.   Bc=Dfree(0)
  527.   Prc=(Bb/32767)*100
  528.   Cls
  529.   Print "Text Size       : ";Bb;"             Max: 32767"
  530.   Print "Used            : ";Prc;"%"
  531.   Print "Disk Free Space : ";Bc
  532.   A=Inp(2)
  533.   @Sp
  534.   @Con
  535. Return
  536.