Libreria delle ProcedureGestione Caratteri

Entra nella Libreria GIOBE.TPU

 ATTRchr

CODICE SORGENTE [3 di 4]  

   
bulletLa procedura è parzialmente scritta in linguaggio Assembly. E' probabile che il lettore, in questo momento, non sia in possesso delle conoscenze di base della programmazione a basso livello, per cui questa pagina può risultare incomprensibile; desidero fornirtela comunque, come stimolo per approfondire questa potente tecnica di programmazione (vedi Sezione Tutorial Assembly).
    
bulletLa procedura accede direttamente alla Ram Video [per saperne di più consulta la Scheda nella Sezione Dentro il Computer].
bulletLa procedura calcola il valore esadecimale del byte di colore sulla base dei parametri forniti in ingresso e lo colloca direttamente in Ram Video
bulletPer calcolare l’indirizzo fisico del carattere desiderato viene usato un algoritmo in Pascal: poiché ciascuna colonna porta il contributo di 2 bytes e ciascuna riga, essendo composta da 80 colonne, contribuisce con 160 bytes, il valore desiderato è così facilmente ottenibile a partire dai parametri ‘rig’ e ‘col’.
bulletPoiché questa procedura si occupa di cambiare solo il codice di colore del carattere, il valore calcolato dall’algoritmo viene incrementato al fine di puntare sempre locazioni dispari, così che la locazione dell’attributo del 1° carattere in alto a sinistra, [1,1] vale B8001H, quella del 2° alle coordinate [1,2] vale B8003H, e così via fino alla locazione del byte di colore dell’ultimo carattere in basso a destra, [25,80], che vale B8F9FH
bulletNaturalmente è presente anche l’algoritmo che calcola l’attributo a partire da ‘txt’ e ‘sfo’.
    
Codice Sorgente   Mostra Effetto Esegui il Programma Scarica l'Esempio d'Applicazione
PROCEDURE ATTRchr(rig,col,txt,sfo:byte);
VAR indirizzo:word; colore:byte;
BEGIN
 
indirizzo:=(col-1)*2+(rig-1)*160; 
  colore:
sfo*16+txt;
  asm
    PUSH  ES
           ;Salvataggio dei registri coinvolti
    PUSH  DI           ;
    MOV   AX,0B800H    ;Punta la  locazione  desiderata in
    MOV   ES,AX 
       ;Ram  Video,   ES:DI = ES:indirizzo
    MOV   DI,
indirizzo ;(osserva che si punta una locazio-
   
INC   DI           ;ne dispari, cioè il secondo byte)
    MOV   AL,
colore    ;
 
  MOV   ES:[DI],AL   ;Sposta  codice di Attributo in Ram
    POP   DI
           ;Recupero  dei  registri  coinvolti
    POP   ES
           ;
  end;
END;
    
bulletIl codice sviluppa le seguenti parti:
bulletcalcolo dell’indirizzo del carattere desiderato, a partire dai parametri ‘rig’ e ‘col’, e il byte di attributo, a partire dai parametri ‘sfo’ e ‘txt(in Pascal, zona marrone)
bulletsalvataggio dei registri coinvolti
bulletcreazione del puntatore ES:DI all'indirizzo logico (zona verde)
bulletmemorizzazione nella corretta locazione Ram Video del byte necessario per definire il colore del carattere desiderato (zona rosa)
bulletrecupero dei registri coinvolti

    

Pagina Precedente Caratteri Pagina Successiva   ATTRchr Lezioni - Vai al DownLoad dei files DOC Torna al Menu "Caratteri"
Esempio Sorgente Mostra
12 di 20

    

PASCAL  »

Libreria Giobe | Librerie Standard | Allegati | Applicazioni | Info | Download
PROCEDURE  »   Caratteri | Mouse | Tastiera | Tempo, Data & Ora
Box | Cornici | Cursore | Aree a Riga Intera | Aree a Schermo Totale
FUNZIONI  »   Caratteri | Mouse | Tastiera | Tempo, Data & Ora
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati