forked from offtopia/ponydos
40 lines
494 B
NASM
40 lines
494 B
NASM
|
%include "ponydos.inc"
|
||
|
cpu 8086
|
||
|
bits 16
|
||
|
|
||
|
; 0x0000
|
||
|
jmp near process_event
|
||
|
|
||
|
; 0x0003 PROC_INITIALIZE_ENTRYPOINT
|
||
|
; This needs to preserve ds
|
||
|
initialize:
|
||
|
push ds
|
||
|
|
||
|
call deallocate_own_memory
|
||
|
|
||
|
pop ds
|
||
|
retf
|
||
|
|
||
|
process_event:
|
||
|
retf
|
||
|
|
||
|
deallocate_own_memory:
|
||
|
push bx
|
||
|
push cx
|
||
|
push es
|
||
|
|
||
|
mov bx, PONYDOS_SEG
|
||
|
mov es, bx
|
||
|
|
||
|
; Segment 0xn000 corresponds to slot n in the allocation table
|
||
|
mov bx, cs
|
||
|
mov cl, 12
|
||
|
shr bx, cl
|
||
|
|
||
|
mov byte [es:GLOBAL_MEMORY_ALLOCATION_MAP + bx], 0
|
||
|
|
||
|
pop es
|
||
|
pop cx
|
||
|
pop bx
|
||
|
ret
|