--- /dev/null
+.define begtext,begdata,begbss
+.define hol0,.reghp,.limhp,.trppc,.ignmask
+.define ERANGE,ESET,EHEAP,ECASE,EILLINS
+
+ERANGE = 1
+ESET = 2
+EIDIVZ = 6
+EHEAP = 17
+EILLINS = 18
+EODDZ = 19
+ECASE = 20
+
+base = 0x01C0
+topmem = 0xFFF0
+
+ .org topmem-16
+.extern __n_line
+maxmem:
+__n_line:
+ .space 16
+ .errnz __n_line-0xFFE0
+
+ .base base
+
+ .text
+begtext:
+ cld
+ xor ax,ax
+ mov ss,ax
+ mov ds,ax
+ mov es,ax
+ mov (2),cs
+ mov (0),.diverr
+ mov sp,maxmem
+ mov di,begbss
+ mov cx,[[endbss-begbss]/2]&0x7FFF
+ ! xor ax,ax ! ax still is 0
+ rep stos
+ mov ax,envp
+ push ax
+ mov ax,argv
+ push ax
+ mov ax,1
+ push ax
+ call _m_a_i_n
+ call .stop
+.diverr:
+ push ax
+ mov ax,EIDIVZ
+ call .error
+ pop ax
+ iret
+
+ .data
+begdata:
+hol0:
+ .word 0,0
+ .word 0,0
+argv:
+ .word 3f
+envp:
+ .word 0
+3:
+ .asciz "PROGRAM"
+.reghp:
+ .word endbss
+.limhp:
+ .word endbss
+.ignmask:
+ .word 0
+.trppc:
+ .word 0
+
+ .bss
+begbss: