;colorbar stellt acht Farbbalken auf ;VGA Bildschirm dar . ; 2000 IT Design , Research & Development ; 2004 H.V.Viehof ;______________________________________ ; ;datensegment I: ;______________________________________ color segment public word 'daten' table label far weiss db 0f gelb db 0e cyan db 3 gruen db 2 magenta db 5 rot db 4 blau db 1 schwarz db 0 zeile db 4fh bild db 19h zeichen db 0db color ends ;______________________________________ ; ;konstanten,equates und macro's: ;die muessen fuer sich stehen,sonst ;haben die nur lokale gueligkeit in ;dem segment wo sie definiert wurden ! ;______________________________________ setcur equ 2 outcrt equ 9 tast equ int 16h anz equ 7 line equ 20h text equ 18h loesch macro mov #1,0 #em screen macro mov ah,#1 int 10h #em weiter macro inc #1 cmp #1,#2 #em ;______________________________________ ; ;stapelsegment : ;______________________________________ stack segment stack word 'stack' dw 20 dup (?) stack ends ;______________________________________ ; ;programmsegment : ;______________________________________ code segment public word 'prog' org 0 main: call init call there mov ax,04c00 ;dos eqivalent zu 'ExitProccess' int 021 init: mov ax,seg table ;daten- und extrasegment initialisieren mov es,ax mov ds,ax ret there: mov al,b[cyan] ;hauptprogramm screen 0 loesch bl loesch bh loesch dl mov si,offset table loesch b[help] L2: ds:lodsb ;farbwert aus tabelle holen mov bl,al ;farbwert nach bl mov cx,10 ;dez10 spalten aufeinmal darstellen mov al,b[zeichen] ;'inverses'leerzeichen loesch dh L4: call >L1 ;unterprogramm 'bildschirmdarstellung' weiter dh,b[bild] jnz L4 adc dl,10 ;n„chsten balken weiter ds:b[help],anz ;acht balken dargestellt ? jle L2 ;falls nein zurck nach 'L2' mov ax,seg message ;ds auf datensegment II umstellen mov ds,ax mov dh,10 ;jetzt text darstellen mov cx,1 mov si,offset message mov bl,5 L5: mov ds:b[help],text mov dl,text L3: ds:lodsb ;zeichen holen call >L1 ;und am bildschirm darstellen weiter ds:b[help],text+line; jge >L6 mov dl,ds:b[help] jmp L3 L6: weiter dh,15 jnz L5 loesch ah ;tastaturabfrage tast ;taste gedrckt ? ret L1: push dx loesch bh screen setcur screen outcrt ;ausgeben pop dx ret code ends ;______________________________________ ; ;datensegment II: ;______________________________________ data segment public word 'daten' message db"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" db"³ Hit any Key to continue ! ³" db"³ 2000 IT Design , Research ³" db"³ & Development < H.V.Viehof > ³" db"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" help db ? data ends end