diff --git a/mach/pdp/libend/.distr b/mach/pdp/libend/.distr new file mode 100644 index 00000000..b48ec848 --- /dev/null +++ b/mach/pdp/libend/.distr @@ -0,0 +1,2 @@ +LIST +end_s.a diff --git a/mach/pdp/libend/LIST b/mach/pdp/libend/LIST new file mode 100644 index 00000000..2efbd3eb --- /dev/null +++ b/mach/pdp/libend/LIST @@ -0,0 +1,5 @@ +end_s.a +edata.s +em_end.s +end.s +etext.s diff --git a/mach/pdp/libend/edata.s b/mach/pdp/libend/edata.s new file mode 100644 index 00000000..f53adc10 --- /dev/null +++ b/mach/pdp/libend/edata.s @@ -0,0 +1,9 @@ +.sect .text +.sect .rom +.sect .data +.sect .bss +.define _edata +.sect .data + .align 4 + .sect .data +_edata: diff --git a/mach/pdp/libend/em_end.s b/mach/pdp/libend/em_end.s new file mode 100644 index 00000000..a062368d --- /dev/null +++ b/mach/pdp/libend/em_end.s @@ -0,0 +1,22 @@ +.sect .text +.sect .rom +.sect .data +.sect .bss +.define endtext,enddata,endbss,__end +.sect .text + .align 4 +.sect .rom + .align 4 +.sect .data + .align 4 +.sect .bss + .align 4 +.sect .end ! only for declaration of _end, __end and endbss. + + .sect .text +endtext: + .sect .data +enddata: + .sect .end +__end: +endbss: diff --git a/mach/pdp/libend/end.s b/mach/pdp/libend/end.s new file mode 100644 index 00000000..93a1e6e0 --- /dev/null +++ b/mach/pdp/libend/end.s @@ -0,0 +1,7 @@ +.sect .text +.sect .rom +.sect .data +.sect .bss +.define _end +.sect .end ! only for declaration of _end, __end and endbss. +_end: diff --git a/mach/pdp/libend/etext.s b/mach/pdp/libend/etext.s new file mode 100644 index 00000000..8c7453cb --- /dev/null +++ b/mach/pdp/libend/etext.s @@ -0,0 +1,9 @@ +.sect .text +.sect .rom +.sect .data +.sect .bss +.define _etext +.sect .text + .align 4 + .sect .text +_etext: diff --git a/mach/pdp/libsys/.distr b/mach/pdp/libsys/.distr index 1acf3808..3a76f61c 100644 --- a/mach/pdp/libsys/.distr +++ b/mach/pdp/libsys/.distr @@ -1,5 +1,4 @@ LIST -Makefile -compmodule libmon_s.a sys.h +head_em.s diff --git a/mach/pdp/libsys/head_em.s b/mach/pdp/libsys/head_em.s new file mode 100644 index 00000000..00900d17 --- /dev/null +++ b/mach/pdp/libsys/head_em.s @@ -0,0 +1,75 @@ +# +.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text +.define LINO_AD,FILN_AD +.define ERANGE,ESET,EHEAP,EILLINS,ECASE +.define hol0,trppc~,trpim~,reghp~,.limhp +! $Header$ + +#define float 1 +#define hardfp 1 + +LINO_AD = 0 +FILN_AD = 4 + +ERANGE = 1 +ESET = 2 +EFOVFL = 4 +EFUNFL = 5 +EFDIVZ = 7 +EFUND = 011 +ECONV = 012 +EHEAP = 021 +EILLINS = 022 +ECASE = 024 + +#ifdef float +#ifndef hardfp +! sys 060;.data2 4,fptrap / if not commented it will appear as undefined +#endif + sys 060;.data2 010,sig8 + ldfps $07600 +#endif + mov 2(sp),r0 + clr -2(r0) + mov sp,r0 + sub $4,sp + mov 4(sp),(sp) + tst (r0)+ + mov r0,2(sp) +1: + tst (r0)+ + bne 1b + cmp r0,*2(sp) + blo 1f + tst -(r0) +1: + mov r0,4(sp) + jsr pc,__m_a_i_n +! next two lines for as long as tail needs printf +! mov r0,-(sp) +! jsr pc,*$_exit + sys 1 + + .sect .data +hol0: .data2 0,0 ! line no + .data2 0,0 ! file +trppc~: .data2 0 +trpim~: .data2 0 +reghp~: .data2 _end +.limhp: .data2 _end + + .sect .text +sig8: +#ifdef float + mov r0,-(sp) + stst r0 + mov 1f(r0),-(sp) + jsr pc,trp~ + sys 060;.data2 010,sig8 + mov (sp)+,r0 + rti + + .sect .data +1: .data2 EILLINS, EILLINS, EFDIVZ, ECONV, EFOVFL, EFUNFL, EFUND, EILLINS + .sect .text +#endif