 | le 7 istruzioni iniziali
verificano se il numero di tasti numerici
premuti è minore a quello massimo tollerato,
per evitare di andare a sovrascrivere il Menu interattivo, sulla barra di acquisizione;
quando questo succede si fa sparire il cursore
(che sarebbe fastidioso) e si forniscono
le indicazioni per risolvere il
problema |
 | la prima istruzione del secondo gruppo (INC CS:[Quante])
aggiorna la variabile locale che tiene
conto dei tasti numerici già premuti |
 | in ingresso in AL c'è
il codice ascii numerico decimale, letto
da Keywait; per non rischiare di perderlo
lo si salva momentaneamente nello
stack (PUSH
AX, ti ricordo che devi salvare
AX anche se a te interessa solo
AL) |
 |
spegne (M_COLOR
08H, grigio su nero) il numero corrispondente al tasto
premuto in precedenza, assumendone il codice ascii numerico
da una variabile locale (MOV
AL,CS:[prima]) |
 | accende (M_COLOR
0FH, bianco brillante su nero) il numero corrispondente
al tasto appena premuto, recuperandone il codice ascii numerico dallo stack (POP
AX) |
 | stampa (M_COLOR
1FH, bianco brillante su blu) il numero appena
acquisito anche sulla barra di acquisizione, recuperando
la colonna di stampa corrente (comunque sulla riga23) dalla
variabile locale
[Colonna] |
 | prepara aggiornata la posizione di stampa sulla riga23,
per il prossimo numero, affidandola alla variabile locale
[Colonna] |