@@ -1,4 +1,4 @@
-tail_em.s.a
+libem_s.a
aar.s
blm.s
cii.s
@@ -1,11 +1,12 @@
+all:
install:
../../install head_em.s head_em
- ../../install tail_em.s.a tail_em
+ ../../install libem_s.a tail_em
cmp:
-../../compare head_em.s head_em
- -../../compare tail_em.s.a tail_em
+ -../../compare libem_s.a tail_em
clean:
@@ -13,5 +14,5 @@ opr :
make pr | opr
pr:
- @pr head_em.s
- @arch pv tail_em.s.a | pr -h `pwd`/tail_em.s.a
+ @pr `pwd`/head_em.s
+ @arch pv libem_s.a | pr -h `pwd`/libem_s.a
@@ -1,4 +1,9 @@
.define aar
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
!R1 contains description address
!R3 contains element number
.define blm
!size in R0
blm:
.define cii
cii:
popl saveret, *RR14
.define cmi
cmi:
.define cmi4
cmi4:
.define cms
cms:
.define cmu
cmu:
.define cmu4
cmu4:
.define csa
!R1 contains address of jump table
!R2 contains case index
.define csb
.define cuu
cuu:
popl RR2, *RR14
.define dup
dup:
.define dvu2
dvu2:
.define dvu4
dvu4:
@@ -1,14 +1,16 @@
-.define endtext, enddata, endbss, _etext, _edata, _end
+.define endtext,enddata,endbss,_etext,_edata,_end
+.sect .end ! only for declaration of _end and endbss.
- .text
+ .sect .text
endtext:
_etext:
- .align 2
- .data
+ .sect .data
enddata:
_edata:
- .bss
-endbss:
+ .sect .end
_end:
+endbss:
.define exg
!size (bytes) in R0
exg:
.define gto
gto:
pop R3, *RR14
@@ -1,6 +1,11 @@
.define EXIT, F_DUM
.define ERANGE, ESET, EHEAP, EILLINS, EODDZ, ECASE, EBADMON
.define hol0, trppc, trpim, reghp, argv, envp
EXIT = 0
F_DUM = 0
@@ -13,8 +18,8 @@ EODDZ = 19
ECASE = 20
EBADMON = 25
-.text
- !clear .bss
+ !clear .sect .bss
ldk R2, $0
ld R3, $endbss
ld R0, R3
@@ -38,20 +43,20 @@ EBADMON = 25
ldl RR14, $0xC00017FC
sc $0
-.bss
begbss:
-.data
hol0:
- .word 0,0 ! line no
- .word 0,0 ! file
+ .data2 0,0 ! line no
+ .data2 0,0 ! file
trppc:
- .word 0
+ .data2 0
trpim:
argv:
envp:
- .word 1f
+ .data2 1f
1: .asciz "program"
reghp:
- .word endbss
+ .data2 endbss
.define inn
!bitnr in R1
!size (bytes) in R2
.define lar
.define los2
los2:
.define mon
mon:
@@ -1,9 +1,14 @@
.define noop
noop:
push *RR14, hol0
push *RR14, $fmt
calr prf
ret
fmt: .asciz "test %d\n"
.define prf
prf:
ld R0, hol0+4 !pointer to filename
@@ -29,8 +34,8 @@ prf:
1: ld R0, $name
jr 2b
fmt1: .asciz "%s, sp = %x, line %d:\n"
name: .asciz "_unknown file_"
saveprf:
- .long 0
+ .data4 0
.define printf
printf:
@@ -77,6 +82,6 @@ printn:
inc R3
buff:
.space 256
.define rck
rck:
ld R0, RR14($4)
.define rmu2
rmu2:
.define rmu4
rmu4:
.define sar
@@ -1,8 +1,13 @@
.define saveret
.define savereg
saveret:
savereg:
.space 20
@@ -0,0 +1,5 @@
.define strhp
strhp:
.define sts2
sts2:
.define trp, fatal
fatal:
calr trp
@@ -34,5 +39,5 @@ trp:
3: push *RR14, $err
calr printf
sc $EXIT
err: .asciz "trap error %d\n"
.define unknown
unknown:
push *RR14, $EODDZ
.define xset