home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 476-500 / apd497 / source / source.ascii.pp / source.ascii
Text File  |  1993-02-15  |  79KB  |  2,875 lines

  1. * This is the source code for Disc Register V1.20. It is useless to run,
  2. * as it need several pictures and icons in different banks. The main
  3. * purpose, is for you to se how i code my programs.
  4. * As you may have noticed, I have a bad habit of not using any
  5. * comments in my sources. This makes it awfully difficult to change
  6. * anyting. That was how I coded before, but now, in my new tools,
  7. * there are more comments than code, just wait and you'll se..
  8.  
  9. * Well, now it is up to you to get confused! Yours sincerly Pål Løberg.
  10.  
  11.  
  12. Set Buffer 180
  13. Break Off 
  14. On Error Proc MAINERROR
  15. Request Wb 
  16. Set Dir 99,""
  17. SETUP
  18. Show On 
  19. View 
  20. MANT=1000
  21. Dim X1(18),Y1(18),X2(18),Y2(18),POST$(1000)
  22. Dim TEM$(5),PRT_DEF(6),LIN$(10),INFO$(3),MAGGE$(11)
  23. Global MANT,POST$(),LIN$(),TEM$(),POSTER,POSTEN,MERRA
  24. Global FILE_NAME$,RYDDE_EMNE,PRT_DEF(),PRT_LIN,FERPU
  25. Global ERR_FLAG,LAGRET,BRK_FLAG,MESS_ON,LOMEM
  26. Global SAV_FLAG,DEV$,VICON,INFO$(),MIMAGE,¥$,MAGGE$()
  27. ¥$=Chr$(255)
  28. MANT=1000
  29. DEV$=Left$(Dir$,Instr(Dir$,":"))
  30. VICON=1
  31. PRT_LIN=0
  32.  
  33.  
  34. RYDDE_EMNE=1
  35. FILE_NAME$="Untitled...."
  36. POSTEN=0
  37. POSTER=-1
  38. LAGRET=True
  39. VIS_DET
  40. For I=0 To MANT
  41.    POST$(I)=String$(¥$,11)
  42. Next 
  43. For I=1 To 6
  44.    If I=1 or I=3 or I=5
  45.       PRT_DEF(I)=1
  46.    Else 
  47.       PRT_DEF(I)=2
  48.    End If 
  49. Next 
  50. INFO$(1)="Monday 1-1-1999"
  51. INFO$(2)="Enter something."
  52. INFO$(3)=""
  53. DAT2:
  54. Data 454,106,522,125,526,106,594,125
  55. Data 454,127,522,146,526,127,594,146,454,148,522,167,526,148,594,167
  56. Data 454,169,522,188,526,169,594,188,454,190,522,209,526,190,594,209
  57. Data 454,211,522,230,526,211,594,230,454,106,522,125,454,127,522,146
  58. Data 454,148,522,167,454,169,594,188,454,190,594,209,454,211,594,230
  59. Restore DAT2
  60. For I=1 To 18
  61.    Read X1(I),Y1(I),X2(I),Y2(I)
  62. Next 
  63. Reserve Zone 1
  64. '
  65. MENU_ONE:
  66. Change Mouse 4
  67. VIS_DET
  68. Put Cblock 2
  69. Reset Zone 
  70. Reserve Zone 12
  71. For I=1 To 12
  72.    Set Zone I,X1(I)+1,Y1(I)+1 To X2(I)-1,Y2(I)-1
  73. Next 
  74. Do 
  75.    FYFY:
  76.    VIS_DET
  77.    If SAV_FLAG=True
  78.       DASK[2]
  79.       SAV_FLAG=False
  80.    End If 
  81.    Repeat 
  82.       Z=Mouse Zone
  83.       If Peek($BFEC01)=65
  84.          INFO
  85.       End If 
  86.    Until Mouse Key>0 and Z>0
  87.    ARNOLD=Mouse Key
  88.    If ARNOLD=2
  89.       If Z>=7 and Z<>11
  90.          Goto FYFY
  91.       End If 
  92.    End If 
  93.    Ink 2,6
  94.    Box X1(Z),Y1(Z) To X2(Z),Y2(Z)
  95.    Repeat 
  96.       ZZ=Mouse Zone
  97.    Until Mouse Key=0
  98.    Ink 6
  99.    Box X1(Z),Y1(Z) To X2(Z),Y2(Z)
  100.    If ZZ=Z Then Exit 
  101. Loop 
  102. MOSJOEN:
  103. If POSTER<0 and Z=5 and ARNOLD=2
  104.    MESSAGE[String$("*",34),"THERE ARE NO ITEMS TO WORK WITH.","RECORD SOME FIRST.",String$("*",34),50*5]
  105.    Goto MENU_ONE
  106. End If 
  107. If Z>0
  108.    If Z<>9 and Z<>12 and Z<>5 and Z<>11 or(Z=11 and ARNOLD=2)
  109.       If POSTER<0
  110.          MESSAGE[String$("*",34),"THERE ARE NO ITEMS TO WORK WITH.","RECORD SOME FIRST.",String$("*",34),50*5]
  111.          Goto MENU_ONE
  112.       End If 
  113.    End If 
  114. End If 
  115. If Z=1 and ARNOLD=1
  116.    Dec POSTEN
  117.    If POSTEN<0
  118.       POSTEN=0
  119.    End If 
  120.    VIS_DET : VIS_DEM
  121. End If 
  122. If Z=1 and ARNOLD=2
  123.    VINDUINN["JUMP HOW MANY ITEMS BACKWARDS?",342,127,438,282,X Mouse,Y Mouse,5,True,""]
  124.    P$=Param$-" "
  125.    _VAL[P$]
  126.    HOPP=Param
  127.    If HOPP>0
  128.       Add POSTEN,-HOPP
  129.       If POSTEN<0
  130.          POSTEN=0
  131.       End If 
  132.       VIS_DET : VIS_DEM
  133.    End If 
  134. End If 
  135. If Z=2 and ARNOLD=2
  136.    VINDUINN["JUMP HOW MANY ITEMS FORWARDS?",342,127,438,282,X Mouse,Y Mouse,5,True,""]
  137.    P$=Param$-" "
  138.    _VAL[P$]
  139.    HOPP=Param
  140.    If HOPP>0
  141.       Add POSTEN,HOPP
  142.       If POSTEN>POSTER
  143.          POSTEN=POSTER
  144.          If POSTEN<0
  145.             POSTEN=0
  146.          End If 
  147.       End If 
  148.       VIS_DET : VIS_DEM
  149.    End If 
  150. End If 
  151. If Z=2 and ARNOLD=1
  152.    Inc POSTEN
  153.    If POSTEN>POSTER
  154.       POSTEN=POSTER
  155.       If POSTEN<0
  156.          POSTEN=0
  157.       End If 
  158.    End If 
  159.    VIS_DET : VIS_DEM
  160. End If 
  161. If(Z=3 or Z=4) and ARNOLD=2
  162.    VINDUINN["JUMP TO ITEM NUMBER #",342,127,438,282,X Mouse,Y Mouse,5,True,""]
  163.    P$=Param$-" "
  164.    _VAL[P$]
  165.    HOPP=Param
  166.    If HOPP>=0
  167.       POSTEN=HOPP
  168.       If POSTEN<0
  169.          POSTEN=0
  170.       End If 
  171.       If POSTEN>POSTER
  172.          POSTEN=POSTER
  173.          If POSTEN<0
  174.             POSTEN=0
  175.          End If 
  176.       End If 
  177.       VIS_DET : VIS_DEM
  178.    End If 
  179. End If 
  180. If Z=3 and ARNOLD=1 Then POSTEN=0 : VIS_DET : VIS_DEM
  181. If Z=4 and ARNOLD=1
  182.    POSTEN=POSTER
  183.    If POSTEN<0 : POSTEN=0 : End If 
  184.    VIS_DET : VIS_DEM
  185. End If 
  186. If Z=5 and ARNOLD=1
  187.    SJEKK_MINNE
  188.    If SAV_FLAG=False
  189.       If POSTER<MANT
  190.          Inc POSTER
  191.          POSTEN=POSTER
  192.          LAGRET=False
  193.          VIS_DET
  194.          Hide On 
  195.          SPRE_DEM[POSTEN]
  196.          RENS_OPP
  197.          VIS_LITEN_TEKST["* * * ENTER THE NEW ITEM, PLEASE * * *"]
  198.          INN[TEM$(1),40,9,1,0,0] : TEM$(1)=Param$
  199.          INN[TEM$(2),40,9,3,0,-1] : TEM$(2)=Param$
  200.          INN[TEM$(3),5,20,6,-1,0] : TEM$(3)=Param$
  201.          INN[TEM$(4),5,20,8,0,-1] : TEM$(4)=Param$
  202.          _FIXIT
  203.          If TEM$(3)<>"1"
  204.             INN[TEM$(5),5,32,8,0,-1] : TEM$(5)=Param$
  205.          Else 
  206.             TEM$(5)=TEM$(4)
  207.             Print At(32,8);TEM$(5)
  208.          End If 
  209.          VIS_LITEN_TEKST["                                      "]
  210.          Show On 
  211.          MANGE_INN
  212.          P$=Param$
  213.          SAMLE_DEM[POSTEN]
  214.          VIS_LITEN_TEKST["* SORTING *"]
  215.          Change Mouse 5
  216.          Sort POST$(0)
  217.          Change Mouse 4
  218.          VIS_DET
  219.          VIS_LITEN_TEKST["           "]
  220.          Z=Asc(Left$(P$,1))
  221.          ARNOLD=Asc(Right$(P$,1))
  222.          If ARNOLD=2
  223.             If Z>=7 and Z<>11
  224.                ARNOLD=0
  225.             End If 
  226.          End If 
  227.          If Z>0 and ARNOLD>0 : Goto MOSJOEN : End If 
  228.       Else 
  229.          MESSAGE[String$("*",34),"THERE ARE NO ROOM FOR NEW ITEMS","SAVE THEM AND START A NEW FILE.",String$("*",34),50*5]
  230.          Goto MENU_ONE
  231.       End If 
  232.    End If 
  233. End If 
  234. If Z=5 and ARNOLD=2
  235.    SJEKK_MINNE
  236.    If SAV_FLAG=False
  237.       If POSTER<MANT
  238.          OFDANDE=POSTEN
  239.          Inc POSTER
  240.          LAGRET=False
  241.          POSTEN=POSTER
  242.          POST$(POSTEN)=POST$(OFDANDE)
  243.          VIS_DET
  244.          Hide On 
  245.          SPRE_DEM[POSTEN]
  246.          VIS_DET : VIS_DEM
  247.          VIS_LITEN_TEKST[" * THE COPY MAY BE CHANGED NOW *  "]
  248.          INN[TEM$(1),40,9,1,0,0] : TEM$(1)=Param$
  249.          INN[TEM$(2),40,9,3,0,-1] : TEM$(2)=Param$
  250.          INN[TEM$(3),5,20,6,-1,0] : TEM$(3)=Param$
  251.          INN[TEM$(4),5,20,8,0,-1] : TEM$(4)=Param$
  252.          _FIXIT
  253.          If TEM$(3)<>"1"
  254.             INN[TEM$(5),5,32,8,0,-1] : TEM$(5)=Param$
  255.          Else 
  256.             TEM$(5)=TEM$(4)
  257.             Print At(32,8);TEM$(5)
  258.          End If 
  259.          VIS_LITEN_TEKST["                                  "]
  260.          Show On 
  261.          MANGE_INN
  262.          P$=Param$
  263.          SAMLE_DEM[POSTEN]
  264.          VIS_LITEN_TEKST["* SORTING *"]
  265.          Change Mouse 5
  266.          Sort POST$(0)
  267.          Change Mouse 4
  268.          VIS_LITEN_TEKST["           "]
  269.          VIS_DET
  270.          Z=Asc(Left$(P$,1))
  271.          ARNOLD=Asc(Right$(P$,1))
  272.          If ARNOLD=2
  273.             If Z>=7 and Z<>11
  274.                ARNOLD=0
  275.             End If 
  276.          End If 
  277.          If Z>0 and ARNOLD>0 : Goto MOSJOEN : End If 
  278.       Else 
  279.          MESSAGE[String$("*",34),"THERE ARE NO ROOM FOR NEW ITEMS","SAVE THEM AND START A NEW FILE.",String$("*",34),50*5]
  280.          Goto MENU_ONE
  281.       End If 
  282.    End If 
  283. End If 
  284. If Z=6 and ARNOLD=1
  285.    CPOST=POSTEN
  286.    VINDUINN["PLEASE ENTER THE ITEM TO SEARCH FOR.",342,127,438,282,X Mouse,Y Mouse,38,False,""]
  287.    VANGELIS$=Param$
  288.    If VANGELIS$<>""
  289.       VIS_LITEN_TEKST["* HUNTING *"]
  290.       Change Mouse 5
  291.       Sort POST$(0)
  292.       Change Mouse 4
  293.       _HUNT[VANGELIS$]
  294.       P=Param
  295.       VIS_LITEN_TEKST["           "]
  296.       If P>=0
  297.          POSTEN=P
  298.          If POSTEN<0
  299.             POSTEN=0
  300.          End If 
  301.          VIS_DET : VIS_DEM
  302.       Else 
  303.          P=P+$FFFF
  304.          POSTEN=-P-1
  305.          If POSTEN<0
  306.             POSTEN=0
  307.          End If 
  308.          VIS_DET : VIS_DEM
  309.          MESSAGE["","THIS PATTERN DOES NOT MATCH ANY","OF THE ITEMS IN YOUR FILE.","THIS IS THE CLOSEST I FOUND.",50*5]
  310.       End If 
  311.    End If 
  312. End If 
  313. If Z=6 and ARNOLD=2
  314.    SJEKK_MINNE
  315.    If SAV_FLAG=False
  316.       REQUEST3[342,127,438,282,X Mouse,Y Mouse,1]
  317.       HUBBARD=Param
  318.       If HUBBARD>0 and HUBBARD<4
  319.          GAM_EM_RYDD=RYDDE_EMNE
  320.          RYDDE_EMNE=HUBBARD
  321.          VIS_LITEN_TEKST["* CLEANING UP THE MESS *"]
  322.          CLEANUP[GAM_EM_RYDD]
  323.          Change Mouse 5
  324.          Sort POST$(0)
  325.          Change Mouse 4
  326.          VIS_LITEN_TEKST["                        "]
  327.          LAGRET=False
  328.          VIS_DET
  329.       End If 
  330.    End If 
  331. End If 
  332. If Z=7 and(POST$(POSTEN)<>String$(¥$,11)) and ARNOLD=1
  333.    Hide On 
  334.    SPRE_DEM[POSTEN]
  335.    VIS_DET : VIS_DEM
  336.    VIS_LITEN_TEKST["  * * CHANGE THE ITEM, PLEASE * *  "]
  337.    INN[TEM$(1),40,9,1,0,0] : TEM$(1)=Param$
  338.    INN[TEM$(2),40,9,3,0,-1] : TEM$(2)=Param$
  339.    INN[TEM$(3),5,20,6,-1,0] : TEM$(3)=Param$
  340.    INN[TEM$(4),5,20,8,0,-1] : TEM$(4)=Param$
  341.    _FIXIT
  342.    If TEM$(3)<>"1"
  343.       INN[TEM$(5),5,32,8,0,-1] : TEM$(5)=Param$
  344.    Else 
  345.       TEM$(5)=TEM$(4)
  346.       Print At(32,8);TEM$(5)
  347.    End If 
  348.    LAGRET=False
  349.    VIS_DET
  350.    VIS_LITEN_TEKST["                                   "]
  351.    Show On 
  352.    MANGE_INN
  353.    P$=Param$
  354.    SAMLE_DEM[POSTEN]
  355.    VIS_LITEN_TEKST["* SORTING *"]
  356.    Change Mouse 5
  357.    Sort POST$(0)
  358.    Change Mouse 4
  359.    VIS_LITEN_TEKST["           "]
  360.    Z=Asc(Left$(P$,1))
  361.    ARNOLD=Asc(Right$(P$,1))
  362.    If ARNOLD=2
  363.       If Z>=7 and Z<>11
  364.          ARNOLD=0
  365.       End If 
  366.    End If 
  367.    If Z>0 and ARNOLD>0 : Goto MOSJOEN : End If 
  368. End If 
  369. If Z=8 and ARNOLD=1
  370.    REQUEST3[342,127,438,282,X Mouse,Y Mouse,3]
  371.    JMJARRE=Param
  372.    If JMJARRE=1
  373.       POST$(POSTEN)=String$(¥$,11)
  374.       LAGRET=False
  375.       VIS_LITEN_TEKST["* SORTING *"]
  376.       Change Mouse 5
  377.       Sort POST$(0)
  378.       Change Mouse 4
  379.       VIS_LITEN_TEKST["           "]
  380.       Dec POSTER
  381.       If POSTER<-1
  382.          POSTER=-1
  383.       End If 
  384.       If POSTEN>POSTER
  385.          POSTEN=0
  386.       End If 
  387.       VIS_DET : VIS_DEM
  388.    End If 
  389.    If JMJARRE=2
  390.       REQUEST["ARE YOU SURE YOU","WANT TO DELETE ALL THE ITEMS?","",342,127,438,282,2,False,X Mouse,Y Mouse]
  391.       If Param=True
  392.          SJEKK
  393.          If Param=True
  394.             Change Mouse 5
  395.             VIS_LITEN_TEKST["* KILLING YOUR ITEMS *"]
  396.             RYDDE_EMNE=1
  397.             For I=0 To 5
  398.                TEM$(I)=""
  399.             Next 
  400.             For I=0 To 6
  401.                LIN$(I)=""
  402.             Next 
  403.             FILE_NAME$="Unnamed...."
  404.             POSTEN=0
  405.             POSTER=-1
  406.             VIS_DET
  407.             LAGRET=True
  408.             For I=0 To MANT
  409.                POST$(I)=String$(¥$,11)
  410.             Next 
  411.             VIS_DET : VIS_DEM
  412.             VIS_LITEN_TEKST["                      "]
  413.             Change Mouse 4
  414.          End If 
  415.       End If 
  416.    End If 
  417. End If 
  418. If Z=9 and ARNOLD=1
  419.    SJEKK
  420.    If Param=False
  421.       Goto MENU_ONE
  422.    End If 
  423. End If 
  424. If ARNOLD=1
  425.    If Z=10 or Z=9
  426.       DASK[Z-8]
  427.       VIS_DET : VIS_DEM
  428.    End If 
  429.    If Z=12
  430.       Goto QUIT
  431.    End If 
  432.    If Z=11
  433.       Gosub OTHER_MENU
  434.    End If 
  435. End If 
  436. If ARNOLD=2 and Z=11
  437.    VIS_DET
  438.    ROSENBIFF
  439. End If 
  440. Goto MENU_ONE
  441. '
  442. QUIT:
  443. VIS_DET
  444. ABBABA$=""
  445. ABBAB$=Pen$(1)+"-"+Pen$(2)+"-"
  446. For I=1 To 13 : ABBABA$=ABBABA$+ABBAB$ : Next 
  447. ABBABA$=ABBABA$+Pen$(1)+"-"+Pen$(0)
  448. REQUEST[ABBABA$,Pen$(3)+"DO YOU REALLY WANT TO QUIT?"+Pen$(0),ABBABA$,342,127,438,282,2,False,X Mouse,Y Mouse]
  449. If Param=False Then Goto MENU_ONE
  450. SJEKK
  451. If Param=False Then Goto MENU_ONE
  452. Del Block : Del Cblock : Erase 15
  453. GREETS
  454. Timer=0 : Repeat : MK=Mouse Key : I$=Inkey$ : Until MK<>0 or(I$=" ") or Timer=50*10
  455. Wait 20 : Fade 2 : Wait 45 : Screen Close 0
  456. If(I$="") and MK=0 Then _COPYRIGHT[50]
  457. A=Intcall(-210)
  458. End 
  459. '
  460. OTHER_MENU:
  461. Reset Zone : Reserve Zone 6
  462. For I=13 To 18
  463.    Set Zone I-12,X1(I)+1,Y1(I)+1 To X2(I)-1,Y2(I)-1
  464. Next 
  465. Put Cblock 1
  466. For I=1 To 6 : YN[I,PRT_DEF(I)] : Next 
  467. Do 
  468.    VIS_DET
  469.    Repeat 
  470.       Z=Mouse Zone
  471.       If Mouse Key=2 Then Goto BABG
  472.    Until Mouse Key=1 and Z>0
  473.    Ink 2
  474.    Box X1(Z+12),Y1(Z+12) To X2(Z+12),Y2(Z+12)
  475.    Repeat 
  476.       ZZ=Mouse Zone
  477.    Until Mouse Key=0
  478.    Ink 6
  479.    Box X1(Z+12),Y1(Z+12) To X2(Z+12),Y2(Z+12)
  480.    BABG:
  481.    If Mouse Key=2 Then Repeat : Until Mouse Key=0 : Return 
  482.    If ZZ=Z and Z>3 Then Exit 
  483.    If ZZ=Z
  484.       If Z>=1 and Z<=3
  485.          MAMAMA=Z*2-2
  486.          Swap PRT_DEF(1+MAMAMA),PRT_DEF(2+MAMAMA)
  487.       End If 
  488.       For I=1 To 6
  489.          YN[I,PRT_DEF(I)]
  490.       Next 
  491.    End If 
  492. Loop 
  493. If Z>0
  494.    If POSTER<0
  495.       MESSAGE[String$("*",34),"THERE ARE NO ITEMS TO PRINT.","RECORD SOME FIRST.",String$("*",34),50*5]
  496.       Goto PRTF
  497.    End If 
  498. End If 
  499. On Error Proc FEILHANDLE
  500. Resume Label PRTF
  501. BRK_FLAG=False
  502. ERR_FLAG=False
  503. If Z=4 or Z=5 or Z=6
  504.    On Error Proc FEILHANDLE
  505.    Resume Label PRTF
  506.    FERPU=1
  507.    Open Out 1,"Prt:"
  508.    Request Off 
  509.    FERPU=2
  510.    P=1
  511.    If Z<>6
  512.       X Mouse=220 : Y Mouse=130
  513.       Limit Mouse 198,124 To 379,173
  514.       MESSAGE2[Pen$(1)+"**** P R I N T I N G ****"+Pen$(0),"","PRESS RIGHT MOUSE BUTTON","IF YOU WANT TO STOP THE PRINTING...",True]
  515.    End If 
  516. End If 
  517. If Z=4
  518.    FYTTIGRISEN[POSTEN,True]
  519.    If BRK_FLAG=True : Goto PRTA : End If 
  520.    If ERR_FLAG=True : Goto PRTF : End If 
  521. End If 
  522. If Z=5
  523.    For I=0 To POSTER
  524.       FYTTIGRISEN[I,False]
  525.       If BRK_FLAG=True
  526.          Goto PRTA
  527.       End If 
  528.       If ERR_FLAG=True
  529.          Goto PRTF
  530.       End If 
  531.    Next 
  532. End If 
  533. If Z=6
  534.    REQUEST3[342,127,438,282,X Mouse,Y Mouse,2]
  535.    ANNA=Param
  536.    If ANNA<>2
  537.       X Mouse=220 : Y Mouse=130
  538.       Limit Mouse 198,124 To 379,173
  539.       MESSAGE2[Pen$(1)+"**** P R I N T I N G ****"+Pen$(0),"","PRESS RIGHT MOUSE BUTTON","IF YOU WANT TO STOP THE PRINTING...",True]
  540.    End If 
  541.    If ANNA>0
  542.       If ANNA=1
  543.          VINDUINN["PRINT ALL ITEMS FROM NUMBER:",198,124,379,173,X Mouse,Y Mouse,5,True,""]
  544.          I$=Param$
  545.          If I$-" "=""
  546.             Goto PRTA
  547.          End If 
  548.          _VAL[I$]
  549.          X1X=Param
  550.          VINDUINN["PRINT ALL ITEMS TO NUMBER:",198,124,379,173,X Mouse,Y Mouse,5,True,""]
  551.          I$=Param$
  552.          If I$-" "=""
  553.             Goto PRTA
  554.          End If 
  555.          _VAL[I$]
  556.          X2X=Param
  557.          If Min(X1X,X2X)<0 or Max(X1X,X2X)>POSTER
  558.             MESSAGE["",Pen$(2)+"*** OUT OF RANGE ***"+Pen$(0),"ONE OF THE ITEMS YOU SPECIFIED","DO NOT EXIST !!",50*5]
  559.             Goto PRTA
  560.          End If 
  561.          For I=Min(X1X,X2X) To Max(X1X,X2X)
  562.             FYTTIGRISEN[I,True]
  563.             If BRK_FLAG=True
  564.                Goto PRTA
  565.             End If 
  566.             If ERR_FLAG=True
  567.                Goto PRTF
  568.             End If 
  569.          Next 
  570.       End If 
  571.       If ANNA=3
  572.          VINDUINN["PRINT ALL WITH FIRST DISK Nº FROM:",198,124,379,173,X Mouse,Y Mouse,5,False,""]
  573.          I1$=Param$
  574.          If I1$-" "=""
  575.             Goto PRTA
  576.          End If 
  577.          VINDUINN["PRINT ALL WITH FIRST DISK Nº UP TO:",198,124,379,173,X Mouse,Y Mouse,5,False,""]
  578.          I2$=Param$
  579.          If I2$-" "=""
  580.             Goto PRTA
  581.          End If 
  582.          For I=0 To POSTER
  583.             SPRE_DEM[I]
  584.             If Upper$(TEM$(4))>=Upper$(I1$) and(Upper$(TEM$(4))=<Upper$(I2$))
  585.                FYTTIGRISEN[I,True]
  586.                If BRK_FLAG=True
  587.                   Goto PRTA
  588.                End If 
  589.                If ERR_FLAG=True
  590.                   Goto PRTF
  591.                End If 
  592.             End If 
  593.          Next 
  594.       End If 
  595.       If ANNA=2
  596.          VIS_DET : Hide On : RENS_OPP
  597.          VIS_LITEN_TEKST["* * ENTER THE SEARCH/PRINT PATTERN * *"]
  598.          INN["",40,9,1,0,-1] : TEM1$=Param$
  599.          INN["",40,9,3,0,-1] : TEM2$=Param$
  600.          INN["",5,20,6,-1,-1] : TEM3$=Param$
  601.          INN["",5,20,8,0,-1] : TEM4$=Param$
  602.          _FIXIT
  603.          If TEM3$<>"1"
  604.             INN["",5,32,8,0,-1] : TEM5$=Param$
  605.          Else 
  606.             TEM5$=TEM4$
  607.             Print At(32,8);TEM5$
  608.          End If 
  609.          VIS_LITEN_TEKST["                                      "]
  610.          Show On 
  611.          VIS_DEM : VIS_DET
  612.          X Mouse=220 : Y Mouse=130
  613.          Limit Mouse 198,124 To 379,173
  614.          MESSAGE2[Pen$(1)+"**** P R I N T I N G ****"+Pen$(0),"","PRESS RIGHT MOUSE BUTTON","IF YOU WANT TO STOP THE PRINTING...",True]
  615.          For I=0 To POSTER
  616.             KJ2=0
  617.             SPRE_DEM[I]
  618.             SAMLIKN[TEM1$,1] : Add KJ2,Param
  619.             SAMLIKN[TEM2$,2] : Add KJ2,Param
  620.             SAMLIKN[TEM3$,3] : Add KJ2,Param
  621.             SAMLIKN[TEM4$,4] : Add KJ2,Param
  622.             SAMLIKN[TEM5$,5] : Add KJ2,Param
  623.             If KJ2=5
  624.                FYTTIGRISEN[I,True]
  625.                If BRK_FLAG=True : Goto PRTA : End If 
  626.                If ERR_FLAG=True : Goto PRTF : End If 
  627.             End If 
  628.          Next 
  629.       End If 
  630.    End If 
  631. End If 
  632. PRTA:
  633. Wait 25
  634. MESSAGE2["","","","",False]
  635. If BRK_FLAG=True
  636.    MESSAGE["","**** PRINT ABORTED BY USER ****",String$("-",31),"",50*5]
  637. End If 
  638. Close 1
  639. '
  640. PRTF:
  641. If ERR_FLAG=True
  642.    MESSAGE[Pen$(2),String$("=",22),"CAN'T PRINT ANYTHING",String$("=",22)+Pen$(0),-1]
  643.    ERR_FLAG=False
  644. End If 
  645. FERPU=0
  646. Request Wb 
  647. On Error Proc MAINERROR
  648. X Mouse=400 : Y Mouse=130
  649. Limit Mouse 342,127 To 438,282
  650. Return 
  651. '
  652. Procedure YN[NR,S]
  653.    On Error Proc MAINERROR
  654.    If NR=1 Then Paste Icon 526,106,S
  655.    If NR=3 Then Paste Icon 526,127,S
  656.    If NR=5 Then Paste Icon 526,148,S
  657.    If NR=2 Then Paste Icon 526,116,S
  658.    If NR=4 Then Paste Icon 526,137,S
  659.    If NR=6 Then Paste Icon 526,158,S
  660. End Proc
  661. Procedure BOKS_OPP[X1,Y1,X2,Y2,TYX,TYY,OPP]
  662.    On Error Proc MAINERROR
  663.    I1=5 : I2=7 : If OPP<>1 Then Swap I1,I2
  664.    Ink 6 : Bar X1,Y1 To X2,Y2 : Ink I1
  665.    If TYY>1 Then Bar X1,Y1 To X2,Y1+TYY : Else Box X1,Y1 To X2,Y1+TYY
  666.    If TYX>1 Then Bar X1,Y1 To X1+TYX,Y2 : Else Box X1,Y1 To X1+TYX,Y2
  667.    Ink I2
  668.    If TYX>1 Then Bar X2,Y1 To X2+TYX,Y2 : Else Box X2,Y1 To X2+TYX,Y2
  669.    If TYY>1 Then Bar X1,Y2 To X2+TYX,Y2+TYY : Else Box X1,Y2 To X2+TYX,Y2+TYY
  670. End Proc
  671. Procedure GREETS
  672.    On Error Proc MAINERROR : Hide On : View 
  673.    BOKS_OPP[140,20,500,210,2,1,1] : Paste Icon 225,22,5 : Restore DAT1
  674.    DAT1:
  675.    Data "DISK REGISTER V1.20",1,"~~~~~~~~~~~~~~~~~~~",1
  676.    Data "Released: July 18, 1993",2,"Copyright Pål Løberg 1992/93.",2,"All rights reserved.",2
  677.    Data "",0,"Coding and Graphics:",1
  678.    Data "­­­­­­­­­­­­­­­­­­­­",1,"Pål Løberg",2
  679.    Data "",,"For more information about this little",0
  680.    Data "program, read the document about it",0,"on the disk. If you spread the program,",0
  681.    Data "the document must be copied with it.",0
  682.    For I=1 To 14 : Read A$,J : Ink J,6,6 : Text 320-(Len(A$)*4),89+(8*I),A$ : Next 
  683. End Proc
  684. Procedure DASK[SA_LO]
  685.    On Error Goto DIS_ERR
  686.    BALLEBUFFX=X Mouse : BALLEBUFFY=Y Mouse
  687.    DISK : FILNAVNET$=Param$
  688.    '  
  689.    If FILNAVNET$<>""
  690.       If SA_LO=1
  691.          If Not Exist(FILNAVNET$)
  692.             MESSAGE["","FILE DOESN'T EXISTS.","LOAD ABORTED....","",250]
  693.             Goto TILBAKE
  694.          End If 
  695.          If Len(FILNAVNET$)>38
  696.             MESSAGE2["LOADING FILE AS:",Left$(FILNAVNET$,38),Mid$(FILNAVNET$,39,38),Mid$(FILNAVNET$,39*2-1,38),True]
  697.          Else 
  698.             MESSAGE2["","LOADING FILE AS:",Right$(FILNAVNET$,38),"",True]
  699.          End If 
  700.          Hide On 
  701.          Ink 0
  702.          Open In 1,FILNAVNET$
  703.          OPENED=True
  704.          If Lof(1)<10
  705.             MESSAGE["","WRONG FILE TYPE.","LOAD ABORTED....","",250]
  706.             Goto SPRI
  707.          End If 
  708.          HEADER$=Input$(1,11)
  709.          Pof(1)=0
  710.          If HEADER$<>"DISKREGFILE"
  711.             If HEADER$<>"DISKREGFIL2"
  712.                MESSAGE["","WRONG FILE TYPE.","LOAD ABORTED....","",250]
  713.                Goto SPRI
  714.             End If 
  715.          End If 
  716.          Input #1,HEADER$
  717.          If HEADER$="DISKREGFIL2"
  718.             For YIQ=1 To 3
  719.                Input #1,INFO$(YIQ)
  720.             Next 
  721.          Else 
  722.             INFO$(1)="Monday 1-1-1999"
  723.             INFO$(2)="Enter something."
  724.             INFO$(3)=""
  725.          End If 
  726.          Input #1,POSTER
  727.          XWAS#=0
  728.          EX1#=170
  729.          If POSTER>0
  730.             AX#=300.0/(POSTER+6.0)
  731.          End If 
  732.          Ink 2
  733.          GANG#=300.0/MANT
  734.          For I=0 To MANT
  735.             POST$(I)=String$(¥$,11)
  736.             If I mod 5=0
  737.                Bar 170,123 To 171+(GANG#*I),127
  738.             End If 
  739.          Next 
  740.          Bar 170,123 To 470,127
  741.          Ink 0
  742.          If POSTER=<0
  743.             Bar 170,123 To 470,127
  744.          End If 
  745.          If Free<Lof(1) or POSTER>MANT
  746.             MESSAGE2["","","","",False]
  747.             RYDDE_EMNE=1
  748.             For I=0 To 5
  749.                TEM$(I)=""
  750.             Next 
  751.             For I=0 To 6
  752.                LIN$(I)=""
  753.             Next 
  754.             FILE_NAME$="Unnamed...."
  755.             POSTEN=0
  756.             POSTER=-1
  757.             VIS_DET
  758.             LAGRET=True
  759.             MESSAGE[Pen$(2),"LOAD HAS BEEN ABORTED !.","NOT ENOUGH WORKSPACE.",Pen$(0),-1]
  760.             Goto SPRI
  761.          Else 
  762.             Input #1,RYDDE_EMNE
  763.             For FIFI=1 To 6
  764.                If POSTER>0
  765.                   EX1#=EX1#+AX#
  766.                   Bar 170,123 To EX1#+1,127
  767.                End If 
  768.                Input #1,PRT_DEF(FIFI)
  769.             Next 
  770.             For FIFI=0 To POSTER
  771.                If POSTER>0
  772.                   EX1#=EX1#+AX#
  773.                   Bar 170,123 To EX1#+1,127
  774.                   Add DSAJNBVLK,1,0 To 50
  775.                   If DSAJNBVLK=50
  776.                      FRE_M=Free
  777.                      If FRE_M<25000
  778.                         MESSAGE2["","","","",False]
  779.                         POSTER=FIFI-1
  780.                         POSTEN=0
  781.                         LL=Len(FILNAVNET$)-Max(Instr(FILNAVNET$,":"),Instr(FILNAVNET$,"/"))
  782.                         FILE_NAME$=Right$(FILNAVNET$,LL)
  783.                         LAGRET=True
  784.                         MESSAGE[Pen$(2),"LOAD HAS BEEN ABORTED !.","OUT OF WORKSPACE.",Pen$(0),-1]
  785.                         Goto SPRI
  786.                      End If 
  787.                      Timer=0
  788.                   End If 
  789.                End If 
  790.                Line Input #1,POST$(FIFI)
  791.             Next 
  792.             Bar 170,123 To 470,127
  793.             POSTEN=0
  794.             LL=Len(FILNAVNET$)-Max(Instr(FILNAVNET$,":"),Instr(FILNAVNET$,"/"))
  795.             FILE_NAME$=Right$(FILNAVNET$,LL)
  796.             LAGRET=True
  797.             SPRI:
  798.             Close 1
  799.             OPENED=False
  800.             Wait Vbl 
  801.             MESSAGE2["","","","",False]
  802.             Show On 
  803.          End If 
  804.       End If 
  805.       If SA_LO=2
  806.          If Exist(FILNAVNET$)
  807.             REQUEST["FILE EXISTS. DO YOU WANT","TO OVERWRITE IT?","",342,127,438,282,2,False,X Mouse,Y Mouse]
  808.             If Param=False
  809.                Goto TILBAKE
  810.             End If 
  811.          End If 
  812.          If Len(FILNAVNET$)>38
  813.             MESSAGE2["SAVING FILE AS:",Left$(FILNAVNET$,38),Mid$(FILNAVNET$,39,38),Mid$(FILNAVNET$,39*2-1,38),True]
  814.          Else 
  815.             MESSAGE2["","SAVING FILE AS:",Right$(FILNAVNET$,38),"",True]
  816.          End If 
  817.          Hide On 
  818.          Ink 2
  819.          Bar 170,123 To 470,127
  820.          Open Out 1,FILNAVNET$
  821.          OPENED=True
  822.          XWAS#=0
  823.          EX1#=170
  824.          If POSTER>0
  825.             AX#=300.0/(POSTER+6.0)
  826.          Else 
  827.             Bar 170,123 To 470,127
  828.          End If 
  829.          Ink 0
  830.          Print #1,"DISKREGFIL2"
  831.          For YIQ=1 To 3
  832.             Print #1,INFO$(YIQ)
  833.          Next 
  834.          Print #1,POSTER
  835.          Print #1,RYDDE_EMNE
  836.          For FIFI=1 To 6
  837.             If POSTER>0
  838.                EX1#=EX1#+AX#
  839.                Bar 170,123 To EX1#+1,127
  840.             End If 
  841.             Print #1,PRT_DEF(FIFI)
  842.          Next 
  843.          For FIFI=0 To POSTER
  844.             If POSTER>0
  845.                EX1#=EX1#+AX#
  846.                Bar 170,123 To EX1#+1,127
  847.             End If 
  848.             Print #1,POST$(FIFI)
  849.          Next 
  850.          LAGRET=True
  851.          Bar 170,123 To 470,127
  852.          Close 1
  853.          OPENED=False
  854.          Wait Vbl 
  855.          LL=Len(FILNAVNET$)-Max(Instr(FILNAVNET$,":"),Instr(FILNAVNET$,"/"))
  856.          FILE_NAME$=Right$(FILNAVNET$,LL)
  857.          MESSAGE2["","","","",False]
  858.          Show On 
  859.       End If 
  860.    End If 
  861.    '
  862.    TILBAKE:
  863.    Limit Mouse 
  864.    X Mouse=BALLEBUFFX
  865.    Y Mouse=BALLEBUFFY
  866.    Limit Mouse 342,127 To 438,282
  867.    Change Mouse 4
  868.    View 
  869.    If HUMVDSKJHGHIUEA=True
  870.       VIS_LITEN_TEKST[Pen$(2)+"* *  L O W   O N   M E M O R Y  * *"+Pen$(0)]
  871.       Wait 50*5
  872.       VIS_LITEN_TEKST["                                   "]
  873.    End If 
  874.    Pop Proc
  875.    '
  876.    DIS_ERR:
  877.    If MESS_ON=True
  878.       Put Block 56
  879.       Del Block 56
  880.       MESS_ON=False
  881.    End If 
  882.    Restore ERR_DATA
  883.    ERR=Errn
  884.    If ERR=24
  885.       Inc LOMEM
  886.       If LOMEM<8
  887.          HUMVDSKJHGHIUEA=True
  888.          Resume TILBAKE
  889.       End If 
  890.       Del Cblock 1
  891.       Del Cblock 2
  892.       Del Block 9
  893.       Screen Close 3
  894.       Screen Close 0
  895.       Screen Open 0,640,20,2,Hires
  896.       Curs Off 
  897.       Palette $FF0,$F00
  898.       Screen Display 0,,120,,
  899.       Cls 0
  900.       Centre "* * *  OUT OF MEMORY.  I'LL HAVE TO QUIT.  * * *"
  901.       Wait Key 
  902.       Screen Close 0
  903.       Edit 
  904.    End If 
  905.    If OPENED=True
  906.       Close 1
  907.    End If 
  908.    For I=1 To 19
  909.       Read ¿ERR,MESS$
  910.       If ¿ERR=ERR
  911.          MESSAGE[Pen$(2)+"AN ERROR HAS OCCURRED",String$("*",23)+Pen$(0),MESS$,"ERROR NUMBER: D"+(Str$(I)-" "),50*8]
  912.          HUMVDSKJHGHIUEA=False
  913.          Resume TILBAKE
  914.       End If 
  915.    Next 
  916.    MESSAGE[Pen$(2)+"AN ERROR HAS OCCURRED",String$("*",23)+Pen$(0),"UNKNOWN TYPE.","ERROR NUMBER: A"+(Str$(ERR)-" "),50*8]
  917.    Resume TILBAKE
  918.    ERR_DATA:
  919.    Data 86,"THIS DEVICE NOT AVAILABLE."
  920.    Data 85,"THE DIRECTOY IS NOT EMPTY."
  921.    Data 80,"COULD NOT FIND THIS DIRECTORY."
  922.    Data 88,"THE DISK IS FULL. USE A NEW ONE."
  923.    Data 83,"THE DISK IS NOT VALIDATED."
  924.    Data 84,"THE DISK IS WRITE PROTECTED."
  925.    Data 96,"THE FILE IS ALREADY OPEN.?"
  926.    Data 91,"FILE PROTECTED AGAINST READING."
  927.    Data 89,"FILE PROTECTED AGAINST DELETING."
  928.    Data 90,"FILE PROTECTED AGAINST WRITING."
  929.    Data 81,"FILE NOT FOUND. DELETED?"
  930.    Data 97,"THE FILE IS NOT OPENED. MY FAULT?"
  931.    Data 98,"PROGRAM ERROR. BIG BUG!!"
  932.    Data 94,"I/O ERROR. DISK ERROR !!"
  933.    Data 82,"ILLEGAL FILE NAME. CHANGE IT!"
  934.    Data 99,"INPUT TOO LONG. CAN'T READ FILE."
  935.    Data 93,"NO DISK IN DRIVE. INSERT THE F... DISK!"
  936.    Data 92,"THIS IS NOT A FUCKING AmigaDOS DISK!"
  937.    Data 100,"IT'S THE END OF THE FILE !!"
  938. End Proc
  939. Procedure SETUP
  940.    On Error Proc MAINERROR
  941.    Make Icon Mask 
  942.    Hide On 
  943.    View 
  944.    Reserve As Work 15,230*62
  945.    Unpack 11 To 2
  946.    Erase 11
  947.    Screen Hide 2
  948.    Get Cblock 1,428,85,192,155
  949.    Screen Close 2
  950.    Unpack 10 To 0
  951.    Erase 10
  952.    Get Cblock 15,0,0,16,15
  953.    Screen Hide 0
  954.    Bob Update Off 
  955.    For I=11 To 16
  956.       No Mask I
  957.    Next 
  958.    Screen Display 0,,42,,
  959.    Colour 19,$440
  960.    Colour 18,$770
  961.    Colour 17,$AA0
  962.    Change Mouse 5
  963.    Paper 6
  964.    Pen 0
  965.    Ink 1
  966.    Curs Off 
  967.    Put Cblock 15
  968.    Del Cblock 15
  969.    Get Cblock 2,428,85,192,155
  970.    Limit Mouse 
  971.    X Mouse=400
  972.    Y Mouse=130
  973.    Limit Mouse 342,127 To 438,282
  974.    Screen Show 
  975. End Proc
  976. Procedure REQUEST[T1$,T2$,T3$,F1,F2,F3,F4,STED,DISK,XMM,YMM]
  977.    On Error Proc MAINERROR
  978.    Get Block 61,140,80,368,55
  979.    If DISK
  980.       T2$=Left$(T2$,Instr(T2$,":"))
  981.    End If 
  982.    BOKS_OPP[140,82,500,130,2,1,1]
  983.    Hide On 
  984.    View 
  985.    Limit Mouse 
  986.    If STED=1
  987.       X Mouse=222
  988.       Y Mouse=164
  989.    Else 
  990.       X Mouse=352
  991.       Y Mouse=164
  992.    End If 
  993.    Limit Mouse 198,124 To 379,173
  994.    Show On 
  995.    View 
  996.    Centre At(,11)+T1$
  997.    Centre At(,12)+T2$
  998.    Centre At(,13)+T3$
  999.    Ink 0
  1000.    Bar 162,120 To 218,127
  1001.    Bar 420,120 To 480,127
  1002.    If Not DISK
  1003.       Paste Icon 160,118,3
  1004.       Paste Icon 418,118,4
  1005.    Else 
  1006.       Paste Icon 160,118,4
  1007.       Paste Icon 418,118,4
  1008.    End If 
  1009.    If DISK
  1010.       Repeat 
  1011.          X=X Screen(X Mouse)
  1012.          Y=Y Screen(Y Mouse)
  1013.          Z=0
  1014.          If X>159 and Y>117 and X<159+62 and Y<128
  1015.             Z=1
  1016.          End If 
  1017.          If X>417 and Y>117 and X<417+62 and Y<128
  1018.             Z=2
  1019.          End If 
  1020.       Until Mouse Key=1 and Z>0 or Exist(T2$)
  1021.       If Z=1 or Z=2
  1022.          OK_CAN=False
  1023.       End If 
  1024.       If Exist(T2$)
  1025.          OK_CAN=True
  1026.       End If 
  1027.    Else 
  1028.       Repeat 
  1029.          X=X Screen(X Mouse)
  1030.          Y=Y Screen(Y Mouse)
  1031.          Z=0
  1032.          If X>159 and Y>117 and X<159+62 and Y<128
  1033.             Z=1
  1034.          End If 
  1035.          If X>417 and Y>117 and X<417+62 and Y<128
  1036.             Z=2
  1037.          End If 
  1038.       Until Mouse Key=1 and Z>0
  1039.       If Z=1
  1040.          OK_CAN=True
  1041.       Else 
  1042.          OK_CAN=False
  1043.       End If 
  1044.    End If 
  1045.    Put Block 61
  1046.    Del Block 61
  1047.    Hide On 
  1048.    View 
  1049.    Limit Mouse 
  1050.    X Mouse=XMM
  1051.    Y Mouse=YMM
  1052.    Limit Mouse F1,F2 To F3,F4
  1053.    Show On 
  1054.    View 
  1055. End Proc[OK_CAN]
  1056. Procedure REQUEST3[F1,F2,F3,F4,XMM,YMM,NR]
  1057.    On Error Proc MAINERROR
  1058.    Get Block 59,140,80,368,55
  1059.    If NR=2 Then AJO=10 Else AJO=0
  1060.    BOKS_OPP[140,82+AJO,500,130,2,1,1]
  1061.    Hide On 
  1062.    View 
  1063.    Limit Mouse 
  1064.    X Mouse=352
  1065.    Y Mouse=164
  1066.    Limit Mouse 198,124+AJO To 379,173
  1067.    Show On 
  1068.    View 
  1069.    If NR=1
  1070.       Centre At(,11)+"WHAT DO YOU WANT TO USE AS"
  1071.       Centre At(,12)+"SEARCH/SORT KEY FOR YOUR ITEMS?"
  1072.       Centre At(,13)+Pen$(2)+"THE FILES WILL BE SORTED AFTERWARDS."+Pen$(0)
  1073.    Else 
  1074.       If NR=2
  1075.          Centre At(,12)+"WHAT SHALL BE USED, WHEN SEARCHING"
  1076.          Centre At(,13)+"FOR THE ITEMS YOU WANT TO PRINT?"
  1077.       Else 
  1078.          Centre At(,11)+"DO YOU WANT TO DELETE THIS ITEM"
  1079.          Centre At(,12)+"OR ALL THE ITEMS?"
  1080.          Centre At(,13)+Pen$(2)+"THE ITEM(S) WILL BE LOST FOREVER!"+Pen$(0)
  1081.       End If 
  1082.    End If 
  1083.    Ink 0,6
  1084.    If NR=3 Then Bar 420,120 To 480,127
  1085.    Paste Icon 160,118,3
  1086.    Paste Icon 289,118,4
  1087.    Paste Icon 418,118,4
  1088.    If NR=3
  1089.       Text 175,126,"THIS"
  1090.       Text 308,126,"ALL"
  1091.    Else 
  1092.       If NR=1
  1093.          Text 175,126,"NAME"
  1094.          Text 304,126,"TYPE"
  1095.          Text 433,126,"DISK"
  1096.       Else 
  1097.          Text 175-11,126,"ITEM Nº"
  1098.          Text 304-11,126,"PATTERN"
  1099.          Text 433-11,126,"DISK Nº"
  1100.       End If 
  1101.    End If 
  1102.    Repeat 
  1103.       X=X Screen(X Mouse)
  1104.       Y=Y Screen(Y Mouse)
  1105.       Z=0
  1106.       If X>159 and Y>117 and X<159+62 and Y<128
  1107.          Z=1
  1108.       End If 
  1109.       If X>288 and Y>117 and X<288+62 and Y<128
  1110.          Z=2
  1111.       End If 
  1112.       If X>417 and Y>117 and X<417+62 and Y<128
  1113.          Z=3
  1114.       End If 
  1115.    Until(Mouse Key=1 and Z>0) or(Mouse Key=2 and Z=0)
  1116.    OK_CAN=Z
  1117.    Put Block 59
  1118.    Del Block 59
  1119.    Hide On 
  1120.    View 
  1121.    Limit Mouse 
  1122.    X Mouse=XMM
  1123.    Y Mouse=YMM
  1124.    Limit Mouse F1,F2 To F3,F4
  1125.    Show On 
  1126.    View 
  1127. End Proc[OK_CAN]
  1128. Procedure MESSAGE[T1$,T2$,T3$,T4$,PAUSE]
  1129.    On Error Proc MAINERROR
  1130.    Get Block 57,140,80,368,55
  1131.    BOKS_OPP[140,82,500,130,2,1,1]
  1132.    Hide On 
  1133.    View 
  1134.    Centre At(,11)+T1$
  1135.    Centre At(,12)+T2$
  1136.    Centre At(,13)+T3$
  1137.    Centre At(,14)+T4$
  1138.    If PAUSE=-1
  1139.       Repeat 
  1140.       Until Mouse Key>0
  1141.    End If 
  1142.    For I=0 To PAUSE
  1143.       Wait Vbl 
  1144.       Exit If Mouse Key>0
  1145.    Next 
  1146.    Repeat 
  1147.    Until Mouse Key=0
  1148.    Put Block 57
  1149.    Del Block 57
  1150.    Show On 
  1151.    View 
  1152. End Proc
  1153. Procedure MESSAGE2[T1$,T2$,T3$,T4$,OFF_ON]
  1154.    On Error Proc MAINERROR
  1155.    If OFF_ON=True and MESS_ON=False
  1156.       Get Block 56,140,80,368,55
  1157.       BOKS_OPP[140,82,500,130,2,1,1]
  1158.       Centre At(,11)+T1$
  1159.       Centre At(,12)+T2$
  1160.       Centre At(,13)+T3$
  1161.       Centre At(,14)+T4$
  1162.       MESS_ON=True
  1163.    Else 
  1164.       If MESS_ON=True
  1165.          Put Block 56
  1166.          Del Block 56
  1167.          MESS_ON=False
  1168.       End If 
  1169.    End If 
  1170. End Proc
  1171. Procedure VINDUINN[TIT$,F1,F2,F3,F4,XMM,YMM,MTLEN,TALL,TE$]
  1172.    On Error Proc MAINERROR
  1173.    TLEN=Len(TE$)
  1174.    POS=TLEN+1
  1175.    LPOS=1
  1176.    TEKST$=TE$
  1177.    If TE$<>"" Then NOKOT=True
  1178.    Get Block 47,140,80,368,55
  1179.    BOKS_OPP[140,82,500,130,2,1,1]
  1180.    ¤×°=MTLEN*8+176
  1181.    BOKS_OPP[160,102,¤×°,112,1,0,0]
  1182.    Hide On 
  1183.    View 
  1184.    Limit Mouse 
  1185.    X Mouse=352
  1186.    Y Mouse=164
  1187.    Limit Mouse 198,124 To 379,173
  1188.    Show On 
  1189.    View 
  1190.    Ink 0
  1191.    Bar 162,120 To 218,127
  1192.    Bar 420,120 To 480,127
  1193.    Paste Icon 160,118,3
  1194.    Paste Icon 418,118,4
  1195.    Centre At(,11)+TIT$
  1196.    I$=""
  1197.    Gosub INNKEYS
  1198.    Repeat 
  1199.       I$=Inkey$
  1200.       If I$<>"" and(I$<>Chr$(13)) Then Gosub INNKEYS
  1201.       X=X Screen(X Mouse)
  1202.       Y=Y Screen(Y Mouse)
  1203.       Z=0
  1204.       If X>159 and Y>117 and X<159+62 and Y<128
  1205.          Z=1
  1206.       End If 
  1207.       If X>417 and Y>117 and X<417+62 and Y<128
  1208.          Z=2
  1209.       End If 
  1210.    Until(Mouse Key=1 and Z>0) or(I$=Chr$(13))
  1211.    If I$=Chr$(13)
  1212.       Z=1
  1213.    End If 
  1214.    X=21
  1215.    Y=13
  1216.    If TLEN<MTLEN
  1217.       Print At(X+POS-1,Y);" "
  1218.    Else 
  1219.       Ink 6
  1220.       Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1221.    End If 
  1222.    FAFA$=" "
  1223.    If TLEN=MTLEN Then FAFA$=""
  1224.    Print At(X,Y);TEKST$;FAFA$
  1225.    If Z=1 and Len(TEKST$)>0
  1226.       RET_BAK$=TEKST$
  1227.    Else 
  1228.       If NOKOT=True
  1229.          RET_BAK$=TE$
  1230.       Else 
  1231.          RET_BAK$=""
  1232.       End If 
  1233.    End If 
  1234.    Put Block 47
  1235.    Del Block 47
  1236.    Hide On 
  1237.    View 
  1238.    Limit Mouse 
  1239.    X Mouse=XMM
  1240.    Y Mouse=YMM
  1241.    Limit Mouse F1,F2 To F3,F4
  1242.    Show On 
  1243.    View 
  1244.    Goto HUBBABUBBA
  1245.    '
  1246.    INNKEYS:
  1247.    X=21
  1248.    Y=13
  1249.    FAFA$=" "
  1250.    If TLEN=MTLEN Then FAFA$=""
  1251.    Print At(X,Y);TEKST$;FAFA$
  1252.    If POS=TLEN+1 and TLEN<MTLEN
  1253.       Pen 1
  1254.       Print At(X+POS-1,Y);"|"
  1255.    Else 
  1256.       Paper 1
  1257.       If TLEN<MTLEN
  1258.          Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1259.       Else 
  1260.          If POS<TLEN+1
  1261.             Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1262.          Else 
  1263.             Ink 1
  1264.             Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1265.          End If 
  1266.       End If 
  1267.    End If 
  1268.    Paper 6
  1269.    Pen 0
  1270.    AAA=Asc(I$)
  1271.    SAC=Scancode
  1272.    KSH=Key Shift
  1273.    If SAC=79 and POS>1 and KSH<>1 and KSH<>2 and KSH<>32
  1274.       If TLEN+1<MTLEN
  1275.          Print At(X+POS-1,Y);" "
  1276.       Else 
  1277.          Ink 6
  1278.          Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1279.       End If 
  1280.       Dec POS
  1281.    End If 
  1282.    If SAC=78 and POS=<TLEN and KSH<>1 and KSH<>2 and KSH<>32
  1283.       Inc POS
  1284.    End If 
  1285.    If TALL=True
  1286.       If AAA<>47 and AAA<>127 and((AAA>47 and AAA<58)) and TLEN<MTLEN
  1287.          TT$=Left$(TEKST$,POS-1)
  1288.          TT2$=Right$(TEKST$,TLEN-POS+1)
  1289.          TEKST$=TT$+I$+TT2$
  1290.          Inc TLEN
  1291.          Inc POS
  1292.       End If 
  1293.    Else 
  1294.       If AAA<>47 and AAA<>127 and((AAA>31 and AAA<127) or(AAA>160)) and TLEN<MTLEN
  1295.          TT$=Left$(TEKST$,POS-1)
  1296.          TT2$=Right$(TEKST$,TLEN-POS+1)
  1297.          TEKST$=TT$+I$+TT2$
  1298.          Inc TLEN
  1299.          Inc POS
  1300.       End If 
  1301.    End If 
  1302.    If POS>1 and SAC=65
  1303.       TT$=Left$(TEKST$,POS-2)
  1304.       TT2$=Right$(TEKST$,TLEN-POS+1)
  1305.       TEKST$=TT$+TT2$
  1306.       Dec TLEN
  1307.       Dec POS
  1308.       If TLEN+1<MTLEN
  1309.          Print At(X+POS,Y);" "
  1310.       Else 
  1311.          Ink 6
  1312.          Bar(X+POS)*8,Y*8 To(X+POS)*8+1,Y*8+6
  1313.       End If 
  1314.    End If 
  1315.    If SAC=70 and POS=<TLEN
  1316.       TT$=Left$(TEKST$,POS-1)
  1317.       TT2$=Right$(TEKST$,TLEN-POS)
  1318.       TEKST$=TT$+TT2$
  1319.       Dec TLEN
  1320.    End If 
  1321.    If(KSH=1 or KSH=2) and SAC>77 and SAC<80
  1322.       If SAC=78
  1323.          POS=TLEN+1
  1324.       Else 
  1325.          If TLEN+1<MTLEN
  1326.             Print At(X+POS-1,Y);" "
  1327.          Else 
  1328.             Ink 6
  1329.             Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1330.          End If 
  1331.          POS=1
  1332.       End If 
  1333.    End If 
  1334.    If SAC=78 and POS=<TLEN and KSH=32
  1335.       TT=Instr(Right$(TEKST$,TLEN-POS)," ")
  1336.       If TT>0
  1337.          Add POS,TT
  1338.       Else 
  1339.          POS=TLEN+1
  1340.       End If 
  1341.    End If 
  1342.    If SAC=79 and KSH=32
  1343.       TT$=Flip$(Left$(TEKST$,POS-1))
  1344.       TT=Instr(TT$," ")
  1345.       If TLEN+1<MTLEN
  1346.          Print At(X+POS-1,Y);" "
  1347.       Else 
  1348.          Ink 6
  1349.          Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1350.       End If 
  1351.       If TT>0
  1352.          Add POS,-TT
  1353.       Else 
  1354.          POS=1
  1355.       End If 
  1356.    End If 
  1357.    FAFA$=" "
  1358.    If TLEN=MTLEN Then FAFA$=""
  1359.    Print At(X,Y);TEKST$;FAFA$
  1360.    If POS=TLEN+1 and TLEN<MTLEN
  1361.       Pen 1
  1362.       Print At(X+POS-1,Y);"|"
  1363.    Else 
  1364.       Paper 1
  1365.       If TLEN<MTLEN
  1366.          Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1367.       Else 
  1368.          If POS<TLEN+1
  1369.             Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1370.          Else 
  1371.             Ink 1
  1372.             Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1373.          End If 
  1374.       End If 
  1375.    End If 
  1376.    Paper 6
  1377.    Pen 0
  1378.    Return 
  1379.    HUBBABUBBA:
  1380. End Proc[RET_BAK$]
  1381. Procedure INN[TEKST$,MTLEN,X,Y,TALL,FULL]
  1382.    On Error Proc MAINERROR
  1383.    TLEN=Len(TEKST$)
  1384.    POS=TLEN+1
  1385.    LPOS=1
  1386.    Repeat 
  1387.       FAFA$=" "
  1388.       If TLEN=MTLEN Then FAFA$=""
  1389.       Print At(X,Y);TEKST$;FAFA$
  1390.       If POS=TLEN+1 and TLEN<MTLEN
  1391.          Pen 1
  1392.          Print At(X+POS-1,Y);"|"
  1393.       Else 
  1394.          Paper 1
  1395.          If TLEN<MTLEN
  1396.             Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1397.          Else 
  1398.             If POS<TLEN+1
  1399.                Print At(X+POS-1,Y);Mid$(TEKST$,POS,1)
  1400.             Else 
  1401.                Ink 1
  1402.                Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1403.             End If 
  1404.          End If 
  1405.       End If 
  1406.       Paper 6
  1407.       Pen 0
  1408.       Repeat 
  1409.          I$=Inkey$
  1410.       Until I$<>""
  1411.       AAA=Asc(I$)
  1412.       SAC=Scancode
  1413.       KSH=Key Shift
  1414.       If SAC=79 and POS>1 and KSH<>1 and KSH<>2 and KSH<>32
  1415.          If TLEN+1<MTLEN
  1416.             Print At(X+POS-1,Y);" "
  1417.          Else 
  1418.             Ink 6
  1419.             Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1420.          End If 
  1421.          Dec POS
  1422.       End If 
  1423.       If SAC=78 and POS=<TLEN and KSH<>1 and KSH<>2 and KSH<>32
  1424.          Inc POS
  1425.       End If 
  1426.       If TALL=True
  1427.          If AAA<>127 and((AAA>47 and AAA<58)) and TLEN<MTLEN
  1428.             TT$=Left$(TEKST$,POS-1)
  1429.             TT2$=Right$(TEKST$,TLEN-POS+1)
  1430.             TEKST$=TT$+I$+TT2$
  1431.             Inc TLEN
  1432.             Inc POS
  1433.          End If 
  1434.       Else 
  1435.          If AAA<>127 and((AAA>31 and AAA<127) or(AAA>160)) and TLEN<MTLEN
  1436.             TT$=Left$(TEKST$,POS-1)
  1437.             TT2$=Right$(TEKST$,TLEN-POS+1)
  1438.             TEKST$=TT$+I$+TT2$
  1439.             Inc TLEN
  1440.             Inc POS
  1441.          End If 
  1442.       End If 
  1443.       If POS>1 and SAC=65
  1444.          TT$=Left$(TEKST$,POS-2)
  1445.          TT2$=Right$(TEKST$,TLEN-POS+1)
  1446.          TEKST$=TT$+TT2$
  1447.          Dec TLEN
  1448.          Dec POS
  1449.          If TLEN+1<MTLEN
  1450.             Print At(X+POS,Y);" "
  1451.          Else 
  1452.             Ink 6
  1453.             Bar(X+POS)*8,Y*8 To(X+POS)*8+1,Y*8+6
  1454.          End If 
  1455.       End If 
  1456.       If SAC=70 and POS=<TLEN
  1457.          TT$=Left$(TEKST$,POS-1)
  1458.          TT2$=Right$(TEKST$,TLEN-POS)
  1459.          TEKST$=TT$+TT2$
  1460.          Dec TLEN
  1461.       End If 
  1462.       If(KSH=1 or KSH=2) and SAC>77 and SAC<80
  1463.          If SAC=78
  1464.             POS=TLEN+1
  1465.          Else 
  1466.             If TLEN+1<MTLEN
  1467.                Print At(X+POS-1,Y);" "
  1468.             Else 
  1469.                Ink 6
  1470.                Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1471.             End If 
  1472.             POS=1
  1473.          End If 
  1474.       End If 
  1475.       If SAC=78 and POS=<TLEN and KSH=32
  1476.          TT=Instr(Right$(TEKST$,TLEN-POS)," ")
  1477.          If TT>0
  1478.             Add POS,TT
  1479.          Else 
  1480.             POS=TLEN+1
  1481.          End If 
  1482.       End If 
  1483.       If SAC=79 and KSH=32
  1484.          TT$=Flip$(Left$(TEKST$,POS-1))
  1485.          TT=Instr(TT$," ")
  1486.          If TLEN+1<MTLEN
  1487.             Print At(X+POS-1,Y);" "
  1488.          Else 
  1489.             Ink 6
  1490.             Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1491.          End If 
  1492.          If TT>0
  1493.             Add POS,-TT
  1494.          Else 
  1495.             POS=1
  1496.          End If 
  1497.       End If 
  1498.    Until AAA=13 and Len(TEKST$)>FULL
  1499.    If TLEN<MTLEN
  1500.       Print At(X+POS-1,Y);" "
  1501.    Else 
  1502.       Ink 6
  1503.       Bar(X+POS-1)*8,Y*8 To(X+POS-1)*8+1,Y*8+6
  1504.    End If 
  1505.    FAFA$=" "
  1506.    If TLEN=MTLEN Then FAFA$=""
  1507.    Print At(X,Y);TEKST$;FAFA$
  1508. End Proc[TEKST$]
  1509. If you've found this two lines, I just have to tell you that
  1510. Monty Python and Mr Bean is the best.
  1511. Procedure RENS_OPP
  1512.    Print At(9,1);String$(" ",40)
  1513.    Print At(9,3);String$(" ",40)
  1514.    Print At(20,6);"     "
  1515.    Print At(20,8);"     "
  1516.    Print At(32,8);"     "
  1517.    Cls 6,12,102 To 396,154
  1518.    Print At(2,20);Space$(45)
  1519.    If Fast Free+Chip Free<100000
  1520.       Pen 2
  1521.    End If 
  1522.    Print At(31,28);Right$(Space$(12)+Str$(Fast Free+Chip Free),13)
  1523.    Pen 0
  1524. End Proc
  1525. Procedure VIS_LITEN_TEKST[A$]
  1526.    L=Len(A$)
  1527.    ½L=L/2
  1528.    Print At(5+(20-½L),24);A$
  1529. End Proc
  1530. Procedure MANGE_INN
  1531.    On Error Proc MAINERROR
  1532.    Dim X1(18),Y1(18),X2(18),Y2(18)
  1533.    DAS:
  1534.    Data 454,106,522,125,526,106,594,125,454,127,522,146,526,127,594,146,454,148,522,167,526,148,594,167,454,169,522,188,526,169,594,188,454,190,522,209,526,190,594,209
  1535.    Data 454,211,522,230,526,211,594,230,454,106,522,125,454,127,522,146,454,148,522,167,454,169,594,188,454,190,594,209,454,211,594,230
  1536.    Restore DAS : For I=1 To 18 : Read X1(I),Y1(I),X2(I),Y2(I) : Next 
  1537.    '
  1538.    ANT=6
  1539.    MAKS=45
  1540.    X=1
  1541.    XX=1
  1542.    YY=12
  1543.    VIS_LITEN_TEKST["SELECT / MOUSE BUTTON TO EXIT"]
  1544.    Dim MX(ANT)
  1545.    Pen 0
  1546.    For Y=1 To ANT
  1547.       MX(Y)=Len(LIN$(Y))+1
  1548.       Print At(XX+1,Y+YY);LIN$(Y);" "
  1549.    Next 
  1550.    Y=1
  1551.    Pen 2
  1552.    Print At(2,20);"Line:"
  1553.    Print At(20,20);"Column:"
  1554.    FYTTEGRISEN:
  1555.    Repeat 
  1556.       Pen 2
  1557.       Paper 6
  1558.       Print At(7,20);Y;".  "
  1559.       Print At(27,20);X;".  "
  1560.       Pen 0
  1561.       Repeat 
  1562.          I$=Inkey$
  1563.          If Mid$(LIN$(Y),X,1)<>""
  1564.             Paper 1
  1565.             Pen 0
  1566.             Print At(X+XX,Y+YY);Mid$(LIN$(Y),X,1)
  1567.          Else 
  1568.             Paper 6
  1569.             Pen 1
  1570.             Print At(X+XX,Y+YY);"‹"
  1571.          End If 
  1572.          Paper 6
  1573.          Pen 1
  1574.          MK=Mouse Key
  1575.       Until I$<>"" or MK=1 or MK=2
  1576.       If MK=1 Then Goto BALELUJA
  1577.       SAC=Scancode
  1578.       KSH=Key Shift
  1579.       LX=X
  1580.       LY=Y
  1581.       If((I$=Cdown$) or(I$=Chr$(13))) and Y<ANT
  1582.          Print At(X+XX,Y+YY);" "
  1583.          Inc Y
  1584.          If X>MX(Y)
  1585.             X=MX(Y)
  1586.          End If 
  1587.          If I$=Chr$(13)
  1588.             X=1
  1589.          End If 
  1590.       End If 
  1591.       If I$=Cup$ and Y>1
  1592.          Print At(X+XX,Y+YY);" "
  1593.          Dec Y
  1594.          If X>MX(Y)
  1595.             X=MX(Y)
  1596.          End If 
  1597.       End If 
  1598.       If I$=Cleft$ and X>1 and KSH=0
  1599.          Dec X
  1600.       End If 
  1601.       If I$=Cright$ and X<MX(Y) and KSH=0
  1602.          Inc X
  1603.       End If 
  1604.       If KSH>0 and KSH<4 and SAC=78
  1605.          X=MX(Y)
  1606.       End If 
  1607.       If KSH>0 and KSH<4 and SAC=79
  1608.          X=1
  1609.       End If 
  1610.       If((Asc(I$)>31 and Asc(I$)<127) or(Asc(I$)>=161 and Asc(I$)=<255)) and MX(Y)<MAKS
  1611.          TT$=Left$(LIN$(Y),X-1)
  1612.          TT2$=Right$(LIN$(Y),MX(Y)-X)
  1613.          LIN$(Y)=TT$+I$+TT2$
  1614.          Inc X
  1615.          Inc MX(Y)
  1616.       End If 
  1617.       If SAC=70 and X<MX(Y)
  1618.          TT$=Left$(LIN$(Y),X-1)
  1619.          TT2$=Right$(LIN$(Y),MX(Y)-X-1)
  1620.          LIN$(Y)=TT$+TT2$
  1621.          Dec MX(Y)
  1622.       End If 
  1623.       Pen 0
  1624.       Paper 6
  1625.       If X>1 and Asc(I$)=8
  1626.          TT$=Left$(LIN$(Y),X-2)
  1627.          TT2$=Right$(LIN$(Y),MX(Y)-X)
  1628.          LIN$(Y)=TT$+TT2$
  1629.          Dec MX(Y)
  1630.          Dec X
  1631.          If X=MX(Y)
  1632.             Print At(XX+1,LY+YY);LIN$(LY);"  "
  1633.          End If 
  1634.       End If 
  1635.       Print At(XX+1,LY+YY);LIN$(LY);" "
  1636.       If Mid$(LIN$(Y),X,1)<>""
  1637.          Paper 1
  1638.          Pen 0
  1639.          Print At(X+XX,Y+YY);Mid$(LIN$(Y),X,1)
  1640.       Else 
  1641.          Paper 6
  1642.          Pen 1
  1643.          Print At(X+XX,Y+YY);"‹"
  1644.       End If 
  1645.       BALELUJA:
  1646.       Paper 6
  1647.       Pen 1
  1648.       MK=Mouse Key
  1649.    Until MK>0 and MK<3
  1650.    Z=Mouse Zone
  1651.    If MK=>1 and Z>0
  1652.       Ink 2,6 : Box X1(Z),Y1(Z) To X2(Z),Y2(Z)
  1653.       Repeat : ZZ=Mouse Zone : Until Mouse Key=0
  1654.       Ink 6 : Box X1(Z),Y1(Z) To X2(Z),Y2(Z)
  1655.       If ZZ<>Z : Z=0 : MK=0 : End If 
  1656.    End If 
  1657.    P$=Chr$(Z)+Chr$(MK)
  1658.    Paper 6
  1659.    Pen 0
  1660.    If Mid$(LIN$(Y),X,1)<>""
  1661.       Print At(X+XX,Y+YY);Mid$(LIN$(Y),X,1)
  1662.    Else 
  1663.       Print At(X+XX,Y+YY);" "
  1664.    End If 
  1665.    VIS_LITEN_TEKST["                             "]
  1666.    Print At(2,20);Space$(45)
  1667. End Proc[P$]
  1668. Procedure SAMLE_DEM[I]
  1669.    On Error Proc MAINERROR
  1670.    _FIXIT
  1671.    If RYDDE_EMNE=1 Then POST$(I)=TEM$(1)+¥$+TEM$(2)+¥$+TEM$(3)+¥$+TEM$(4)+¥$+TEM$(5)+¥$+LIN$(1)+¥$+LIN$(2)+¥$+LIN$(3)+¥$+LIN$(4)+¥$+LIN$(5)+¥$+LIN$(6)+¥$
  1672.    If RYDDE_EMNE=2 Then POST$(I)=TEM$(2)+¥$+TEM$(1)+¥$+TEM$(3)+¥$+TEM$(4)+¥$+TEM$(5)+¥$+LIN$(1)+¥$+LIN$(2)+¥$+LIN$(3)+¥$+LIN$(4)+¥$+LIN$(5)+¥$+LIN$(6)+¥$
  1673.    If RYDDE_EMNE=3 Then POST$(I)=TEM$(4)+¥$+TEM$(5)+¥$+TEM$(1)+¥$+TEM$(2)+¥$+TEM$(3)+¥$+LIN$(1)+¥$+LIN$(2)+¥$+LIN$(3)+¥$+LIN$(4)+¥$+LIN$(5)+¥$+LIN$(6)+¥$
  1674. End Proc
  1675. Procedure SPRE_DEM[I]
  1676.    On Error Proc MAINERROR
  1677.    AQA$=POST$(I)
  1678.    For MA=1 To 11
  1679.       MAGGE$(MA)=""
  1680.    Next 
  1681.    If AQA$<>""
  1682.       For MA=1 To 11
  1683.          ROCK=Instr(AQA$,¥$)
  1684.          If ROCK>0
  1685.             MAGGE$(MA)=Left$(AQA$,ROCK-1)
  1686.             AQA$=Right$(AQA$,Len(AQA$)-ROCK)
  1687.          Else 
  1688.             AQA$=Right$(AQA$,Len(AQA$)-1)
  1689.          End If 
  1690.       Next 
  1691.    End If 
  1692.    If RYDDE_EMNE=1
  1693.       For I=1 To 5
  1694.          TEM$(I)=MAGGE$(I)
  1695.       Next 
  1696.       For I=1 To 6
  1697.          LIN$(I)=MAGGE$(I+5)
  1698.       Next 
  1699.    End If 
  1700.    If RYDDE_EMNE=2
  1701.       TEM$(1)=MAGGE$(2)
  1702.       TEM$(2)=MAGGE$(1)
  1703.       For I=3 To 5
  1704.          TEM$(I)=MAGGE$(I)
  1705.       Next 
  1706.       For I=1 To 6
  1707.          LIN$(I)=MAGGE$(I+5)
  1708.       Next 
  1709.    End If 
  1710.    If RYDDE_EMNE=3
  1711.       TEM$(2)=MAGGE$(4)
  1712.       TEM$(3)=MAGGE$(5)
  1713.       TEM$(4)=MAGGE$(1)
  1714.       TEM$(5)=MAGGE$(2)
  1715.       TEM$(1)=MAGGE$(3)
  1716.       For I=1 To 6
  1717.          LIN$(I)=MAGGE$(I+5)
  1718.       Next 
  1719.    End If 
  1720. End Proc
  1721. Procedure VIS_DET
  1722.    Paper 6
  1723.    If LAGRET=False Then Pen 2 Else Pen 0
  1724.    If Len(FILE_NAME$)=<33
  1725.       Print At(12,26);Left$(FILE_NAME$+Space$(33),33);
  1726.    Else 
  1727.       Print At(12,26);Right$(FILE_NAME$,33);
  1728.    End If 
  1729.    If Fast Free+Chip Free<100000 Then Pen 2 Else Pen 0
  1730.    Print At(31,28);Right$(Space$(12)+Str$(Fast Free+Chip Free),13);
  1731.    Pen 0
  1732.    Print At(12,28);Right$("     "+(Str$(POSTEN)-" "),5);
  1733. End Proc
  1734. Procedure VIS_DEM
  1735.    Print At(2,20);Space$(45)
  1736.    SPRE_DEM[POSTEN]
  1737.    Print At(9,1);Left$(TEM$(1)+Space$(40),40)
  1738.    Print At(9,3);Left$(TEM$(2)+Space$(40),40)
  1739.    Print At(20,6);Left$(TEM$(3)+"     ",5)
  1740.    Print At(20,8);Left$(TEM$(4)+"     ",5)
  1741.    Print At(32,8);Left$(TEM$(5)+"     ",5)
  1742.    For Y=1 To 6
  1743.       Print At(2,Y+12);Left$(LIN$(Y)+Space$(47),47)
  1744.    Next 
  1745. End Proc
  1746. Procedure CLEANUP[MI]
  1747.    On Error Proc MAINERROR
  1748.    MIMAGE=6
  1749.    Every 50 Proc KLOKKE
  1750.    Change Mouse MIMAGE
  1751.    Every On 
  1752.    For I=1 To 11 : MAGGE$(I)="" : Next 
  1753.    For I=0 To POSTER+1
  1754.       AQA$=POST$(I)
  1755.       If AQA$<>""
  1756.          For MA=1 To 11
  1757.             ROCK=Instr(AQA$,¥$)
  1758.             If ROCK>0
  1759.                MAGGE$(MA)=Left$(AQA$,ROCK-1)
  1760.                AQA$=Right$(AQA$,Len(AQA$)-ROCK)
  1761.             Else 
  1762.                AQA$=Right$(AQA$,Len(AQA$)-1)
  1763.             End If 
  1764.          Next 
  1765.       End If 
  1766.       If MI=1
  1767.          For IJ=1 To 5
  1768.             TEM$(IJ)=MAGGE$(IJ)
  1769.          Next 
  1770.          For IJ=1 To 6
  1771.             LIN$(IJ)=MAGGE$(IJ+5)
  1772.          Next 
  1773.       End If 
  1774.       If MI=2
  1775.          TEM$(1)=MAGGE$(2)
  1776.          TEM$(2)=MAGGE$(1)
  1777.          For IJ=3 To 5
  1778.             TEM$(IJ)=MAGGE$(IJ)
  1779.          Next 
  1780.          For IJ=1 To 6
  1781.             LIN$(IJ)=MAGGE$(IJ+5)
  1782.          Next 
  1783.       End If 
  1784.       If MI=3
  1785.          TEM$(2)=MAGGE$(4)
  1786.          TEM$(3)=MAGGE$(5)
  1787.          TEM$(4)=MAGGE$(1)
  1788.          TEM$(5)=MAGGE$(2)
  1789.          TEM$(1)=MAGGE$(3)
  1790.          For IJ=1 To 6
  1791.             LIN$(IJ)=MAGGE$(IJ+5)
  1792.          Next 
  1793.       End If 
  1794.       SAMLE_DEM[I]
  1795.    Next 
  1796.    Every Off 
  1797. End Proc
  1798. Procedure FEILHANDLE
  1799.    ERR=Errn
  1800.    ERR_FLAG=True
  1801.    If ERR=94
  1802.       If FERPU=1
  1803.          MESSAGE[Pen$(2)+"*** ERROR ***"+Pen$(0),"","CAN'T OPEN PRINTER....","",-1]
  1804.          Resume Label 
  1805.       End If 
  1806.       If FERPU=2
  1807.          REQUEST[Pen$(2)+"** PRINTER TROUBLE **"+Pen$(0),"PLEASE TURN PRINTER ON-LINE AND TRY AGAIN.","CHECK THE PRINTER CABLE TOO.",198,124,379,173,2,False,X Mouse,Y Mouse]
  1808.          AHAHA=Param
  1809.          If AHAHA=True
  1810.             ERR_FLAG=False
  1811.             Resume 
  1812.          End If 
  1813.          Close 1
  1814.          Resume Label 
  1815.       End If 
  1816.    End If 
  1817.    If ERR=86
  1818.       If FERPU=1
  1819.          MESSAGE[Pen$(2)+"*** ERROR ***"+Pen$(0),"","CAN'T OPEN PRINTER....","",-1]
  1820.          Resume Label 
  1821.       End If 
  1822.    End If 
  1823. End Proc
  1824. Procedure _HUNT[FIN$]
  1825.    On Error Proc MAINERROR
  1826.    For I=0 To POSTER+1
  1827.       If POST$(I)<>String$(¥$,11)
  1828.          If Upper$(Left$(POST$(I),Len(FIN$)))=Upper$(FIN$)
  1829.             PF=I
  1830.             Goto B
  1831.          End If 
  1832.       End If 
  1833.    Next 
  1834.    For I=0 To POSTER+1
  1835.       If Upper$(Left$(POST$(I),Len(FIN$)))>Upper$(FIN$)
  1836.          PF=-I-$FFFF
  1837.          Goto B
  1838.       End If 
  1839.    Next 
  1840.    B:
  1841. End Proc[PF]
  1842. Procedure ROSENBIFF
  1843.    On Error Proc MAINERROR
  1844.    Dim IMA(1,2),YMA(2)
  1845.    YMA(1)=20 : YMA(2)=60 : IMA(0,0)=15 : IMA(0,1)=19 : IMA(0,2)=16 : IMA(1,0)=17 : IMA(1,1)=20 : IMA(1,2)=18
  1846.    LA8PV=X Mouse : LA9PV=Y Mouse : Hide On : X Mouse=128 : Y Mouse=42
  1847.    Limit Mouse 128,42 To 447,122
  1848.    B=Colour(7) : A=Colour(5)
  1849.    Screen Open 1,640,82,2,Hires
  1850.    Screen To Back 1 : Paper 0 : Pen 1 : View : Home : Curs Off : Cls 0
  1851.    Print "Name";At(35,);"Type";At(54,);"Disks & disk numbers"
  1852.    Print String$("‰",76)
  1853.    Wind Open 2,0,16,76,8,0
  1854.    Pen 1 : Paper 0 : Hide On : Curs Off : Clw 
  1855.    Palette B,A : Colour 19,$440 : Colour 18,$770 : Colour 17,$AA0
  1856.    Change Mouse 20
  1857.    For I=0 To 2 : Paste Bob 623,YMA(I),IMA(0,I)-4 : Next 
  1858.    Bob Update 
  1859.    If POSTER<7
  1860.       FPO=0
  1861.       TPO=7
  1862.    Else 
  1863.       If POSTEN+7>POSTER
  1864.          FPO=POSTER-7
  1865.          TPO=POSTER
  1866.       Else 
  1867.          FPO=POSTEN
  1868.          TPO=POSTEN+7
  1869.       End If 
  1870.    End If 
  1871.    L=0
  1872.    For I=FPO To TPO
  1873.       SPRE_DEM[I]
  1874.       If TEM$(4)<>TEM$(5)
  1875.          Print At(0,L);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);" to ";Left$(TEM$(5)+Space$(5),5);
  1876.       Else 
  1877.          Print At(0,L);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);
  1878.       End If 
  1879.       Inc L
  1880.       VISES=I
  1881.    Next 
  1882.    Screen Display 1,,42,,
  1883.    For I=42 To 42+82 Step 2
  1884.       Screen Display 0,,I,,
  1885.       Wait Vbl 
  1886.    Next 
  1887.    Show On 
  1888.    Do 
  1889.       Repeat 
  1890.          MX=X Screen(X Mouse)
  1891.          MY=Y Screen(Y Mouse)
  1892.          Z=0
  1893.          If MX>623 and MX<641 and MY>0 and MY<20
  1894.             Z=1
  1895.          End If 
  1896.          If MX>623 and MX<641 and MY>19 and MY<60
  1897.             Z=2
  1898.          End If 
  1899.          If MX>623 and MX<641 and MY>59 and MY<80
  1900.             Z=3
  1901.          End If 
  1902.       Until Mouse Key=1 and Z>0
  1903.       Paste Bob 623,YMA(Z-1),IMA(1,Z-1)-4
  1904.       Repeat 
  1905.          If Z=1 and ZZ=1
  1906.             Dec VISES
  1907.             If VISES<7
  1908.                VISES=7
  1909.             Else 
  1910.                SPRE_DEM[VISES-7]
  1911.                Locate 0,0
  1912.                Vscroll 1
  1913.                If TEM$(4)<>TEM$(5)
  1914.                   Print At(0,0);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);" to ";Left$(TEM$(5)+Space$(5),5);
  1915.                Else 
  1916.                   Print At(0,0);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);
  1917.                End If 
  1918.             End If 
  1919.          End If 
  1920.          If Z=3 and ZZ=3
  1921.             Inc VISES
  1922.             If VISES>POSTER
  1923.                VISES=POSTER
  1924.             Else 
  1925.                SPRE_DEM[VISES]
  1926.                Locate 0,7
  1927.                Vscroll 3
  1928.                If TEM$(4)<>TEM$(5)
  1929.                   Print At(0,7);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);" to ";Left$(TEM$(5)+Space$(5),5);
  1930.                Else 
  1931.                   Print At(0,7);Left$(TEM$(1),34);At(35,);Left$(TEM$(2),18);At(54,);Left$(TEM$(3)+Space$(5),5);" ";Left$(TEM$(4)+Space$(5),5);
  1932.                End If 
  1933.             End If 
  1934.          End If 
  1935.          MX=X Screen(X Mouse)
  1936.          MY=Y Screen(Y Mouse)
  1937.          ZZ=0
  1938.          If MX>623 and MX<641 and MY>0 and MY<20
  1939.             ZZ=1
  1940.          End If 
  1941.          If MX>623 and MX<641 and MY>19 and MY<60
  1942.             ZZ=2
  1943.          End If 
  1944.          If MX>623 and MX<641 and MY>59 and MY<80
  1945.             ZZ=3
  1946.          End If 
  1947.       Until Mouse Key=0
  1948.       Paste Bob 623,YMA(Z-1),IMA(0,Z-1)-4
  1949.       If Z=2 and ZZ=2 Then Goto HITTT
  1950.    Loop 
  1951.    '
  1952.    HITTT:
  1953.    Bob Update Off 
  1954.    Hide On 
  1955.    For I=42+82 To 42 Step -2
  1956.       Screen Display 0,,I,,
  1957.       Wait Vbl 
  1958.    Next 
  1959.    Screen Close 1
  1960.    Screen Display 0,,42,,
  1961.    Screen 0
  1962.    X Mouse=LA8PV
  1963.    Y Mouse=LA9PV
  1964.    Limit Mouse 342,127 To 438,282
  1965.    Change Mouse 4
  1966.    X Mouse=LA8PV
  1967.    Y Mouse=LA9PV
  1968.    View 
  1969.    Show On 
  1970.    If VISES<7
  1971.       VISES=7
  1972.    End If 
  1973.    POSTEN=VISES-7
  1974.    VIS_DET : VIS_DEM
  1975. End Proc
  1976. Procedure FYTTIGRISEN[I,COMMA]
  1977.    On Error Proc FEILHANDLE
  1978.    Resume Label PRTF2
  1979.    If PRT_LIN=0
  1980.       CLKFHSMLF$="Name"+Space$(26-3)+"  Type"+Space$(26-10)+"  Disks  From   To   "
  1981.       Gosub TST
  1982.       Print #1,CLKFHSMLF$
  1983.       Inc PRT_LIN
  1984.       Gosub TST
  1985.       Print #1,String$("=",Len(CLKFHSMLF$))
  1986.       Inc PRT_LIN
  1987.    End If 
  1988.    SPRE_DEM[I]
  1989.    Gosub TST
  1990.    Print #1,Left$(TEM$(1)+Space$(30),30-3)+"  "+Left$(TEM$(2)+Space$(30-10),30-10)+"  "+Right$(Space$(5)+(TEM$(3)-" "),5)+"  "+Left$(TEM$(4)+Space$(5),5)+"  "+Left$(TEM$(5)+Space$(5),5)
  1991.    Inc PRT_LIN
  1992.    Gosub SJK_PL
  1993.    If COMMA=True
  1994.       If PRT_DEF(5)=1 and PRT_DEF(6)=2
  1995.          For YYPY=6 To 1 Step -1
  1996.             Exit If LIN$(YYPY)-" "<>""
  1997.          Next 
  1998.          If YYPY>=1
  1999.             For Y=1 To YYPY
  2000.                Gosub TST
  2001.                Print #1,"  "+LIN$(Y)
  2002.                Inc PRT_LIN
  2003.                Gosub SJK_PL
  2004.             Next 
  2005.          End If 
  2006.       End If 
  2007.    End If 
  2008.    Pop Proc
  2009.    '
  2010.    SJK_PL:
  2011.    If PRT_DEF(3)=1 and PRT_DEF(4)=2
  2012.       If PRT_LIN>=58
  2013.          Gosub TST
  2014.          Print #1,Chr$(12)
  2015.          PRT_LIN=0
  2016.       End If 
  2017.    End If 
  2018.    '
  2019.    TST:
  2020.    If Mouse Key=>2
  2021.       REQUEST[Pen$(2)+"**** BREAK DETECTED ****"+Pen$(0),"DO YOU WANT TO ABORT THE PRINTING?","",198,124,379,173,2,False,X Mouse,Y Mouse]
  2022.       NGFSA=Param
  2023.       If NGFSA=True
  2024.          BRK_FLAG=True
  2025.          Pop Proc
  2026.       End If 
  2027.    End If 
  2028.    Return 
  2029.    PRTF2:
  2030.    ERR_FLAG=True
  2031.    MESSAGE2["","","","",False]
  2032. End Proc
  2033. Procedure SJEKK
  2034.    On Error Proc MAINERROR
  2035.    If LAGRET=True
  2036.       _OK=True
  2037.    Else 
  2038.       REQUEST[Pen$(2)+"THE FILE IS NOT SAVED !",Pen$(1)+"*************************"+Pen$(0),"DO YOU WANT TO SAVE IT?",342,127,438,282,1,False,X Mouse,Y Mouse]
  2039.       HM=Param
  2040.       If HM=True
  2041.          DASK[2]
  2042.          If LAGRET=True
  2043.             _OK=True
  2044.          Else 
  2045.             _OK=False
  2046.          End If 
  2047.       Else 
  2048.          _OK=True
  2049.       End If 
  2050.    End If 
  2051. End Proc[_OK]
  2052. Procedure SAMLIKN[FIN$,Nº]
  2053.    L=Min(Len(FIN$),Len(TEM$(Nº)))
  2054.    If Upper$(Left$(FIN$,L))=Upper$(Left$(TEM$(Nº),L)) Then HVA=1 Else HVA=0
  2055. End Proc[HVA]
  2056. Procedure _FIXIT
  2057.    _VAL[TEM$(3)] : R=Param : TEM$(3)=Str$(R)-" "
  2058. End Proc
  2059. Procedure MAINERROR
  2060.    If MESS_ON=True
  2061.       Put Block 56
  2062.       Del Block 56
  2063.       MESS_ON=False
  2064.    End If 
  2065.    ERR=Errn
  2066.    If ERR=24
  2067.       Inc LOMEM
  2068.       If LOMEM<8
  2069.          Resume 
  2070.       End If 
  2071.       Del Cblock 1
  2072.       Del Cblock 2
  2073.       Del Block 9
  2074.       Screen Close 3
  2075.       Screen Close 0
  2076.       Screen Open 0,640,20,2,Hires
  2077.       Curs Off 
  2078.       Palette $FF0,$F00
  2079.       Screen Display 0,,120,,
  2080.       Cls 0
  2081.       Centre "* * *  OUT OF MEMORY.  I'LL HAVE TO QUIT.  * * *"
  2082.       Wait Key 
  2083.       Screen Close 0
  2084.       Edit 
  2085.    End If 
  2086.    Inc MERRA
  2087.    If MERRA<5
  2088.       Screen Open 7,640,20,2,Hires
  2089.       Curs Off 
  2090.       Palette $FF0,$F00
  2091.       Screen Display 7,,120,,
  2092.       Cls 0
  2093.       Centre "* *  ERROR !!! IF IT REPEATS, PLEASE REPORT.  * *"+Cdown$
  2094.       Centre "[ THE ERROR NUMBER IS:"+Str$(ERR)+" ]"
  2095.       Wait Key 
  2096.       Screen Close 7
  2097.       Resume Next 
  2098.    Else 
  2099.       Del Cblock 1
  2100.       Del Cblock 2
  2101.       Del Block 9
  2102.       Screen Close 3
  2103.       Screen Close 0
  2104.       Screen Open 0,640,20,2,Hires
  2105.       Curs Off 
  2106.       Palette $FF0,$F00
  2107.       Screen Display 0,,120,,
  2108.       Cls 0
  2109.       Centre "* * *  FATAL ERROR !!  I'LL HAVE TO QUIT.  * * *"+Cdown$
  2110.       Centre "[ THE ERROR NUMBER IS:"+Str$(ERR)+" ]"
  2111.       Wait Key 
  2112.       Screen Close 0
  2113.       Edit 
  2114.    End If 
  2115. End Proc
  2116. Procedure SJEKK_MINNE
  2117.    FRE_M=Free
  2118.    If FRE_M<5000
  2119.       MESSAGE[String$("*",34),"LOW ON FREE WORKSPACE!","SAVE NOW!!!",String$("*",34),50*5]
  2120.       SAV_FLAG=True
  2121.    Else 
  2122.       SAV_FLAG=False
  2123.    End If 
  2124. End Proc
  2125. Procedure _VAL[A$]
  2126.    B$=Right$("     "+A$,5)
  2127.    G=1
  2128.    T=0
  2129.    C=0
  2130.    For P=5 To 1 Step -1
  2131.       C$=Mid$(B$,P,1)
  2132.       If C$=" " Then C$="0"
  2133.       For I=0 To 9
  2134.          F$=Str$(I)-" "
  2135.          If C$=F$ Then C=I
  2136.       Next 
  2137.       T=T+(C*G)
  2138.       G=G*10
  2139.    Next 
  2140. End Proc[T]
  2141. Procedure _COPYRIGHT[YDISPLAY]
  2142.    Auto View Off : Unpack 7 To 7 : For Y=2 To Screen Height/2 Step 2 : Screen Display 7,,YDISPLAY+Screen Height/2-Y,,Y*2 : Screen Offset 7,,Screen Height/2-Y : View : Wait Vbl : Next 
  2143.    Wait 50*3 : For Y=Screen Height/2 To 0 Step -8 : Screen Display 7,,YDISPLAY+Screen Height/2-Y,,Y*2 : Screen Offset 7,,Screen Height/2-Y : View : Wait Vbl : Next : Screen Close 7 : Auto View On 
  2144. End Proc
  2145. Procedure DISK
  2146.    On Error Proc MAINERROR
  2147.    Erase 15 : Reserve As Work 15,261
  2148.    Unpack 12 To 1 : Screen Display 1,,60,,
  2149.    Paste Icon 455,79,Abs(1-VICON)+6
  2150.    View : Limit Mouse 
  2151.    Colour 19,$440 : Colour 18,$770 : Colour 17,$AA0
  2152.    Paper 3 : Pen 2 : Wind Open 1,16,8,38,18
  2153.    Dim FILNA$(400),FILN2$(400),X1(24),Y1(24),X2(24),Y2(24),EDLIN$(2)
  2154.    LES_OK=False
  2155.    If FILE_NAME$<>"Unnamed...." Then EDLIN$(2)=FILE_NAME$ Else EDLIN$(2)=""
  2156.    TLEN=Len(EDLIN$(2)) : TPOS=TLEN+1 : MTLEN=23
  2157.    LES_OK=False
  2158.    Window 0
  2159.    Pen 2
  2160.    Print At(52,7);Left$(EDLIN$(2)+Space$(MTLEN),MTLEN+1)
  2161.    If TPOS=TLEN+1
  2162.       Pen 1
  2163.       Print At(51+TPOS,7);"|"
  2164.    Else 
  2165.       Paper 2
  2166.       Pen 0
  2167.       Print At(51+TPOS,7);Mid$(EDLIN$(2),TPOS,1)
  2168.       Paper 3
  2169.    End If 
  2170.    Pen 2
  2171.    Window 1
  2172.    Gosub MAK_ZON
  2173.    LES_DIR:
  2174.    LES_OK=False
  2175.    RSIZ=0
  2176.    VIPOS=0
  2177.    SIZTO=0
  2178.    FIL=0
  2179.    RFIL=0
  2180.    For I=0 To 400 : FILNA$(I)=¥$ : FILN2$(I)=¥$ : Next 
  2181.    '
  2182.    A:
  2183.    Timer=0 : Window 0
  2184.    Print At(50,2);Left$(Str$(FIL)+" files,"+Str$(SIZTO)+" bytes."+Space$(27),27)
  2185.    Window 1 : Clw 
  2186.    If Exist(DEV$)
  2187.       Dir$=DEV$ : DISKNAVN$=Dir$ : DEV$=DISKNAVN$
  2188.    Else 
  2189.       NEW_DMESSAGE[DEV$]
  2190.       P=Param
  2191.       If P=True
  2192.          Goto A
  2193.       Else 
  2194.          DEVS
  2195.          PA$=Param$
  2196.          If PA$<>""
  2197.             DEV$=PA$
  2198.             Goto A
  2199.          Else 
  2200.             Goto HELLO
  2201.          End If 
  2202.       End If 
  2203.    End If 
  2204.    '
  2205.    A$=DEV$+Chr$(0)
  2206.    Dreg(1)=Varptr(A$)
  2207.    Dreg(2)=-2
  2208.    A=Doscall(-84)
  2209.    If A=0
  2210.       Goto A
  2211.    End If 
  2212.    LOCSAV=A
  2213.    Dreg(1)=LOCSAV
  2214.    Dreg(2)=Start(15)
  2215.    A=Doscall(-102)
  2216.    MORN[Start(15)+8,108]
  2217.    Window 0
  2218.    Pen 2
  2219.    If Len(DISKNAVN$)=<24
  2220.       Print At(52,5);Left$(DISKNAVN$+Space$(24),24)
  2221.    Else 
  2222.       Print At(52,5);Right$(DISKNAVN$,24)
  2223.    End If 
  2224.    Print At(50,2);Left$(Str$(FIL)+" files,"+Str$(SIZTO)+" bytes."+Space$(27),27)
  2225.    Window 1
  2226.    '
  2227.    Do 
  2228.       If LES_OK=False and FAG=0
  2229.          Gosub LEDIR
  2230.       End If 
  2231.       Add FAG,1,0 To 2
  2232.       Z=Mouse Zone
  2233.       MK=Mouse Key
  2234.       If MK=0 and LAF>0 and LAF<10
  2235.          Gr Writing 2+1
  2236.          Bar X1(LAF),Y1(LAF) To X2(LAF),Y2(LAF)
  2237.          Gr Writing 0
  2238.          LAF=0
  2239.       End If 
  2240.       If MK=1 and Z<>8 and Z<>9 and LAF>0 and LAF<10
  2241.          Gr Writing 2+1
  2242.          Bar X1(LAF),Y1(LAF) To X2(LAF),Y2(LAF)
  2243.          Gr Writing 0
  2244.          LAF=0
  2245.       End If 
  2246.       If MK=1
  2247.          If Z=2 and LES_OK=True
  2248.             Add VICON,1,1 To 2
  2249.             Paste Icon 455,79,Abs(1-VICON)+6
  2250.             Repeat 
  2251.             Until Mouse Key=0
  2252.             Gosub INFO
  2253.          End If 
  2254.          If Z>0 and Z<>2
  2255.             If Z<>8 and Z<>9 and Z<10
  2256.                Gr Writing 2+1
  2257.                Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2258.                Repeat 
  2259.                   ZZ=Mouse Zone
  2260.                   If LES_OK=False
  2261.                      Gosub LEDIR
  2262.                   End If 
  2263.                Until Mouse Key=0
  2264.                Gr Writing 2+1
  2265.                Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2266.                Gr Writing 0
  2267.             End If 
  2268.             ZZ=Mouse Zone
  2269.             If ZZ=Z and(Z=9 or Z=8)
  2270.                If LAF=0
  2271.                   LAF=Z
  2272.                   If Z<10
  2273.                      Gr Writing 2+1
  2274.                      Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2275.                   End If 
  2276.                End If 
  2277.                If Z=8 and FIL>18 and VIPOS>0
  2278.                   Locate 0,0
  2279.                   Vscroll 1
  2280.                   Dec VIPOS
  2281.                   I=VIPOS
  2282.                   A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2283.                   If Left$(A$,1)="-"
  2284.                      TGFD=0
  2285.                   Else 
  2286.                      TGFD=1
  2287.                   End If 
  2288.                   A$=Right$(A$,Len(A$)-1)
  2289.                   If TGFD=0
  2290.                      B$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2291.                      Print Left$(A$,28);At(30,);Right$(Space$(7)+B$,7);
  2292.                   Else 
  2293.                      Print Left$(A$,28);At(32,);"(Dir)";
  2294.                   End If 
  2295.                End If 
  2296.                If Z=9 and FIL>18 and VIPOS+17<FIL-1
  2297.                   Locate 0,17
  2298.                   Vscroll 3
  2299.                   Inc VIPOS
  2300.                   I=VIPOS+17
  2301.                   A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2302.                   If Left$(A$,1)="-"
  2303.                      TGFD=0
  2304.                   Else 
  2305.                      TGFD=1
  2306.                   End If 
  2307.                   A$=Right$(A$,Len(A$)-1)
  2308.                   If TGFD=0
  2309.                      B$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2310.                      Print Left$(A$,28);At(30,);Right$(Space$(7)+B$,7);
  2311.                   Else 
  2312.                      Print Left$(A$,28);At(32,);"(Dir)";
  2313.                   End If 
  2314.                End If 
  2315.             End If 
  2316.             If Z=1 or(Z>=3 and Z=<7) or Z>=10
  2317.                If Z=6 and ZZ=6
  2318.                   OK_RET=True
  2319.                   Goto HELLO
  2320.                End If 
  2321.                If Z=7 and ZZ=7
  2322.                   OK_RET=False
  2323.                   Goto HELLO
  2324.                End If 
  2325.                If Z=3 and ZZ=3
  2326.                   If Right$(DEV$,1)<>":"
  2327.                      For I=Len(DEV$)-1 To 0 Step -1
  2328.                         DEV$=Left$(DEV$,I)
  2329.                         Exit If Right$(DEV$,1)=":" or(Right$(DEV$,1)="/")
  2330.                      Next 
  2331.                      Goto LES_DIR
  2332.                   End If 
  2333.                End If 
  2334.                If Z=5 and ZZ=5
  2335.                   Goto LES_DIR
  2336.                End If 
  2337.                If Z=1 and ZZ=1
  2338.                   Sort FILNA$(0)
  2339.                   For I=VIPOS To VIPOS+17
  2340.                      Window 1
  2341.                      Locate 0,I-VIPOS
  2342.                      Print String$(" ",37);
  2343.                      Locate 0,I-VIPOS
  2344.                      If I<FIL
  2345.                         A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2346.                         If Left$(A$,1)="-"
  2347.                            TGFD=0
  2348.                         Else 
  2349.                            TGFD=1
  2350.                         End If 
  2351.                         A$=Right$(A$,Len(A$)-1)
  2352.                         If TGFD=0
  2353.                            B$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2354.                            Print Left$(A$,28);At(30,);Right$(Space$(7)+B$,7);
  2355.                         Else 
  2356.                            Print Left$(A$,28);At(32,);"(Dir)";
  2357.                         End If 
  2358.                      End If 
  2359.                   Next 
  2360.                End If 
  2361.                If Z=4 and ZZ=4
  2362.                   DEVS
  2363.                   PA$=Param$
  2364.                   If Upper$(PA$)=Upper$(Left$(DISKNAVN$,Instr(DISKNAVN$,":"))) or(PA$="")
  2365.                      For I=VIPOS To VIPOS+17
  2366.                         Window 1
  2367.                         Locate 0,I-VIPOS
  2368.                         Print String$(" ",37);
  2369.                         Locate 0,I-VIPOS
  2370.                         If I<FIL
  2371.                            A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2372.                            If Left$(A$,1)="-"
  2373.                               TGFD=0
  2374.                            Else 
  2375.                               TGFD=1
  2376.                            End If 
  2377.                            A$=Right$(A$,Len(A$)-1)
  2378.                            If TGFD=0
  2379.                               B$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2380.                               Print Left$(A$,28);At(30,);Right$(Space$(7)+B$,7);
  2381.                            Else 
  2382.                               Print Left$(A$,28);At(32,);"(Dir)";
  2383.                            End If 
  2384.                         End If 
  2385.                      Next 
  2386.                   Else 
  2387.                      DEV$=PA$
  2388.                      Goto LES_DIR
  2389.                   End If 
  2390.                End If 
  2391.                If Z>=10 and Z=<27 and Z=ZZ
  2392.                   I=Z-10+VIPOS
  2393.                   If FILNA$(I)<>¥$
  2394.                      A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2395.                      If Left$(A$,1)="-"
  2396.                         FILTYP=0
  2397.                      Else 
  2398.                         FILTYP=1
  2399.                      End If 
  2400.                      LCURRFIL$=CURRFIL$
  2401.                      CURRFIL$=Right$(A$,Len(A$)-1)
  2402.                      If LCURRFIL$=CURRFIL$
  2403.                         Inc VLGT
  2404.                         If VLGT>2
  2405.                            VLGT=0
  2406.                         End If 
  2407.                         If VLGT>=1
  2408.                            Gr Writing 2+1
  2409.                            Bar 16,8*(Z-9) To 312,8*(Z-9)+7
  2410.                            Repeat 
  2411.                            Until Mouse Key=0
  2412.                            Bar 16,8*(Z-9) To 312,8*(Z-9)+7
  2413.                            Gr Writing 0
  2414.                         End If 
  2415.                         Timer=0
  2416.                      Else 
  2417.                         VLGT=0
  2418.                         LCURRFIL$=""
  2419.                         Timer=55
  2420.                      End If 
  2421.                      FILSIZ$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2422.                      If FILTYP=0
  2423.                         EDLIN$(2)=CURRFIL$
  2424.                         TLEN=Len(EDLIN$(2))
  2425.                         TPOS=TLEN+1
  2426.                         Window 0
  2427.                         Pen 2
  2428.                         Print At(52,7);Left$(EDLIN$(2)+Space$(MTLEN),MTLEN+1)
  2429.                         If TPOS=TLEN+1
  2430.                            Pen 1
  2431.                            Print At(51+TPOS,7);"|"
  2432.                         Else 
  2433.                            Paper 2
  2434.                            Pen 0
  2435.                            Print At(51+TPOS,7);Mid$(EDLIN$(2),TPOS,1)
  2436.                            Paper 3
  2437.                         End If 
  2438.                         Pen 2
  2439.                         Window 1
  2440.                      End If 
  2441.                      If VLGT=2 and Timer=<30
  2442.                         If FILTYP=1
  2443.                            DEV$=DEV$+CURRFIL$+"/"
  2444.                            Goto LES_DIR
  2445.                         End If 
  2446.                         If FILTYP=0
  2447.                            OK_RET=True
  2448.                            Goto HELLO
  2449.                         End If 
  2450.                      End If 
  2451.                   End If 
  2452.                End If 
  2453.             End If 
  2454.          End If 
  2455.       End If 
  2456.       I$=Inkey$
  2457.       If Asc(I$)=13
  2458.          OK_RET=True
  2459.          Goto HELLO
  2460.       End If 
  2461.       If I$<>""
  2462.          Window 0
  2463.          AAA=Asc(I$)
  2464.          SAC=Scancode
  2465.          KSH=Key Shift
  2466.          If SAC=79 and TPOS>1 and KSH<>1 and KSH<>2 and KSH<>32
  2467.             Dec TPOS
  2468.          End If 
  2469.          If SAC=78 and TPOS=<TLEN and KSH<>1 and KSH<>2 and KSH<>32
  2470.             Inc TPOS
  2471.          End If 
  2472.          If AAA<>47 and AAA<>127 and((AAA>31 and AAA<127) or(AAA>160)) and TLEN<MTLEN
  2473.             TT$=Left$(EDLIN$(2),TPOS-1)
  2474.             TT2$=Right$(EDLIN$(2),TLEN-TPOS+1)
  2475.             EDLIN$(2)=TT$+I$+TT2$
  2476.             Inc TLEN
  2477.             Inc TPOS
  2478.          End If 
  2479.          If TPOS>1 and SAC=65
  2480.             TT$=Left$(EDLIN$(2),TPOS-2)
  2481.             TT2$=Right$(EDLIN$(2),TLEN-TPOS+1)
  2482.             EDLIN$(2)=TT$+TT2$
  2483.             Dec TLEN
  2484.             Dec TPOS
  2485.          End If 
  2486.          If SAC=70 and TPOS=<TLEN
  2487.             TT$=Left$(EDLIN$(2),TPOS-1)
  2488.             TT2$=Right$(EDLIN$(2),TLEN-TPOS)
  2489.             EDLIN$(2)=TT$+TT2$
  2490.             Dec TLEN
  2491.          End If 
  2492.          If(KSH=1 or KSH=2) and SAC>77 and SAC<80
  2493.             If SAC=78
  2494.                TPOS=TLEN+1
  2495.             Else 
  2496.                TPOS=1
  2497.             End If 
  2498.          End If 
  2499.          If SAC=78 and TPOS=<TLEN and KSH=32
  2500.             TT=Instr(Right$(EDLIN$(2),TLEN-TPOS)," ")
  2501.             If TT>0
  2502.                Add TPOS,TT
  2503.             Else 
  2504.                TPOS=TLEN+1
  2505.             End If 
  2506.          End If 
  2507.          If SAC=79 and KSH=32
  2508.             TT$=Flip$(Left$(EDLIN$(2),TPOS-1))
  2509.             TT=Instr(TT$," ")
  2510.             If TT>0
  2511.                Add TPOS,-TT
  2512.             Else 
  2513.                TPOS=1
  2514.             End If 
  2515.          End If 
  2516.          Pen 2
  2517.          Print At(52,7);Left$(EDLIN$(2)+Space$(MTLEN),MTLEN+1)
  2518.          If TPOS=TLEN+1
  2519.             Pen 1
  2520.             Print At(51+TPOS,7);"|"
  2521.          Else 
  2522.             Paper 2
  2523.             Pen 0
  2524.             Print At(51+TPOS,7);Mid$(EDLIN$(2),TPOS,1)
  2525.             Paper 3
  2526.          End If 
  2527.          Pen 2
  2528.          Window 1
  2529.       End If 
  2530.    Loop 
  2531.    '
  2532.    LEDIR:
  2533.    Dreg(1)=LOCSAV
  2534.    Dreg(2)=Start(15)
  2535.    A=Doscall(-108)
  2536.    If A<>True
  2537.       LES_OK=True
  2538.       Return 
  2539.    End If 
  2540.    TYPE=Leek(Start(15)+4)
  2541.    SIZE=Leek(Start(15)+124)
  2542.    MORN[Start(15)+8,108]
  2543.    P$=Param$
  2544.    If VICON=1
  2545.       If Upper$(Right$(P$,5))<>Upper$(".info")
  2546.          FILN2$(RFIL)=Left$(Str$(TYPE),1)+P$+Chr$(1)+Str$(SIZE)
  2547.          Inc RFIL
  2548.          Add RSIZ,SIZE
  2549.       End If 
  2550.       FILNA$(FIL)=Left$(Str$(TYPE),1)+P$+Chr$(1)+Str$(SIZE)
  2551.       Add SIZTO,SIZE
  2552.       Inc FIL
  2553.       If FIL-1<18
  2554.          Locate 0,FIL-1
  2555.          If TYPE<0
  2556.             Print Left$(P$,28);At(30,);Right$(Space$(7)+Str$(SIZE),7);
  2557.          Else 
  2558.             Print Left$(P$,28);At(32,);"(Dir)";
  2559.          End If 
  2560.       End If 
  2561.       Window 0
  2562.       Print At(50,2);Left$(Str$(FIL)+" files,"+Str$(SIZTO)+" bytes."+Space$(27),27)
  2563.       Window 1
  2564.    Else 
  2565.       If Upper$(Right$(P$,5))<>Upper$(".info")
  2566.          FILNA$(FIL)=Left$(Str$(TYPE),1)+P$+Chr$(1)+Str$(SIZE)
  2567.          Inc FIL
  2568.          Add SIZTO,SIZE
  2569.       End If 
  2570.       FILN2$(RFIL)=Left$(Str$(TYPE),1)+P$+Chr$(1)+Str$(SIZE)
  2571.       Add RSIZ,SIZE
  2572.       Inc RFIL
  2573.       If Upper$(Right$(P$,5))<>Upper$(".info")
  2574.          If FIL-1<18
  2575.             Locate 0,FIL-1
  2576.             If TYPE<0
  2577.                Print Left$(Param$,28);At(30,);Right$(Space$(7)+Str$(SIZE),7);
  2578.             Else 
  2579.                Print Left$(Param$,28);At(32,);"(Dir)";
  2580.             End If 
  2581.          End If 
  2582.          Window 0
  2583.          Print At(50,2);Left$(Str$(FIL)+" files,"+Str$(SIZTO)+" bytes."+Space$(27),27)
  2584.          Window 1
  2585.       End If 
  2586.    End If 
  2587.    Return 
  2588.    '
  2589.    INFO:
  2590.    Sort FILN2$(0)
  2591.    VIPOS=0
  2592.    For I=0 To Max(RFIL,FIL)
  2593.       X$=FILN2$(I)
  2594.       FILN2$(I)=FILNA$(I)
  2595.       FILNA$(I)=X$
  2596.       If I<18
  2597.          If FILNA$(I)=¥$
  2598.             Locate 0,I
  2599.             Print String$(" ",37);
  2600.          Else 
  2601.             Locate 0,I
  2602.             A$=Left$(FILNA$(I),Instr(FILNA$(I),Chr$(1))-1)
  2603.             If Left$(A$,1)="-"
  2604.                TGFD=0
  2605.             Else 
  2606.                TGFD=1
  2607.             End If 
  2608.             A$=Right$(A$,Len(A$)-1)
  2609.             If TGFD=0
  2610.                B$=Right$(FILNA$(I),Len(FILNA$(I))-Instr(FILNA$(I),Chr$(1)))-" "
  2611.                Print Left$(A$+Space$(28),28);At(30,);Right$(Space$(7)+B$,7);
  2612.             Else 
  2613.                Print Left$(A$+Space$(28),28);At(30,);"  (Dir)";
  2614.             End If 
  2615.          End If 
  2616.       End If 
  2617.    Next 
  2618.    Swap FIL,RFIL
  2619.    Swap SIZTO,RSIZ
  2620.    Window 0
  2621.    Print At(50,2);Left$(Str$(FIL)+" files,"+Str$(SIZTO)+" bytes."+Space$(27),27)
  2622.    Window 1
  2623.    Return 
  2624.    '
  2625.    ZON_DAT:
  2626.    Data 375,79,447,95,455,79,607,95,375,103,447,119,455,103,527,119
  2627.    Data 535,103,607,119,375,127,479,143,503,127,607,143,328,8,344,24,328,135,344,151
  2628.    '
  2629.    MAK_ZON:
  2630.    Reserve Zone 27 : Restore ZON_DAT
  2631.    For I=1 To 9
  2632.       Read X1(I),Y1(I),X2(I),Y2(I)
  2633.       Set Zone I,X1(I),Y1(I) To X2(I),Y2(I)
  2634.    Next 
  2635.    Window 1
  2636.    For I=10 To 27
  2637.       Locate 0,I-10
  2638.       Print Zone$(String$(" ",37),I);
  2639.    Next 
  2640.    Return 
  2641.    '
  2642.    HELLO:
  2643.    If OK_RET=True and(EDLIN$(2)<>"")
  2644.       RET$=DISKNAVN$+EDLIN$(2)
  2645.    Else 
  2646.       RET$=""
  2647.    End If 
  2648.    Screen Close 1
  2649. End Proc[RET$]
  2650. Procedure DEVS
  2651.    On Error Proc MAINERROR
  2652.    Dim X1(24),Y1(24),X2(24),Y2(24),DEV$(128)
  2653.    LES_OK=False : VIPOS=0 : Gosub MAK_ZON : Window 0
  2654.    Print At(50,2);Left$(" Select a device, please."+Space$(27),27)
  2655.    LES_DEV:
  2656.    FRST=False
  2657.    Window 1 : Clw : Restore DRIV : Inverse On 
  2658.    For I=0 To 128 : DEV$(I)="" : Next : DEV=0 : Read KAAREW
  2659.    For N=0 To KAAREW : Read DEV$(DEV) : If Drive(DEV$(DEV))=-1 Then Inc DEV
  2660.    Print At(1,DEV-1);Left$(DEV$(DEV-1),35); : Next : JYNE=DEV
  2661.    Inverse Off : LES_OK=False : VIPOS=0 : SELDEV$=""
  2662.    Window 0 : Print At(52,5);Left$(SELDEV$+Space$(24),24)
  2663.    Timer=0 : Window 1
  2664.    Do 
  2665.       If LES_OK=False
  2666.          Gosub LEDEV
  2667.       End If 
  2668.       Z=Mouse Zone
  2669.       If Z<5 Then Z=0
  2670.       MK=Mouse Key
  2671.       If MK=0 and LAF>0 and LAF<10
  2672.          Gr Writing 2+1
  2673.          Bar X1(LAF),Y1(LAF) To X2(LAF),Y2(LAF)
  2674.          Gr Writing 0
  2675.          LAF=0
  2676.       End If 
  2677.       If MK=1 and Z<>8 and Z<>9 and LAF>0 and LAF<10
  2678.          Gr Writing 2+1
  2679.          Bar X1(LAF),Y1(LAF) To X2(LAF),Y2(LAF)
  2680.          Gr Writing 0
  2681.          LAF=0
  2682.       End If 
  2683.       If MK=1
  2684.          If Z>0 and Z<>2
  2685.             If Z<>8 and Z<>9 and Z<10
  2686.                Gr Writing 2+1
  2687.                Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2688.                Repeat 
  2689.                   ZZ=Mouse Zone
  2690.                   If LES_OK=False
  2691.                      Gosub LEDEV
  2692.                   End If 
  2693.                Until Mouse Key=0
  2694.                Gr Writing 2+1
  2695.                Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2696.                Gr Writing 0
  2697.             End If 
  2698.             ZZ=Mouse Zone
  2699.             If ZZ=Z and(Z=9 or Z=8)
  2700.                If LAF=0
  2701.                   LAF=Z
  2702.                   If Z<10
  2703.                      Gr Writing 2+1
  2704.                      Bar X1(Z),Y1(Z) To X2(Z),Y2(Z)
  2705.                   End If 
  2706.                End If 
  2707.                If Z=8 and DEV>18 and VIPOS>0
  2708.                   Window 1
  2709.                   Locate 1,0
  2710.                   Vscroll 1
  2711.                   Dec VIPOS
  2712.                   I=VIPOS
  2713.                   If I<6 : Inverse On : End If 
  2714.                   Print Left$(DEV$(I),35);
  2715.                   Inverse Off 
  2716.                   Wait Vbl 
  2717.                End If 
  2718.                If Z=9 and DEV>18 and VIPOS+17<DEV-1
  2719.                   Window 1
  2720.                   Locate 1,17
  2721.                   Vscroll 3
  2722.                   Inc VIPOS
  2723.                   I=VIPOS+17
  2724.                   If I<6 : Inverse On : End If 
  2725.                   Print Left$(DEV$(I),35);
  2726.                   Inverse Off 
  2727.                   Wait Vbl 
  2728.                End If 
  2729.             End If 
  2730.             If Z>=5 and Z<>8 and Z<>9
  2731.                If Z=6 and ZZ=6 : Goto HELLO : End If 
  2732.                If Z=7 and ZZ=7 : SELDEV$="" : Goto HELLO : End If 
  2733.                If Z=5 and ZZ=5 : Goto LES_DEV : End If 
  2734.                If Z>=10 and Z=<27
  2735.                   I=Z-10+VIPOS
  2736.                   If DEV$(I)<>""
  2737.                      Gr Writing 2+1
  2738.                      Bar 16,8*(Z-9) To 312,8*(Z-9)+7
  2739.                      Repeat 
  2740.                      Until Mouse Key=0
  2741.                      Bar 16,8*(Z-9) To 312,8*(Z-9)+7
  2742.                      Gr Writing 0
  2743.                      If DED$=DEV$(I)
  2744.                         If Timer<30
  2745.                            SELDEV$=DEV$(I)
  2746.                            Goto HELLO
  2747.                         Else 
  2748.                            DED$=""
  2749.                         End If 
  2750.                      Else 
  2751.                         DED$=DEV$(I)
  2752.                         SELDEV$=DEV$(I)
  2753.                         Window 0
  2754.                         Print At(52,5);Left$(SELDEV$+Space$(24),24)
  2755.                         Window 1
  2756.                      End If 
  2757.                      Timer=0
  2758.                   End If 
  2759.                End If 
  2760.             End If 
  2761.          End If 
  2762.       End If 
  2763.    Loop 
  2764.    LEDEV:
  2765.    If FRST=False
  2766.       DEV$(DEV)=Dev First$("")
  2767.       FRST=True
  2768.    Else 
  2769.       DEV$(DEV)=Dev Next$
  2770.    End If 
  2771.    If DEV$(DEV)="" Then LES_OK=True : Return 
  2772.    DEV$(DEV)=Left$(DEV$(DEV),Instr(DEV$(DEV),":"))
  2773.    DEV$(DEV)=Right$(DEV$(DEV),Len(DEV$(DEV))-1)
  2774.    Restore NOPE : Read OI3
  2775.    For KBW=0 To OI3
  2776.       Read SJ$ : If Upper$(SJ$)=Upper$(DEV$(DEV)) Then Return 
  2777.    Next 
  2778.    Window 1 : If DEV<18 Then Print At(1,DEV);Left$(DEV$(DEV),35); : Inc DEV
  2779.    Return 
  2780.    '
  2781.    ZON_DAT:
  2782.    Data 375,79,447,95,455,79,607,95,375,103,447,119,455,103,527,119,535,103,607,119,375,127,479,143,503,127,607,143,328,8,344,24,328,135,344,151
  2783.    DRIV:
  2784.    Data 6,"Df0:","Df1:","Df2:","Df3:","Dh0:","Ram:","Rad:"
  2785.    NOPE:
  2786.    Data 15,"Df0:","Df1:","Df2:","Df3:","Dh0:","Ram:"
  2787.    Data "Rad:","L:","Libs:","FONTS:"
  2788.    Data "C:","Devs:","Par:","Ser:","Aux:","S:"
  2789.    MAK_ZON:
  2790.    Reserve Zone 27 : Restore ZON_DAT
  2791.    For I=1 To 9 : Read X1(I),Y1(I),X2(I),Y2(I) : Set Zone I,X1(I),Y1(I) To X2(I),Y2(I) : Next 
  2792.    Window 1 : For I=10 To 27 : Print At(0,I-10);Zone$(String$(" ",37),I); : Next : Return 
  2793.    HELLO:
  2794. End Proc[SELDEV$]
  2795. Procedure MORN[ST,LE]
  2796.    FAF$=Space$(LE) : SASS=Varptr(FAF$)
  2797.    For I=ST To ST+LE : If Peek(I)=0 : Goto C : End If : Poke SASS+ADSAD,Peek(I) : Inc ADSAD : Next : 
  2798.    C: FAF$=Left$(FAF$,ADSAD)
  2799. End Proc[FAF$]
  2800. Procedure NEW_DMESSAGE[DISK$]
  2801.    On Error Proc MAINERROR
  2802.    Hide On : I=Instr(DISK$,":") : If I=0 Then Pop Proc
  2803.    DISK$=Left$(DISK$,I) : DRIV=False
  2804.    If(Upper$(DISK$)=Upper$("Df0:")) or(Upper$(DISK$)=Upper$("Df1:")) or(Upper$(DISK$)=Upper$("Df2:")) or(Upper$(DISK$)=Upper$("Dh0:")) or(Upper$(DISK$)=Upper$("Ram:")) or(Upper$(DISK$)=Upper$("Rad:"))
  2805.       DRIV=True
  2806.       DISK$=Lower$(DISK$)
  2807.       Left$(DISK$,1)=Upper$(Left$(DISK$,1))
  2808.    End If 
  2809.    Screen Open 7,640,32,4,Hires : Screen Hide 7
  2810.    Flash Off : Get Palette 1 : Colour 2,Colour(3)
  2811.    Curs Off : Paper 3 : Ink 1 : Pen 1 : Cls 0
  2812.    Box 12,0 To 628,31 : Box 13,0 To 627,31 : Ink 3
  2813.    Bar 91,1 To 627-90+12,30 : Ink 2,3,3
  2814.    Bar 14,1 To 88,30 : Bar 628-90+14,1 To 626,30
  2815.    Ink 1,2,2 : Box 628-90+12,0 To 628-89+12,31
  2816.    Box 90,0 To 89,31 : Text 24,8,"LEFT MB"
  2817.    Text 28,18,"  to" : Text 24,28," Retry"
  2818.    Text 558,8,"RIGHT MB" : Text 566,18,"  to"
  2819.    Text 558,28," Cancel" : Ink 1,3,3
  2820.    Screen Display 7,,217,,32
  2821.    If DRIV=True
  2822.       Text 208,18,"Please insert a disk in "+DISK$
  2823.    Else 
  2824.       Text 232,12," Please insert volume "
  2825.       L=Text Length(DISK$)
  2826.       Text 320-(L/2),20,DISK$
  2827.    End If 
  2828.    A:
  2829.    Screen Show 7
  2830.    Repeat : MK=Mouse Key : Until Exist(DISK$) or MK=1 or MK=2
  2831.    Gr Writing 2+1
  2832.    If MK=0 Then Goto B
  2833.    If MK=1 Then Bar 12,0 To 90,31 Else Bar 628-90+12,0 To 628,31
  2834.    Repeat : Until Mouse Key=0
  2835.    If MK=1 Then Bar 12,0 To 90,31 Else Bar 628-90+12,0 To 628,31
  2836.    B:
  2837.    If MK=1 Then Goto A
  2838.    Screen Close 7 : Show On 
  2839.    If MK<>0 and Exist(DEV$)<>True Then _OK=False
  2840.    If MK=0 and Exist(DEV$)=True Then _OK=True
  2841.    If Exist(DEV$)=False Then _OK=False
  2842. End Proc[_OK]
  2843. Procedure INFO
  2844.    Repeat : Until Peek($BFEC01)=64
  2845.    XXM=Y Mouse : YYM=X Mouse
  2846.    Get Block 77,140,50,368,105
  2847.    BOKS_OPP[140,52,500,130,2,1,1]
  2848.    Pen 2 : Centre At(,7)+"****  INFO BOX  ****"
  2849.    Centre At(,8)+"" : Pen 0
  2850.    Print At(20,9);"LAST UPDATED:  "
  2851.    Y Mouse=160 : X Mouse=375 : Limit Mouse 200,95 To 378,170
  2852.    Paste Icon 160,118,4 : Paste Icon 418,118,4 : Ink 0,6,6
  2853.    Text 20*8,11*8+3,"ABOUT THE FILE:" : Text 168,126,"CHANGE" : Text 434,126,"EXIT"
  2854.    A: BOKS_OPP[280,69,480,81,1,0,0]
  2855.    BOKS_OPP[160,102-8,480,112,1,0,0]
  2856.    Print At(36,9);INFO$(1) : Print At(21,12);INFO$(2)
  2857.    Print At(21,13);INFO$(3)
  2858.    Repeat 
  2859.       X=X Screen(X Mouse) : Y=Y Screen(Y Mouse) : Z=0
  2860.       If X>159 and Y>117 and X<159+62 and Y<128 Then Z=1
  2861.       If X>417 and Y>117 and X<417+62 and Y<128 Then Z=2
  2862.    Until Mouse Key>0
  2863.    Repeat : Until Mouse Key=0
  2864.    If Z=1
  2865.       VINDUINN["ENTER THE DATE:",200,95,378,170,X Mouse,Y Mouse,23,False,INFO$(1)] : INFO$(1)=Param$
  2866.       VINDUINN["ENTER FIRST COMMENT LINE:",200,95,378,170,X Mouse,Y Mouse,38,False,INFO$(2)] : INFO$(2)=Param$
  2867.       VINDUINN["ENTER SECOND COMMENT LINE:",200,95,378,170,X Mouse,Y Mouse,38,False,INFO$(3)] : INFO$(3)=Param$ : Goto A
  2868.    End If 
  2869.    Put Block 77 : Del Block 77
  2870.    Y Mouse=XXM : X Mouse=YYM : Limit Mouse 342,127 To 438,282
  2871. End Proc
  2872. Procedure KLOKKE
  2873.    Add MIMAGE,1,6 To 13 : Change Mouse MIMAGE : Every On 
  2874. End Proc
  2875.