Files
Sprinter-SDCC/docs/samples/balls/dss.inc
T
snark13 95c22be9bd libbgi: скролл-примитивы + --w3 + отчёт раскладки памяти
Скролл региона video->video (неактивная страница -> активная, банк 0x50:
копия = скролл + heal цели):
- gfx_scroll_h / _bgi_scroll_rows_raw — горизонтальный, построчно без
  страйдов (~54Т/строку), DI/EI бандами по 16 строк, h=0=>256;
- gfx_scroll_v / _bgi_scroll_cols_raw — верт. И/ИЛИ гориз. за один проход
  без буфера (колонка = accel-burst LD A,A, STOP между read/write делает
  промежуточный OUT Port_Y безопасным), банды по 16 колонок;
- _gfx_addr_shadow_base (адрес неактивной страницы) + gfx_rect_t.
Пример examples/scroll.

check_banks.py + sprinter-cc: отчёт раскладки памяти для ЛЮБОЙ модели
(W1/W2 код/данные, остаток кучи/стека, W3 при --w3, банки при --bank),
не только при --bank.  Док docs/memory-management.md §10.

--w3 (резидентный код окна W3) + сопутствующее: crt0_banked W3_RESIDENT,
mkexe -W, tests/w3probe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 19:38:00 +03:00

69 lines
1.3 KiB
PHP

;-------------------------
;dss functions defines
;file functions
fopen equ 11h
fclose equ 12h
fread equ 13h
fwrite equ 14h
move_fp equ 15h
fgetattr equ 16h
fgetdt equ 17h
fsetdt equ 18h
fcreate equ 0ah
fcreaten equ 0bh
chdir equ 1dh
curdir equ 1eh
;memory functions
setwin1 equ 39h
getmem equ 3dh
setmem equ 3fh
freemem equ 3eh
;keyb functions
waitkey equ 30h
scankey equ 31h
quit equ 41h
getarg equ 43h
;vmode functions
setvmode equ 50h
getvmode equ 51h
selvpage equ 54h
;screen and text functions
pchar equ 5bh
pchars equ 5ch
;other
getver equ 0
;end dss defines
;-------------------------
;hardware defines
port_y equ 89h ;port for Y coord
_320p equ 81h ;320 pixels mode
rgmod equ 0c9h
border equ 0feh
rgscr equ 0e9h
rgacc equ 0a9h
norm_scr equ 50h
;trans_scr equ 54h
trans_scr equ 00001000b
tmp_scr equ 00000100b
e_cache equ 0fbh
d_cache equ 7bh
sys_port3c equ 3ch
sys_port7c equ 7ch
cpu_w0 equ 82h ;cpu window 0 = addr 0000h
cpu_w1 equ 0a2h ;... 1 = 4000h
cpu_w2 equ 0c2h ;... 2 = 8000h
cpu_w3 equ 0e2h ;... 3 = 0c000h
;end hardware defines
;-------------------------
;characters
cr equ 0dh
lf equ 0ah
tab equ 9
space equ 20h
;------------------------