8086/8087/8088 MACRO ASSEMBLER    RVOUT                                                     18:10:17  04/22/83  PAGE    1


VAX/VMS 8086/8087/8088 MACRO ASSEMBLER V1.0 ASSEMBLY OF MODULE RVOUT
OBJECT MODULE PLACED IN RHVOUT.OBJ
NO INVOCATION LINE CONTROLS


LOC  OBJ                  LINE     SOURCE

                             1     ;       Code and Data Interface for VOUT RSP
                             2     ;       (for virtual console support)
                             3     ;       March 30, 1983
                             4     
                             5     name    rvout
                             6     
                             7     cgroup  group   code
                             8     dgroup  group   dats
                             9     
                            10     assume   cs:cgroup,ds:dgroup
                            11     
                            12             public  xdos,mon1,mon2,mon3,mon4,intsys
                            13             public rsplink,pd,udaseg,u_retseg,u_wrkseg
                            14             public u_insys, ncopies
                            15             extrn  plmstart:near
                            16     
                            17     
----                        18     dats    segment public  'DATA'
0000                        19     org     0
                            20     
  0010                      21     rsphdr_len      equ     16
  0030                      22     pd_len          equ     30H
  0100                      23     uda_len         equ     100H
  0060                      24     insysoff        equ     60H
  0000                      25     rsp_top         equ     0
  0010                      26     rsp_pd          equ     rsp_top + rsphdr_len
  0040                      27     rsp_uda         equ     rsp_pd + pd_len
  0140                      28     rsp_bottom      equ     rsp_uda + uda_len
0000                        29             org     rsp_top
                            30                                     ;RSP header
0000 0000                   31     rsplink dw      0               ;becomes system data page paragraph
0002 4700                   32     sdatvar dw      nvcns           ;gensys makes a copy per virtual cons
0004 00                     33     ncopies db      0
0005 0000                   34             dw      0,0,0,0, 0
0007 0000
0009 0000
000B 0000
000D 0000
000F 00                     35             db      0
0010                        36             org     rsp_pd
0010 0000                   37     pd      dw      0,0             ;link fields
0012 0000
0014 00                     38             db      0               ;status
0015 B4                     39             db      180             ;initial priority - better than TMPs and PIN
0016 0300                   40             dw      3               ;flags - system and keep
0018 564F5554202020         41             db      'VOUT    '      ;name
     20
0020 0400                   42     udaseg  dw      rsp_uda/10h     ;uda paragraph
0022 00                     43             db      0,0             ;disk,user
0023 00
8086/8087/8088 MACRO ASSEMBLER    RVOUT                                                    18:10:17  04/22/83  PAGE    2


LOC  OBJ                  LINE     SOURCE

0024 00                     44             db      0,0             ;ldisk,luser
0025 00
0026 FF00                   45             dw      0ffh            ;puremem - re-entrant
                            46                                     ;rest of pd
                            47     
0040                        48     org     rsp_uda                 ;start of uda
0040 0000                   49     uda             dw      0
0042 0000                   50                     dw      0       ;init DMA, must be set by program
0044 0000                   51                     dw      0,0,0,0, 0,0,0,0, 0,0,0,0
0046 0000
0048 0000
004A 0000
004C 0000
004E 0000
0050 0000
0052 0000
0054 0000
0056 0000
0058 0000
005A 0000
005C 0000                   52                     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       53                     dw      offset stk_top
0076 0000                   54                     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                   55     u_wrkseg        dw      0
0088 0000                   56     u_retseg        dw      0
                            57     
00A0                        58     org     rsp_uda + insysoff
00A0 01                     59     u_insys         db      1
00A1 00                     60                     db      0       ;status save
00A2 0000                   61                     dw      0       ;ccb
00A4 0000                   62                     dw      0       ;lcb
00A6 00                     63                     db      0       ;delimiter for print string
                            64     
00A7 (147                   65                     db      93h dup (0cch)  ;fill UDA stack with INT 3s
     CC
     )
                            66     
8086/8087/8088 MACRO ASSEMBLER    RVOUT                                                    18:10:17  04/22/83  PAGE    3


LOC  OBJ                  LINE     SOURCE

013A 0000           E       67     stk_top dw      plmstart
013C 0000                   68             dw      0,0             ;segment and flags - unknown
013E 0000
                            69     
----                        70     dats ends
                            71     
----                        72     code    segment public 'CODE'
                            73     
0000 434F5059524947         74             db      'COPYRIGHT (C) 1983,'
     48542028432920
     313938332C
0013 20444947495441         75             db      ' DIGITAL RESEARCH '
     4C205245534541
     52434820
                            76     
0025                        77     xdos    proc    
0025 55                     78             push    bp
0026 8BEC                   79             mov     bp,sp
0028 8B5604                 80             mov     dx,[bp+4]
002B 8B4E06                 81             mov     cx,[bp+6]
002E CDE0                   82             int     224
0030 5D                     83             pop     bp
0031 C20400                 84             ret     4
                            85     xdos    endp
                            86     
  0025                      87     mon1    equ     xdos
  0025                      88     mon2    equ     xdos
  0025                      89     mon3    equ     xdos
  0025                      90     mon4    equ     xdos
                            91     
  0000                      92     supervisor      equ     0
  0068                      93     rlr             equ     68h
  0010                      94     p_uda           equ     10h
  0047                      95     nvcns           equ     47h
                            96     
0034                        97     intsys  proc                            ;call O.S. as if we are
0034 55                     98             push bp                         ;already in it
0035 8BEC                   99             mov bp,sp
                           100     
0037 8B5E04                101             mov bx, [bp+4]
003A 8B5606                102             mov dx, [bp+6]
003D 8B4E08                103             mov cx, [bp+8]
                           104     
                           105     
0040 1E                    106             push ds
0041 8E1E0000       R      107             mov ds, rsplink                 ;DS = Sysdat Segment
0045 8B366800              108             mov si, ds:word ptr rlr
0049 8E4410                109             mov es, [si + p_uda]
004C FF1E0000              110             call ds:dword ptr [supervisor]
0050 1F                    111             pop ds
                           112     
0051 5D                    113             pop bp
0052 C20600                114             ret 6
                           115     intsys  endp
                           116     
8086/8087/8088 MACRO ASSEMBLER    RVOUT                                                    18:10:17  04/22/83  PAGE    4


LOC  OBJ                  LINE     SOURCE

----                       117     code    ends
                           118     end

ASSEMBLY COMPLETE, NO ERRORS FOUND

