home *** CD-ROM | disk | FTP | other *** search
- ;* ------------------------------------------------------- *
- ;* TEST.TSR *
- ;* Uhrroutine zum Einbinden in das TSR Gerüstprogramm *
- ;* (c) 1992 Ralph Seelig & DMV-Verlag *
- ;* ------------------------------------------------------- *
-
- logo db 7,' Das TSR - Gerüstprogramm (c) 1992 '
- db ' Ralph Seelig & DMV-Verlag ! $'
- scrpuffer db 160 dup (?)
- scrofs dw ?
- aktseite db ?
-
- TsrProgram proc
- ; eigentliches residentes Programm
-
- mov ah,0fh
- int 10h ; aktuellen Vidomode holen
- cmp al,4 ; Grafikmodi ?
- jb erlaubt
- mov dl,7 ; dann TSR Start verhindern
- mov ah,2
- int 21h ; und Ton ausgeben
- ret
- erlaubt:
- push es
- xor dx,dx
- mov es,dx
- mov word ptr ax,es:[044eh] ; Bildschirmoffset holen
- mov ScrOfs,ax
- mov byte ptr al,es:[0462h] ; aktuelle Seite holen
- mov aktseite,al
- pop es
- mov ah,03h
- mov bh,al ; aktuelle Seite
- int 10h
- push dx ; Cursorposition retten
- mov di,offset scrpuffer ; Zeiger auf Puffer
- push ds
- pop es ; ES=DS
- mov ax,0b800h ; Segment der Videokarte
- push ax ; Wert retten
- mov si,scrofs ; Offset des Bildschirms
- mov ds,ax
- mov cx,160 ; 160 Bytes
- rep movsb ; vom Bildschirm retten
- push es
- pop ds ; DS wieder herstellen
-
- xor dx,dx
- mov ah,02h
- int 10h ; Cursor positionieren
- mov dx,offset logo
- mov ah,09h
- int 21h
- Taste:
- xor ax,ax
- int 16h ; Taste holen
- cmp al,0 ; war es Funktionstaste
- jz Taste ; dann nochmal holen
-
- pop es ; Segment der Videokarte
- mov di,scrofs
- mov si,offset scrpuffer
- mov cx,160 ; Bildschirmausschnitt
- rep movsb ; restaurieren
- pop dx ; Cursorposition holen
- mov bh,aktseite
- mov ah,02h
- int 10h ; Cursor setzen
- ret
- TsrProgram endp
-
-