home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9202 / tricks / asm / test.tsr < prev    next >
Encoding:
Text File  |  1992-01-10  |  2.2 KB  |  73 lines

  1. ;* ------------------------------------------------------- *
  2. ;*                       TEST.TSR                          *
  3. ;* Uhrroutine zum Einbinden in das TSR Gerüstprogramm      *
  4. ;*          (c) 1992 Ralph Seelig & DMV-Verlag             *
  5. ;* ------------------------------------------------------- *
  6.  
  7. logo       db 7,'  Das TSR - Gerüstprogramm  (c)  1992 '
  8.            db   '  Ralph Seelig & DMV-Verlag !  $'
  9. scrpuffer  db 160 dup (?)
  10. scrofs     dw ?
  11. aktseite   db ?
  12.  
  13. TsrProgram proc
  14.   ; eigentliches residentes Programm
  15.  
  16.   mov ah,0fh
  17.   int 10h                      ; aktuellen Vidomode holen
  18.   cmp al,4                     ; Grafikmodi ?
  19.   jb erlaubt
  20.     mov dl,7                   ; dann TSR Start verhindern
  21.     mov ah,2
  22.     int 21h                    ; und Ton ausgeben
  23.     ret
  24.   erlaubt:
  25.   push es
  26.   xor dx,dx
  27.   mov es,dx
  28.   mov word ptr ax,es:[044eh]   ; Bildschirmoffset holen
  29.   mov ScrOfs,ax
  30.   mov byte ptr al,es:[0462h]   ; aktuelle Seite holen
  31.   mov aktseite,al
  32.   pop es
  33.   mov ah,03h
  34.   mov bh,al                    ; aktuelle Seite
  35.   int 10h
  36.   push dx                      ; Cursorposition retten
  37.   mov di,offset scrpuffer      ; Zeiger auf Puffer
  38.   push ds
  39.   pop es                       ; ES=DS
  40.   mov ax,0b800h                ; Segment der Videokarte
  41.   push ax                      ; Wert retten
  42.   mov si,scrofs                ; Offset des Bildschirms
  43.   mov ds,ax
  44.   mov cx,160                   ; 160 Bytes
  45.   rep movsb                    ; vom Bildschirm retten
  46.   push es
  47.   pop ds                       ; DS wieder herstellen
  48.  
  49.   xor dx,dx
  50.   mov ah,02h
  51.   int 10h                      ; Cursor positionieren
  52.   mov dx,offset logo
  53.   mov ah,09h
  54.   int 21h
  55.   Taste:
  56.     xor ax,ax
  57.     int 16h                    ; Taste holen
  58.     cmp al,0                   ; war es Funktionstaste
  59.     jz Taste                   ; dann nochmal holen
  60.  
  61.   pop es                       ; Segment der Videokarte
  62.   mov di,scrofs
  63.   mov si,offset scrpuffer
  64.   mov cx,160                   ; Bildschirmausschnitt
  65.   rep movsb                    ; restaurieren
  66.   pop dx                       ; Cursorposition holen
  67.   mov bh,aktseite
  68.   mov ah,02h
  69.   int 10h                      ; Cursor setzen
  70.   ret
  71. TsrProgram endp
  72.  
  73.