Assembly Avanzato con MASM

Sommario seconda parte



Capitolo 9:
La memoria video in modalità testo standard

9.1 Breve storia degli adattatori video standard
9.2 Caratteristiche generali delle modalità video testo standard
9.2.1 Bitmap dei simboli per la modalità testo
9.2.2 Il BYTE degli attributi
9.2.3 Le pagine video

9.3 Principali servizi forniti dalla INT 10h per la modalità testo
9.3.1 Servizio n. 00h: Set Video Mode
9.3.2 Servizio n. 01h: Set Cursor Size
9.3.3 Servizio n. 02h: Set Cursor Position
9.3.4 Servizio n. 03h: Get Cursor Position and Size
9.3.5 Servizio n. 05h: Select Active Display Page
9.3.6 Servizio n. 08h: Read Character and Attribute at Cursor Position
9.3.7 Servizio n. 09h: Write Character and Attribute at Cursor Position
9.3.8 Servizio n. 0Fh: Get Current Video Mode
9.3.9 Servizio n. 11h: Text Mode Character Generator
9.3.10 Servizio n. 12h: Select Vertical Resolution (VGA)
9.3.11 Servizio n. 13h: Write String
9.3.12 Servizio n. 1Bh: Functionality/State Information

9.4 Esempi pratici
9.4.1 Accesso alle 8 pagine video della modalità 03h da 80x25 celle
9.4.2 Accesso ad una qualunque cella dello schermo
9.4.3 Visualizzazione di numeri interi sullo schermo


Capitolo 10:
La memoria video in modalità grafica standard

10.1 Principio di funzionamento di un monitor per PC
10.1.1 Monitor CRT
10.1.2 Monitor LCD

10.2 Supporto grafico fornito dagli adattatori CGA
10.3 Supporto grafico fornito dagli adattatori EGA e VGA
10.4 Supporto grafico fornito dagli adattatori MCGA
10.5 La tavolozza dei colori

10.6 Esempi pratici
10.6.1 Rotazione dei colori nel modo 13h
10.6.2 Visualizzazione di stringhe in modalità grafica


Capitolo 11:
La memoria video in modalità grafica VESA

11.1 Le specifiche VESA VGA BIOS Extension
11.2 Accesso alla VRAM in modalità reale attraverso i servizi VBE
11.3 Servizi VBE 3.0
11.3.1 Servizio n. 4F00h: Return VBE Controller Information
11.3.2 Servizio n. 4F01h: Return VBE Mode Information
11.3.3 Servizio n. 4F02h: Set VBE Mode
11.3.4 Servizio n. 4F03h: Return Current VBE Mode
11.3.5 Servizio n. 4F04h: Save/Restore Video State
11.3.6 Servizio n. 4F05h: Display Window Control
11.3.7 Servizio n. 4F06h: Set/Get Logical Scan Line Length
11.3.8 Servizio n. 4F07h: Set/Get Display Start
11.3.9 Servizio n. 4F08h: Set/Get DAC Palette Format
11.3.10 Servizio n. 4F09h: Set/Get DAC Palette Data

11.4 Supporto VESA per le vecchie schede video SVGA
11.5 Il bank switching
11.6 Codifica dei colori nelle modalità video VESA/SVGA
11.6.1 Modalità video grafiche a 2 e a 4 colori
11.6.2 Modalità video grafiche a 16 colori
11.6.3 Modalità video grafiche a 256 colori
11.6.4 Modalità video grafiche High Color
11.6.5 Modalità video grafiche True Color

11.7 Esempi pratici
11.7.1 Visualizzazione di informazioni dettagliate sul supporto VBE
11.7.2 Trasferimento dati in VRAM nei modi video a 256 colori
11.7.3 Accesso ai pixel nelle modalità grafiche True Color

11.8 Libreria VESALIB
11.8.1 Dettagli sulla libreria VESALIB
11.8.2 Test della libreria VESALIB


Capitolo 12:
Servizi DOS per l'I/O su file

12.1 Il filesystem
12.2 Le handle
12.3 Servizi DOS per la gestione del filesystem
12.3.1 Servizio n. 39h: Create Subdirectory (MKDIR)
12.3.2 Servizio n. 3Ah: Remove Subdirectory (RMDIR)
12.3.3 Servizio n. 3Bh: Set Current Directory (CHDIR)
12.3.4 Servizio n. 3Ch: Create or Truncate File (CREAT)
12.3.5 Servizio n. 3Dh: Open Existing File (OPEN)
12.3.6 Servizio n. 3Eh: Close File (CLOSE)
12.3.7 Servizio n. 3Fh: Read from File or Device (READ)
12.3.8 Servizio n. 40h: Write to File or Device (WRITE)
12.3.9 Servizio n. 41h: Delete File (UNLINK)
12.3.10 Servizio n. 42h: Set Current File Position (SEEK)
12.3.11 Servizio n. 4300h: Get File Attributes (ATTRIB)
12.3.12 Servizio n. 4301h: Set File Attributes (CHMOD)
12.3.13 Servizio n. 56h: Rename/Move File or Directory (RENAME)

12.4 Libreria FILELIB
12.5 Esempi pratici
12.5.1 Versione C di FILETEST.ASM


Capitolo 13:
Il controller PS/2 per tastiera e mouse

13.1 Evoluzione dell'hardware per il controllo di tastiera e mouse
13.2 Protocollo di comunicazione con tastiera e mouse PS/2
13.2.1 Comunicazioni dalla periferica al controller PS/2
13.2.2 Comunicazioni dal controller PS/2 alla periferica

13.3 Programmazione del controller PS/2
13.3.1 Comandi destinati al controller PS/2
13.3.2 Comandi destinati alla tastiera PS/2
13.3.3 Comandi destinati al mouse PS/2

13.4 Esempi pratici
13.4.1 Gestione del mouse in modalità testo


Capitolo 14:
Suono e musica. Programmazione della scheda audio

14.1 Suono
14.2 Musica
14.3 Gestione del suono con il computer
14.4 La scheda audio Sound Blaster 16
14.4.1 Installazione e configurazione della scheda audio
14.4.2 Mappa degli indirizzi per la Sound Blaster 16

14.5 Programmazione della Sound Blaster 16
14.5.1 Reset del DSP
14.5.2 Lettura dal DSP
14.5.3 Scrittura nel DSP
14.5.4 Gestione delle interruzioni con il DSP
14.5.5 Configurazione del DMA e impostazione delle interruzioni
14.5.6 Rappresentazione del suono digitale nel DSP
14.5.7 Frequenza di trasferimento dei campioni
14.5.8 Programmazione del DSP in Direct Mode
14.5.9 Programmazione del DSP in DMA Mode - Single-Cycle
14.5.10 Programmazione del DSP in DMA Mode - Auto-Initialize
14.5.11 Programmazione del DSP in DMA Mode - High-Speed
14.5.12 Programmazione del DSP in DMA Mode - ADPCM
14.5.13 Programmazione del Mixer Chip
14.5.14 Programmazione della porta MIDI

14.6 Comandi del DSP
14.7 Creative Voice File (VOC) format
14.7.1 L'Header Block
14.7.2 Il Data Block

14.8 Microsoft/IBM Waveform Audio File (WAV) format
14.8.1 La sezione "Header" di un File WAV
14.8.2 Le sezioni "fmt " e "data" di un File WAV

14.9 Esempi pratici
14.9.1 Esecuzione di un file VOC in Direct Mode

14.10 Creazione di file VOC in formato PCM monofonico a 8 bit


Capitolo 15:
Il DMAC 8237A - Programmable Direct Memory Access Controller

15.1 Evoluzione dell'hardware per l'accesso diretto alla memoria
15.2 Struttura interna e funzionamento del DMAC 8237A
15.2.1 Modalità di trasferimento dati
15.2.2 Tipi di trasferimento dati
15.2.3 Trasferimento dati "Memory to Memory"
15.2.4 Auto-inizializzazione
15.2.5 Gestione delle priorità
15.2.6 Temporizzazione compressa
15.2.7 Registri del DMAC 8237A
15.2.8 Comandi software del DMAC 8237A

15.3 Programmazione del DMAC 8237A e delle periferiche abilitate al DMA
15.3.1 Predisposizione del buffer di memoria
15.3.2 Installazione della ISR
15.3.3 Programmazione del DMAC 8237A
15.3.4 Programmazione della periferica

15.4 Esempi pratici
15.4.1 Esecuzione di un file WAV in DMA Mode Single Cycle
15.4.2 Esecuzione di un file WAV in DMA Mode Auto Init

15.5 Creazione di file WAV in formato PCM a 8 o 16 bit, mono o stereo



Appendici


Appendice A: Tabella dei codici ASCII estesi
Appendice B: Tabella dei codici di scansione della tastiera
Appendice C: Tabella di conversione tra le principali basi numeriche
Appendice D: Header di un file EXE per DOS
Appendice E: Il Program Segment Prefix
Appendice F: Tabella delle istruzioni della CPU (RM)
Appendice G: Vettori di interruzione in modalità reale