|
@@ -0,0 +1,62 @@
|
|
|
+.sect .text; .sect .rom; .sect .data; .sect .bss
|
|
|
+
|
|
|
+.define begtext,begdata,begbss,syscal
|
|
|
+.define hol0,.reghp,.limhp,.trppc,.ignmask
|
|
|
+.define ERANGE,ESET,EHEAP,ECASE,EILLINS,EIDIVZ,EODDZ
|
|
|
+.extern _end
|
|
|
+
|
|
|
+ERANGE = 1
|
|
|
+ESET = 2
|
|
|
+EIDIVZ = 6
|
|
|
+EHEAP = 17
|
|
|
+EILLINS = 18
|
|
|
+EODDZ = 19
|
|
|
+ECASE = 20
|
|
|
+
|
|
|
+.sect .text
|
|
|
+ .data1 0353
|
|
|
+ .data1 0176 ! jmp to begtext in 2 bytes. Assembler generates 3
|
|
|
+ ! bytes.
|
|
|
+ .data2 -277, -277, -277, -277
|
|
|
+ .space 116
|
|
|
+ .data2 49920
|
|
|
+
|
|
|
+begtext:
|
|
|
+ mov (.limhp),ax
|
|
|
+ mov (.reghp),ax
|
|
|
+ xor bp,bp
|
|
|
+ mov bx,sp
|
|
|
+ mov cx,(bx)
|
|
|
+ add bx,4
|
|
|
+ mov ax,cx
|
|
|
+ inc ax
|
|
|
+ shl ax,2
|
|
|
+ add ax,bx
|
|
|
+ push ax
|
|
|
+ push bx
|
|
|
+ push cx
|
|
|
+ call _m_a_i_n
|
|
|
+ push ax
|
|
|
+ call __exit
|
|
|
+.sect .data
|
|
|
+begdata:
|
|
|
+hol0:
|
|
|
+ .data2 0,0
|
|
|
+ .data2 0,0
|
|
|
+argv:
|
|
|
+ .data4 3f
|
|
|
+envp:
|
|
|
+ .data4 0
|
|
|
+3:
|
|
|
+ .asciz "PROGRAM"
|
|
|
+.reghp:
|
|
|
+ .data4 endbss
|
|
|
+.limhp:
|
|
|
+ .data4 endbss
|
|
|
+.ignmask:
|
|
|
+ .data4 0
|
|
|
+.trppc:
|
|
|
+ .data4 0
|
|
|
+
|
|
|
+ .sect .bss
|
|
|
+begbss:
|