Libreria delle ProcedureGestione Caratteri

Entra nella Libreria GIOBE.TPU

 ONLYchr

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 stampa il carattere "carat" saltando ogni intermediario software, 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 Ascii del carattere, il valore calcolato dall’algoritmo viene incrementato al fine di puntare sempre locazioni pari, così che la locazione del codice Ascii del 1° carattere in alto a sinistra, [1,1] vale B8000H, quella del 2° alle coordinate [1,2] vale B8002H, e così via fino alla locazione del byte di colore dell’ultimo carattere in basso a destra, [25,80], che vale B8F9EH
    
Codice Sorgente   Mostra Effetto Esegui il Programma Scarica l'Esempio d'Applicazione
PROCEDURE ONLYchr(rig,col:byte; carat:char);
VAR indirizzo:word;
BEGIN
 
indirizzo:=(col-1)*2+(rig-1)*160; 
  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-
    
                  ;ne pari, cioè il primo byte)
    MOV   AL,
carat
 
  MOV   ES:[DI],AL   ;Sposta  codice  Ascii in Ram Video
    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(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   ONLYchr Lezioni - Vai al DownLoad dei files DOC Torna al Menu "Caratteri"
Esempio Sorgente Mostra
8 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