Newsgroup: it.comp.os.dos
Titolo: contatore

c'é il modo di avere un file (es. ctr.txt) dove il contenuto é 8 e la 
possibilità di incrementarlo di 1?
per riassumere
prima del processo ctr.txt contenuto=8
PROCESS0
risultato del processo ctr.txt contenuto=9

nul
:errore
----------------
avrai un file d.bat che setta una variabile d'ambiente con un valore
progressimo modulo 10.
Il programma non funziona con il 
command.com
 puro ma con 4dos
nonostante non faccia uso di nessun comando o funzione solo 4dos.



certo, non è una grande soluzione...
... aspetto DøctøR_DøøM per una soluzione più elegante e più precisa.

> ... aspetto DøctøR_DøøM per una soluzione più elegante e più precisa.
Perdona il mio ridardo, purtroppo non ho avuto il tempo per risponderti prima.
Ho visto la soluzione che hai dato al quesito di Wembley, devo dire che è molto
interessante (anche se non l'ho ancora provata con command /y /c per vedere di
preciso che cosa fa). Devo tuttavia farti un "rimprovero": il tutto sarebbe stato
più elegante (e anche più pratico) se fosse stato un batch solo. Mi spiego meglio.
Dovrebbe essere test.bat a crearsi test2.bat (per poi eliminarlo alla fine del
processo).
Ecco la mia soluzione al problema (ammesso che il file ctr.txt contenga un numero
intero seguito da un invio, senza altri caratteri):
--cut--
@echo off
echo.e DC 89 CB 8A 87 >deb
echo.e E0  FF 00 FE C0 88 87 FF 00 3C 3A 74 04 B4 00 CD 21 >>deb
echo.e F0  B0 30 88 87 FF 00 4B EB E5 83 E9 02 83 C1 03 30 >>deb
echo.p =F9 >>deb
echo.g =DC >>deb
echo.p =FC >>deb
echo.d FF l 1 >>deb
echo.w FF >>deb
echo.q >>deb
type deb|debug ctr.txt | find "  30  " >nul
if errorlevel 1 goto end
echo.e 80 49 >deb
echo.p =80 >>deb
echo.w 101 >>deb
echo.q >>deb
type deb|debug ctr.txt >nul
:end
del deb
--cut--
Ciao

Ciao
ora gli dň un occhiata...
ciao!

piů elegante (e anche piů pratico) se fosse stato un batch solo. Mi spiego meglio.

E' questo il codice corretto?
1C69:00DC 89CB          MOV     BX,CX
1C69:00DE 8A87FF00      MOV     AL,[BX+00FF]
1C69:00E2 FEC0          INC     AL
1C69:00E4 8887FF00      MOV     [BX+00FF],AL
1C69:00E8 3C3A          CMP     AL,3A
1C69:00EA 7404          JZ      00F0
1C69:00EC B400          MOV     AH,00
1C69:00EE CD21          INT     21
1C69:00F0 B030          MOV     AL,30
1C69:00F2 8887FF00      MOV     [BX+00FF],AL
1C69:00F6 4B            DEC     BX
1C69:00F7 EBE5          JMP     00DE
1C69:00F9 83E902        SUB     CX,+02
1C69:00FC 83C103        ADD     CX,+03
1C69:00FF 30            ?????????????
dovrebbe fare una cosa del genere: legge la cifra meno significativa e
la incrementa, naturalmente se abbiamo bisogno di un'altra cifra per
rappresentare il numero, mette a zero quella ed incrementa quella
immediatamente piů significativa. Naturalmente la cosa č ricorsiva,
qualora tale cifra 'trabocca' ce ne serviremo di un'altra e cosě via.
L'unica cosa che puň succedere č l'utilizzo di una cifra in piů
rispetto alla chiamata precedente.
Ma perchč decrementare cx? (49) Se voglio piů spazio per memorizzare
numeri perchč non incremento?
E perchč all'inizio decrementare 2 e poi incrementare 3 a cx?

 E perchč all'inizio decrementare 2 e poi incrementare 3 a cx?
Ho specificato che il file ctr.txt deve contenere il numero seguito da invio
(0d e 0a). Quando si va a diminuire cx di 2 si toglie appunto l'invio. Poi
quando lo si incrementa di 3 č per contenere sia l'invio che il carattere a
00FF. Certo, bastava togliere a bx 2 e incrementare dopo il processo cx di 1,
tuttavia il batch l'ho scritto "a pezzi" perciň mi č sfuggito questo dettaglio.
Ciao.

Ciao.
Un'ultima cosa... cosa andiamo ad alterare in quell'area di memoria?
La struttura PSP?
Su una documentazione che ho su tale struttura dice che non bisogna
alterare i dati al di sotto di 5Ch, in pratica si possono alterare
FCB1, FCB2, Parameter lenght e Command tail.
Ma dopo l'alterazione eventuali controlli su tale strutture avrebbero
comportamenti anormali?

 comportamenti anormali?
Non dovrebbero perciò esserci comportamenti anomali (ci sarebbero solo,
come dici tu, andando a modificare sotto il 005C).
Ciao

Ciao
Ciao e grazie!

Ciao
Ciao e grazie!