home *** CD-ROM | disk | FTP | other *** search
/ AppleDisk Magazine Miscellaneous Programs / AppleDisk_Misc_Programs_1.dsk / DISK.VOLUME.bas < prev    next >
Encoding:
BASIC Source File  |  1987-01-01  |  5.1 KB  |  121 lines

  1. 10  REM  **********************
  2. 20  REM  *     DISK.VOLUME    *
  3. 30  REM  * DI JAMES PATRIDGE  *
  4. 40  REM  * COPYRIGHT (C) 1988 *
  5. 50  REM  * BY APPLICANDO &    *
  6. 60  REM  * MICROSPARC, INC    *
  7. 70  REM  **********************
  8. 80  CLEAR : RESTORE : TEXT : HOME 
  9. 90 TB = 12:D$ =  CHR$(4)
  10. 100 N1$ = "000000000111":N2$ = "123456789012"
  11. 110 D1$ = "<< CAMBIO DEL DISK VOLUME DI CATALOG >>"
  12. 120  PRINT  TAB( 20 -( LEN(D1$)/2))D1$:D1$ = ""
  13. 130  PRINT 
  14. 140  FOR I = 0 TO 39: PRINT "%";: NEXT I
  15. 150  POKE 34,3: PRINT 
  16. 160  REM  :
  17. 170  REM  : STAMPA LE ISTRUZIONI
  18. 180  REM  :
  19. 190  PRINT "QUESTO PROGRAMMA PERSONALIZZERA' IL": PRINT "MESSAGGIO DI DISK VOLUME USATO DAL": PRINT "COMANDO CATALOG.": PRINT 
  20. 200  PRINT "PUOI FACILMENTE CAMBIARE IL TESTO DI": PRINT "'DISK VOLUME' IN QUALSIASI MESSAGGIO": PRINT "LUNGO NON PIU' DI 12 CARATTERI.": PRINT 
  21. 210  PRINT "SI POSSONO DISPORRE I MESSAGGI SU PIU'": PRINT "RIGHE INSERENDO UN CARATTERE < CRTL-J >": PRINT "NELLA STRINGA DEL MESSAGGIO.": PRINT 
  22. 220  VTAB 19: FOR I = 0 TO 39: PRINT "%";: NEXT I: VTAB 23
  23. 230  HTAB 5: PRINT "PREMI UN TASTO PER CONTINUARE => ";: GET A$
  24. 240  HOME : POKE 34,0
  25. 250  VTAB 6: CALL  -958
  26. 260 D1$ = "IMMETTI IL MESSAGGIO"
  27. 270  HTAB 13: VTAB 6: PRINT D1$: VTAB 20: FOR J = 0 TO 39: PRINT "%";: NEXT J: VTAB 22: PRINT "BYTE LIBERI = "TB
  28. 280  VTAB 8: INVERSE : HTAB 13: PRINT N1$: VTAB 9: HTAB 13: PRINT N2$: NORMAL 
  29. 290  VTAB 10: CALL  -868: HTAB 1
  30. 300  PRINT "        ==>";: INPUT " ";CS$
  31. 310  IF CS$ = ""  THEN CS$ = "DISK VOLUME "
  32. 320 TB = TB - LEN(CS$)
  33. 330  IF  LEN(CS$) >12  THEN  PRINT : PRINT "LUNGHEZZA MAX. MESSAGGIO 12 CARATTERI ": CALL  -1052: FOR J = 1 TO 2000: NEXT J:CS$ = "":TB = 12: GOTO 250
  34. 340  VTAB 6: CALL  -958: PRINT "TUO NUOVO MESSAGGIO : "
  35. 350  VTAB 10: PRINT CS$
  36. 360  PRINT : PRINT "TOTALE BYTE USATI => "12 -TB
  37. 370  VTAB 20: FOR I = 0 TO 39: PRINT "%";: NEXT I
  38. 380  PRINT : INPUT "IL MESSAGGIO E' ESATTO? (SI'/NO) => ";AN$
  39. 390  IF  LEFT$(AN$,1) < >"S"  THEN TB = 12: GOTO 250
  40. 400  REM  :
  41. 410  REM  : IMPOSTA I VALORI DI OFFSET PER
  42. 420  REM  : VARI MODI DI VISUALIZZAZIONE
  43. 430  REM  :
  44. 440  VTAB 22: CALL  -958: PRINT "MESSAGGIO VISUALIZZATO :": INPUT "<N> NORMALE  <F> LAMP.  <I>INVERSE =>";N$
  45. 450  IF N$ = "N"  THEN X = 128: GOTO 490
  46. 460  IF N$ = "F"  THEN X = 0: GOTO 490
  47. 470  IF N$ = "I"  THEN X =  -64: GOTO 490
  48. 480  GOTO 440
  49. 490  VTAB 22: CALL  -958: FLASH : PRINT "STO RIMPIAZZANDO": NORMAL 
  50. 500  REM  :
  51. 510  REM  : POKE LUNGHEZZA DEL MESSAGGIO
  52. 520  REM  :
  53. 530  POKE 44463, LEN(CS$) -1
  54. 540  REM  :
  55. 550  REM  : SALTA IL NUMERO DI VOLUME
  56. 560  REM  :
  57. 570  REM  :
  58. 580  POKE 44481,47: POKE 44482,174
  59. 590  REM  :
  60. 600  REM  : DISPONE IL MESSAGGIO IN
  61. 610  REM  : ORDINE INVERSO.
  62. 620  REM  :
  63. 630  FOR I =  LEN(CS$) TO 1  STEP  -1
  64. 640 M$ = M$ +( MID$ (CS$,I,1))
  65. 650  NEXT I
  66. 660  REM  :
  67. 670  REM  : FA POKE DELLA NUOVA TAVOLA
  68. 680  REM  : IN MEMORIA E
  69. 690  REM  : ADATTA I VALORI ASCII
  70. 700  REM  : AL VALORE DI VISUALIZZAZIONE
  71. 710  REM  : SCELTO.
  72. 720  REM  :
  73. 730  REM  : VEDI L'APPLE REFERENCE
  74. 740  REM  : MANUAL (P.14-15)
  75. 750  REM  :
  76. 760  FOR I = 1 TO  LEN(M$)
  77. 770 BV =  ASC( MID$ (M$,I,1))
  78. 780  IF BV <27  AND X = 128  THEN  GOTO 820
  79. 790  IF BV <27  AND X = 0  THEN BV = BV +128
  80. 800  IF BV <27  AND X =  -64  THEN BV = BV +192
  81. 810  IF BV <64  THEN BV = BV +64
  82. 820  POKE 45998 +I,BV +X
  83. 830  NEXT I
  84. 840  VTAB 22: CALL  -868: PRINT : INPUT "SALVI LE MODIFICHE COME FILE DI TESTO?   (S/N) =>";AN$
  85. 850  IF  LEFT$(AN$,1) = "S"  THEN  GOSUB 890
  86. 860  VTAB 22: CALL  -958: PRINT "TUTTO FATTO !"
  87. 870  ONERR  GOTO 1200
  88. 880  PRINT D$;"RUN DOS.DESIGNER"
  89. 890  HOME : VTAB 3: PRINT "<<CREA UN FILE TESTO MODIFICHE COMANDI>>"
  90. 900  PRINT : FOR I = 0 TO 39: PRINT "%";: NEXT I
  91. 910  VTAB 10: INPUT "IMMETTI IL NOME DEL FILE => ";NA$: CALL  -958
  92. 920  IF NA$ = ""  THEN  CALL  -1052: PRINT "NOME DEL FILE ILLEGALE !": GOTO 910
  93. 930  IF  LEN(NA$) >30  OR  ASC( LEFT$(NA$,1)) <65  OR  ASC( LEFT$(NA$,1)) >90  THEN  CALL  -1052: PRINT "NOME DEL FILE ILLEGALE !": GOTO 910
  94. 940  VTAB 12: INPUT "IMMETTI NUMERO LINEA INIZIALE => ";SL$: CALL  -958
  95. 950 SL =  VAL(SL$)
  96. 960  IF SL <1  OR SL >63999  THEN  CALL  -1052: PRINT "NUMERO DI LINEA ILLEGALE !": GOTO 940
  97. 970  VTAB 10: CALL  -958: INVERSE : PRINT "ATTUALI PARAMETRI : ": NORMAL 
  98. 980  PRINT : PRINT "NOME DEL FILE DI TESTO => ";NA$: PRINT : PRINT "NUMERO DELLA LINEA INIZIALE => ";SL
  99. 990  PRINT : INPUT "VERIFICHI I PARAMETRI? (S/N) => ";A$
  100. 1000  IF  LEFT$(A$,1) < >"S"  THEN  GOTO 890
  101. 1010  PRINT D$;"MON C,I,O"
  102. 1020  PRINT D$;"OPEN"NA$
  103. 1030  PRINT D$;"DELETE"NA$
  104. 1040  PRINT D$;"OPEN"NA$
  105. 1050  PRINT D$;"WRITE"NA$
  106. 1060  FOR SA = 45998 TO 45998 + LEN(M$)
  107. 1070 C = C +1
  108. 1080  IF C = 10  THEN C = 1
  109. 1090  IF C < >1  THEN 1130
  110. 1100  PRINT 
  111. 1110  PRINT SL;
  112. 1120 SL = SL +1
  113. 1130  PRINT " POKE ";SA;", "; PEEK(SA);" :";
  114. 1140  NEXT SA
  115. 1150  PRINT "POKE 44463,"; PEEK(44463);":";"POKE 44481,"; PEEK(44481);":";"POKE 44482,"; PEEK(44482)
  116. 1160  PRINT 
  117. 1170  PRINT D$;"CLOSE"NA$
  118. 1180  PRINT D$;"NOMONC,I,O": VTAB  PEEK(37): CALL  -868
  119. 1190  RETURN 
  120. 1200  IF  PEEK(222) = 6  THEN  HOME : VTAB 12: PRINT "INSERISCI IL DISCHETTO DI DOS.DESIGNER EPREMI UN TASTO": WAIT  -16384,128: POKE  -16368,0: GOTO 880
  121. 1210  HOME : VTAB 12: PRINT "ERRORE N."; PEEK(222);" A LINEA "; PEEK(218) + PEEK(219) *256