DemoN/savescr.asm
2024-08-08 14:52:38 +03:00

65 lines
3.1 KiB
NASM
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;[]=========================================================================[]
;[] Сохранение экрана в файл []
;[] v0.03 - последние изменения 11.03.2006 []
;[]=========================================================================[]
SaveScr:
ld bc,1*256+Dss.GetMem
rst DssRst ;выделение банки памяти
ret c ;выход с ошибкой
ld (.Id),a
ld bc,Dss.SetWin3
rst DssRst ;включение банки в 3-е окно
ld (.Id+1),a ;замещаемая страница
ld de,0 ;позиция на экране
ld hl,0xC000
.L1 push de
push hl
ld c,Dss.RdChar
rst DssRst ;считать символ с экрана
pop hl
pop de
ld (hl),a
inc hl
inc e
ld a,e
cp 0x50 ;закончилась строка?
jr nz,.L1
ld bc,0x0D0A ;конец строки
ld (hl),b
inc hl
ld (hl),c
inc hl
ld e,0 ;начало строки
inc d
ld a,d
cp 0x20 ;конец экрана?
jr nz,.L1
ld hl,.NameF ;имя файла
xor a ;атрибут
ld c,Dss.Create
rst DssRst
jr c,.L2 ;ошибка
push af
ld hl,0xC000 ;начало записываемой памяти
ld de,82*32 ;размер записываемой инфы
ld c,Dss.Write
rst DssRst ;записать
pop af
ld c,Dss.Close
rst DssRst ;закрыть файл
.L2 ld a,(.Id) ;id памяти
ld c,Dss.FreeMem
rst DssRst ;освободить память
ld a,(.Id+1)
out (EmmWin.P3),a ;востановили банку
ret
.NameF db "demon.$$$",0
.Id ds 2 ;id выделенного блока
;11:11 18.02.2011 Заглушка Не было исходника :(
; include "d:\workast\demon\screen\scrdemon"