48 lines
768 B
Plaintext
48 lines
768 B
Plaintext
; shrink.z - buffers and pointers that get small for a "shrunk" QTERM
|
||
|
||
.var memtop 6
|
||
|
||
.extern setshr
|
||
setshr:
|
||
ld hl,(memtop)
|
||
ld de,work2 + 16384 + 1024
|
||
or a
|
||
sbc hl,de
|
||
ex de,hl
|
||
ld hl,xfersz
|
||
set 3,(hl)
|
||
ret nc
|
||
set 2,(hl)
|
||
ld hl,work2 + 4096
|
||
ld (cbuff),hl
|
||
ld hl,work2 + 8192
|
||
ld (endcbf),hl
|
||
ld hl,4095
|
||
ld (cbfsiz),hl
|
||
ld a,4096 / 128
|
||
ld (btxf),a
|
||
ld (obtxf),a
|
||
ld hl,8192
|
||
add hl,de
|
||
ret c
|
||
call ilprt
|
||
db 'Insufficient memory\r\n\0'
|
||
rst 0
|
||
|
||
.dseg
|
||
.extern cbuff
|
||
cbuff: dw work2 + 8192
|
||
.extern endcbf
|
||
endcbf: dw work2 + 16384
|
||
.extern cbfsiz
|
||
cbfsiz: dw 8191
|
||
.extern btxf
|
||
btxf: db 8192 / 128
|
||
.extern obtxf
|
||
obtxf: db 8192 / 128
|
||
|
||
.useg
|
||
.extern work2
|
||
work2:
|
||
ds 16384 ; so that #end in the .SYM file is right
|
||
|