        org     0fcc0h

start:  LXI     H,prompt
        CALL    11A2h
        call    463eh  
        rst     2       	
        rz        	
        dcx     h
        call    008ech   	;de=bin val of ascii <hl>
        lhld    0fac0h   	;hl = current lomem
        mvi     a,128   	              
        add     e
        mov     d,a		;d holds the new lomem value for fac1h
        sub     h       	;a=a-h
        mov     b,a     	;b=new-current
        mvi     c,0     	;only 256b blocks
        mov     l,c
        jnc     insert  	;if b-,del;+,ins
delete: push    b	     	;keep neg. len val
        mov     a,h
        sub     d       	;len=abs(len)
        mov     b,a
        mov     h,d
        call    06b9fh   	;masdel
        pop     b	
        jmp     adjust

insert: call    06b6dh   	;makhol
        jc      start   	;restart if OM
        dad     b	      	;hl=new lomem

adjust: lda     0fbafh   	;end of unnamed .BA
        add     b
        sta     0fbafh
        mov     a,h
        sta     0fac1h   	;lomem
        sui     128     	
        sta     08000h   	;ram bottom
        jmp     02146h   	;reset pointers and exit?
;
prompt: db      "Lomem size"
	db	" (x256)"
        db      0
