home *** CD-ROM | disk | FTP | other *** search
- 10 REM **********************
- 20 REM * DISK.VOLUME *
- 30 REM * DI JAMES PATRIDGE *
- 40 REM * COPYRIGHT (C) 1988 *
- 50 REM * BY APPLICANDO & *
- 60 REM * MICROSPARC, INC *
- 70 REM **********************
- 80 CLEAR : RESTORE : TEXT : HOME
- 90 TB = 12:D$ = CHR$(4)
- 100 N1$ = "000000000111":N2$ = "123456789012"
- 110 D1$ = "<< CAMBIO DEL DISK VOLUME DI CATALOG >>"
- 120 PRINT TAB( 20 -( LEN(D1$)/2))D1$:D1$ = ""
- 130 PRINT
- 140 FOR I = 0 TO 39: PRINT "%";: NEXT I
- 150 POKE 34,3: PRINT
- 160 REM :
- 170 REM : STAMPA LE ISTRUZIONI
- 180 REM :
- 190 PRINT "QUESTO PROGRAMMA PERSONALIZZERA' IL": PRINT "MESSAGGIO DI DISK VOLUME USATO DAL": PRINT "COMANDO CATALOG.": PRINT
- 200 PRINT "PUOI FACILMENTE CAMBIARE IL TESTO DI": PRINT "'DISK VOLUME' IN QUALSIASI MESSAGGIO": PRINT "LUNGO NON PIU' DI 12 CARATTERI.": PRINT
- 210 PRINT "SI POSSONO DISPORRE I MESSAGGI SU PIU'": PRINT "RIGHE INSERENDO UN CARATTERE < CRTL-J >": PRINT "NELLA STRINGA DEL MESSAGGIO.": PRINT
- 220 VTAB 19: FOR I = 0 TO 39: PRINT "%";: NEXT I: VTAB 23
- 230 HTAB 5: PRINT "PREMI UN TASTO PER CONTINUARE => ";: GET A$
- 240 HOME : POKE 34,0
- 250 VTAB 6: CALL -958
- 260 D1$ = "IMMETTI IL MESSAGGIO"
- 270 HTAB 13: VTAB 6: PRINT D1$: VTAB 20: FOR J = 0 TO 39: PRINT "%";: NEXT J: VTAB 22: PRINT "BYTE LIBERI = "TB
- 280 VTAB 8: INVERSE : HTAB 13: PRINT N1$: VTAB 9: HTAB 13: PRINT N2$: NORMAL
- 290 VTAB 10: CALL -868: HTAB 1
- 300 PRINT " ==>";: INPUT " ";CS$
- 310 IF CS$ = "" THEN CS$ = "DISK VOLUME "
- 320 TB = TB - LEN(CS$)
- 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
- 340 VTAB 6: CALL -958: PRINT "TUO NUOVO MESSAGGIO : "
- 350 VTAB 10: PRINT CS$
- 360 PRINT : PRINT "TOTALE BYTE USATI => "12 -TB
- 370 VTAB 20: FOR I = 0 TO 39: PRINT "%";: NEXT I
- 380 PRINT : INPUT "IL MESSAGGIO E' ESATTO? (SI'/NO) => ";AN$
- 390 IF LEFT$(AN$,1) < >"S" THEN TB = 12: GOTO 250
- 400 REM :
- 410 REM : IMPOSTA I VALORI DI OFFSET PER
- 420 REM : VARI MODI DI VISUALIZZAZIONE
- 430 REM :
- 440 VTAB 22: CALL -958: PRINT "MESSAGGIO VISUALIZZATO :": INPUT "<N> NORMALE <F> LAMP. <I>INVERSE =>";N$
- 450 IF N$ = "N" THEN X = 128: GOTO 490
- 460 IF N$ = "F" THEN X = 0: GOTO 490
- 470 IF N$ = "I" THEN X = -64: GOTO 490
- 480 GOTO 440
- 490 VTAB 22: CALL -958: FLASH : PRINT "STO RIMPIAZZANDO": NORMAL
- 500 REM :
- 510 REM : POKE LUNGHEZZA DEL MESSAGGIO
- 520 REM :
- 530 POKE 44463, LEN(CS$) -1
- 540 REM :
- 550 REM : SALTA IL NUMERO DI VOLUME
- 560 REM :
- 570 REM :
- 580 POKE 44481,47: POKE 44482,174
- 590 REM :
- 600 REM : DISPONE IL MESSAGGIO IN
- 610 REM : ORDINE INVERSO.
- 620 REM :
- 630 FOR I = LEN(CS$) TO 1 STEP -1
- 640 M$ = M$ +( MID$ (CS$,I,1))
- 650 NEXT I
- 660 REM :
- 670 REM : FA POKE DELLA NUOVA TAVOLA
- 680 REM : IN MEMORIA E
- 690 REM : ADATTA I VALORI ASCII
- 700 REM : AL VALORE DI VISUALIZZAZIONE
- 710 REM : SCELTO.
- 720 REM :
- 730 REM : VEDI L'APPLE REFERENCE
- 740 REM : MANUAL (P.14-15)
- 750 REM :
- 760 FOR I = 1 TO LEN(M$)
- 770 BV = ASC( MID$ (M$,I,1))
- 780 IF BV <27 AND X = 128 THEN GOTO 820
- 790 IF BV <27 AND X = 0 THEN BV = BV +128
- 800 IF BV <27 AND X = -64 THEN BV = BV +192
- 810 IF BV <64 THEN BV = BV +64
- 820 POKE 45998 +I,BV +X
- 830 NEXT I
- 840 VTAB 22: CALL -868: PRINT : INPUT "SALVI LE MODIFICHE COME FILE DI TESTO? (S/N) =>";AN$
- 850 IF LEFT$(AN$,1) = "S" THEN GOSUB 890
- 860 VTAB 22: CALL -958: PRINT "TUTTO FATTO !"
- 870 ONERR GOTO 1200
- 880 PRINT D$;"RUN DOS.DESIGNER"
- 890 HOME : VTAB 3: PRINT "<<CREA UN FILE TESTO MODIFICHE COMANDI>>"
- 900 PRINT : FOR I = 0 TO 39: PRINT "%";: NEXT I
- 910 VTAB 10: INPUT "IMMETTI IL NOME DEL FILE => ";NA$: CALL -958
- 920 IF NA$ = "" THEN CALL -1052: PRINT "NOME DEL FILE ILLEGALE !": GOTO 910
- 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
- 940 VTAB 12: INPUT "IMMETTI NUMERO LINEA INIZIALE => ";SL$: CALL -958
- 950 SL = VAL(SL$)
- 960 IF SL <1 OR SL >63999 THEN CALL -1052: PRINT "NUMERO DI LINEA ILLEGALE !": GOTO 940
- 970 VTAB 10: CALL -958: INVERSE : PRINT "ATTUALI PARAMETRI : ": NORMAL
- 980 PRINT : PRINT "NOME DEL FILE DI TESTO => ";NA$: PRINT : PRINT "NUMERO DELLA LINEA INIZIALE => ";SL
- 990 PRINT : INPUT "VERIFICHI I PARAMETRI? (S/N) => ";A$
- 1000 IF LEFT$(A$,1) < >"S" THEN GOTO 890
- 1010 PRINT D$;"MON C,I,O"
- 1020 PRINT D$;"OPEN"NA$
- 1030 PRINT D$;"DELETE"NA$
- 1040 PRINT D$;"OPEN"NA$
- 1050 PRINT D$;"WRITE"NA$
- 1060 FOR SA = 45998 TO 45998 + LEN(M$)
- 1070 C = C +1
- 1080 IF C = 10 THEN C = 1
- 1090 IF C < >1 THEN 1130
- 1100 PRINT
- 1110 PRINT SL;
- 1120 SL = SL +1
- 1130 PRINT " POKE ";SA;", "; PEEK(SA);" :";
- 1140 NEXT SA
- 1150 PRINT "POKE 44463,"; PEEK(44463);":";"POKE 44481,"; PEEK(44481);":";"POKE 44482,"; PEEK(44482)
- 1160 PRINT
- 1170 PRINT D$;"CLOSE"NA$
- 1180 PRINT D$;"NOMONC,I,O": VTAB PEEK(37): CALL -868
- 1190 RETURN
- 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
- 1210 HOME : VTAB 12: PRINT "ERRORE N."; PEEK(222);" A LINEA "; PEEK(218) + PEEK(219) *256