8086/8087/8088 MACRO ASSEMBLER RPIN 17:10:27 04/22/83 PAGE 1 VAX/VMS 8086/8087/8088 MACRO ASSEMBLER V1.0 ASSEMBLY OF MODULE RPIN OBJECT MODULE PLACED IN RHPIN.OBJ NO INVOCATION LINE CONTROLS LOC OBJ LINE SOURCE 1 ; Code and Data Interface for PIN RSP 2 ; Virtual console support for Concurrent CP/M 3 4 ; March 30, 1982 5 6 name rpin 7 8 cgroup group code 9 dgroup group dats 10 11 assume cs:cgroup,ds:dgroup 12 13 public xdos,mon1,mon2,mon3,mon4,intsys 14 public rsplink, pd, ncopies, udaseg 15 public u_retseg, u_wrkseg, u_insys 16 extrn plmstart:near 17 ---- 18 code segment public 'CODE' 19 0000 20 xdos proc 0000 55 21 push bp 0001 8BEC 22 mov bp,sp 0003 8B5604 23 mov dx,[bp+4] 0006 8B4E06 24 mov cx,[bp+6] 0009 CDE0 25 int 224 000B 5D 26 pop bp 000C C20400 27 ret 4 28 xdos endp 29 000F 30 intsys proc ;call O.S. as if we are 000F 55 31 push bp ;already in it 0010 8BEC 32 mov bp,sp 0012 8B5E04 33 mov bx,[bp+4] 0015 8B5606 34 mov dx,[bp+6] 0018 8B4E08 35 mov cx,[bp+8] 36 001B 1E 37 push ds 001C 8E1E0000 R 38 mov ds,rsplink ;DS = Sysdat Segment 0020 8B366800 39 mov si,ds:word ptr rlr 0024 8E441090 40 mov es,[si+p_uda] 0028 FF1E000090 41 call ds:dword ptr [supervisor] 002D 1F 42 pop ds 43 002E 5D 44 pop bp 002F C20600 45 ret 6 46 intsys endp 47 0000 48 mon1 equ xdos 0000 49 mon2 equ xdos 0000 50 mon3 equ xdos 8086/8087/8088 MACRO ASSEMBLER RPIN 17:10:27 04/22/83 PAGE 2 LOC OBJ LINE SOURCE 0000 51 mon4 equ xdos ---- 52 code ends 53 ---- 54 dats segment public 'DATA' 55 0068 56 rlr equ 68h ;ready list root 0010 57 p_uda equ 10h ;UDA in process descriptor 0000 58 supervisor equ 0 ;supervisor entry point for internal 0047 59 nvcns equ 47h 0010 60 rsphdr_len equ 16 0030 61 pd_len equ 30H 0100 62 uda_len equ 100H 0060 63 insysoff equ 60H 0000 64 rsp_top equ 0 0010 65 rsp_pd equ rsp_top + rsphdr_len 0040 66 rsp_uda equ rsp_pd + pd_len 0140 67 rsp_bottom equ rsp_uda + uda_len 68 0000 69 org rsp_top 70 ;RSP header 0000 0000 71 rsplink dw 0 ;becomes system data page paragraph 0002 0000 72 sdatvar dw 0 ;tell gensys to one 0004 00 73 ncopies db 0 0005 0000 74 dw 0,0,0,0, 0 0007 0000 0009 0000 000B 0000 000D 0000 000F 00 75 db 0 0010 76 org rsp_pd 0010 0000 77 pd dw 0,0 ;link fields 0012 0000 0014 00 78 db 0 ;status 0015 B9 79 db 185 ;initial priority better than TMP - worse than 80 ;VOUT 0016 0300 81 dw 3 ;flags - system and keep 0018 50494E20202020 82 db 'PIN ' ;name 20 0020 0400 83 udaseg dw rsp_uda/10h ;uda paragraph 0022 00 84 db 0,0 ;disk,user 0023 00 0024 00 85 db 0,0 ;ldisk,luser 0025 00 0026 FF00 86 dw 0ffh ;puremem - re-entrant 87 ;rest of pd 88 0040 89 org rsp_uda ;start of uda 0040 0000 90 uda dw 0 0042 0000 91 dw 0 ;no default DMA 0044 0000 92 dw 0,0,0,0, 0,0,0,0, 0,0,0,0 0046 0000 0048 0000 004A 0000 004C 0000 004E 0000 8086/8087/8088 MACRO ASSEMBLER RPIN 17:10:27 04/22/83 PAGE 3 LOC OBJ LINE SOURCE 0050 0000 0052 0000 0054 0000 0056 0000 0058 0000 005A 0000 005C 0000 93 dw 0,0,0,0, 0,0,0,0, 0,0,0,0 005E 0000 0060 0000 0062 0000 0064 0000 0066 0000 0068 0000 006A 0000 006C 0000 006E 0000 0070 0000 0072 0000 0074 3A01 R 94 dw offset stk_top 0076 0000 95 dw 0,0,0,0, 0,0,0,0 0078 0000 007A 0000 007C 0000 007E 0000 0080 0000 0082 0000 0084 0000 0086 0000 96 u_wrkseg dw 0 0088 0000 97 u_retseg dw 0 00A0 98 org rsp_uda + insysoff 00A0 01 99 u_insys db 1 00A1 00 100 db 0 ;u_stat_save 00A2 0000 101 dw 0 ;ccb 00A4 0000 102 dw 0 ;lcb 00A6 00 103 db 0 ;print string delimiter 104 00A7 (147 105 db 93h dup (0cch) ;fill rest of UDA stack with INT3s CC ) 106 013A 0000 E 107 stk_top dw plmstart 013C 0000 108 dw 0,0 ;segment, flags: unknown 013E 0000 109 ---- 110 dats ends 111 end ASSEMBLY COMPLETE, NO ERRORS FOUND