date and time created 87/05/19 14:08:02 by minshall
authorGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Wed, 20 May 1987 05:08:02 +0000 (21:08 -0800)
committerGregory Minshall <minshall@ucbvax.Berkeley.EDU>
Wed, 20 May 1987 05:08:02 +0000 (21:08 -0800)
SCCS-vsn: usr.bin/tn3270/distribution/sys_dos/spintasm.asm 1.1

usr/src/usr.bin/tn3270/distribution/sys_dos/spintasm.asm [new file with mode: 0644]

diff --git a/usr/src/usr.bin/tn3270/distribution/sys_dos/spintasm.asm b/usr/src/usr.bin/tn3270/distribution/sys_dos/spintasm.asm
new file mode 100644 (file)
index 0000000..5b8b989
--- /dev/null
@@ -0,0 +1,66 @@
+_TEXT  segment byte public 'CODE'
+_TEXT  ends
+
+_DATA  segment word public 'DATA'
+_DATA  ends
+
+CONST  segment word public 'CONST'
+CONST  ends
+
+_BSS   segment word public 'BSS'
+_BSS   ends
+
+DGROUP group   CONST, _BSS, _DATA
+
+       assume  cs:_TEXT, ds:DGROUP, ss:DGROUP, es:DGROUP
+
+_TEXT  segment
+
+;
+; int_spawn gets control on an interrupt.  It switches the stack
+; and does a 'return' from start_spawn.
+;
+       public  _int_spawn
+
+_int_spawn     proc    near
+       push    bp
+       mov     bp,sp
+
+       mov     sp,bp
+       pop     bp
+       ret
+_int_spawn     endp
+
+;
+; start_spawn issues the dos interrupt after setting up the passed
+; registers.  When control returns to it, it sets spawn->done to non-zero.
+;
+       public  _start_spawn
+
+_start_spawn   proc    near
+       push    bp
+       mov     bp,sp
+
+       mov     sp,bp
+       pop     bp
+       ret
+_start_spawn   endp
+
+;
+; After int_spawn has faked a return from start_spawn, we come here to
+; return to the interrupt issuer.
+;
+       public  _continue_spawn
+
+_continue_spawn        proc    near
+       push    bp
+       mov     bp,sp
+
+       mov     sp,bp
+       pop     bp
+       ret
+_continue_spawn        endp
+
+_TEXT  ends
+
+       end