From fc1615334c398c766d4a280b7ea610256ee85955 Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 3 Sep 1991 15:01:06 +0000 Subject: [PATCH] new installation mechanism --- mach/ns/libmon/.distr | 3 +++ mach/ns/libmon/LIST | 2 ++ mach/ns/libmon/head_em.s | 55 +++++++++++++++++++++++++++++++++++++ mach/ns/libmon/mon.s | 58 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 mach/ns/libmon/.distr create mode 100644 mach/ns/libmon/LIST create mode 100644 mach/ns/libmon/head_em.s create mode 100644 mach/ns/libmon/mon.s diff --git a/mach/ns/libmon/.distr b/mach/ns/libmon/.distr new file mode 100644 index 000000000..5f4d84d7d --- /dev/null +++ b/mach/ns/libmon/.distr @@ -0,0 +1,3 @@ +LIST +libmon_s.a +head_em.s diff --git a/mach/ns/libmon/LIST b/mach/ns/libmon/LIST new file mode 100644 index 000000000..880f88c49 --- /dev/null +++ b/mach/ns/libmon/LIST @@ -0,0 +1,2 @@ +libmon_s.a +mon.s diff --git a/mach/ns/libmon/head_em.s b/mach/ns/libmon/head_em.s new file mode 100644 index 000000000..01bd631f4 --- /dev/null +++ b/mach/ns/libmon/head_em.s @@ -0,0 +1,55 @@ +.define hol0,argv,.reghp,.limhp,envp,begbss +.define .ignmask, .trpreg +.define .stop +.define ERANGE,EILLINS,ECASE +.sect .text +.sect .rom +.sect .data +.sect .bss +.sect .text + +topmem = 0xFFFFFF + +ERANGE = 1 +EILLINS = 18 +ECASE = 20 + + .sect .text + + movd begbss, r7 + movd endbss, r6 +1: + movqd 0, 0(r7) + addqd 4, r7 + cmpd r6,r7 + bgt 1b + + movd envp,tos + movd argv,tos + movd 1,tos + jsr @__m_a_i_n +.stop: + movb 0x7f,tos + jsr @.putchar + bpt + +.sect .bss +begbss: +.sect .data +hol0: + .data4 0 + .data4 0 +argv: + .data4 3f +envp: + .data4 0 +3: + .asciz 'PROGRAM' +.reghp: + .data4 endbss +.limhp: + .data4 endbss +.ignmask: + .data2 0 +.trpreg: + .data4 0 diff --git a/mach/ns/libmon/mon.s b/mach/ns/libmon/mon.s new file mode 100644 index 000000000..31773656f --- /dev/null +++ b/mach/ns/libmon/mon.s @@ -0,0 +1,58 @@ +.define .mon +.sect .text +.sect .rom +.sect .data +.sect .bss +.sect .text + + .sect .text + +.mon: + cmpd 1,4(sp) + beq 1f + cmpd 3,4(sp) + beq 3f + cmpd 4,4(sp) + beq 4f + cmpd 54,4(sp) + beq 5f + + movd .add1, tos + jsr @.prstr + movd 4(sp), tos + jsr @.print + movd .add2, tos + jsr @.prstr + ret 4 + +1: jump @.stop + +3: save [r0,r1,r2,r3] + movd 3,r0 + movd 28(sp),r1 + movd 32(sp),r2 + movd 0,r3 + svc + movd r2, 32(sp) + movd 0,28(sp) + restore [r0,r1,r2,r3] + ret 8 + +4: save [r0,r1,r2,r3] + movd 4,r0 + movd 28(sp),r1 + movd 32(sp),r2 + movd 0,r3 + svc + movd r2, 32(sp) + movd 0,28(sp) + restore [r0,r1,r2,r3] + ret 8 + +5: movd 0, 16(sp) + ret 12 + +.sect .data +.add1: .asciz "monitor call " +.add2: .asciz " not implemented\n" +.align -- 2.34.1