MCS-86 MACRO ASSEMBLER    SCD                                                                                  PAGE    1


ISIS-II MCS-86 MACRO ASSEMBLER V2.1 ASSEMBLY OF MODULE SCD
OBJECT MODULE PLACED IN :F0:SCD.OBJ
ASSEMBLER INVOKED BY:  :F0: SCD.A86 XREF
                       

LOC  OBJ                  LINE     SOURCE

                             1     ;
                             2     ;       Concurrent CP/M-86 v2.0 with BDOS version 3.1
                             3     ;       Interface for PLM-86 with separate code and data
                             4     ;       Code org'd at 0
                             5     ;       Created:
                             6     ;               October 5, 1981 by Danny Horovitz
                             7     ;       Revised:
                             8     ;               28 Mar 83 by Bill Fitler
                             9     
                            10     name    scd
                            11     
                            12     dgroup  group   dats,stack
                            13     cgroup  group   code
                            14     
                            15     assume  cs:cgroup, ds:dgroup, ss:dgroup
                            16     
----                        17     stack           segment word stack 'STACK'
0000                        18     stack_base      label byte
----                        19     stack           ends
                            20     
----                        21     dats     segment para public 'DATA'     ;CP/M page 0 - LOC86'd at 0H
                            22     
0004                        23             org     4
0004 ??                     24     bdisk   db      ?
0006                        25             org     6
0006 ????                   26     maxb    dw      ?
0050                        27             org     50h
0050 ??                     28     cmdrv   db      ?
0051 ????                   29     pass0   dw      ?
0053 ??                     30     len0    db      ?
0054 ????                   31     pass1   dw      ?
0056 ??                     32     len1    db      ?
005C                        33             org     5ch
005C (16                    34     fcb     db      16 dup (?)
     ??
     )
006C (16                    35     fcb16   db      16 dup (?)
     ??
     )
007C ??                     36     cr      db      ?
007D ????                   37     rr      dw      ?
007F ??                     38     ro      db      ?
0080 (128                   39     buff    db      128 dup (?)
     ??
     )
  0080                      40     tbuff   equ     buff
  0080                      41     buffa   equ     buff
  005C                      42     fcba    equ     fcb
                            43     
0100                        44             org     100h            ;past CPM data space
MCS-86 MACRO ASSEMBLER    SCD                                                                                  PAGE    2


LOC  OBJ                  LINE     SOURCE

0100 0000                   45     saveax  dw 0                    ;save registers for mon functions
0102 0000                   46     savebx  dw 0
0104 0000                   47     savecx  dw 0
0106 0000                   48     savedx  dw 0
                            49             public  bdisk,maxb,cmdrv,pass0,len0
                            50             public  pass1,len1,fcb,fcb16,cr,rr
                            51             public  ro,buff,tbuff,buffa,fcba
                            52             public  saveax,savebx,savecx,savedx
                            53     
----                        54     dats ends
                            55     
                            56     
----                        57     code    segment public  'CODE'
                            58     public  xdos,mon1,mon2,mon3,mon4
                            59     extrn   plmstart:near
                            60     
0000                        61             org     0h              ; for separate code and data
0000 EB4B90                 62             jmp     pastserial      ; skip copyright
0003 EB7690                 63             jmp     patch           ; store address of patch routine at start
0006 434F5059524947         64             db      'COPYRIGHT (C) 1983, DIGITAL RESEARCH '
     48542028432920
     313938332C2044
     49474954414C20
     52455345415243
     4820
002B 20434F4E435552         65             db      ' CONCURRENT CP/M-86 2.0, 03/31/83 ' ; db ' MP/M-86 2.0, 10/5/81 '
     52454E54204350
     2F4D2D38362032
     2E302C2030332F
     33312F383320
004D                        66     pastserial:
004D 9C                     67             pushf 
004E 58                     68             pop     ax
004F FA                     69             cli
0050 8CD9                   70             mov     cx,ds
0052 8ED1                   71             mov     ss,cx
0054 8D260000       R       72             lea     sp,stack_base
0058 50                     73             push    ax
0059 9D                     74             popf
005A E90000         E       75             jmp     plmstart
                            76     
005D                        77     xdos    proc
005D 55                     78             push    bp
005E 8BEC                   79             mov     bp,sp
0060 8B5604                 80             mov     dx,[bp+4]
0063 8B4E06                 81             mov     cx,[bp+6]
0066 CDE0                   82             int     224
0068 A30001         R       83             mov     saveax,ax
006B 891E0201       R       84             mov     savebx,bx
006F 890E0401       R       85             mov     savecx,cx
0073 89160601       R       86             mov     savedx,dx
0077 5D                     87             pop     bp
0078 C20400                 88             ret     4
                            89     xdos    endp
                            90     
MCS-86 MACRO ASSEMBLER    SCD                                                                                  PAGE    3


LOC  OBJ                  LINE     SOURCE

  005D                      91     mon1    equ     xdos            ; no returned value
  005D                      92     mon2    equ     xdos            ; returns byte in AL
  005D                      93     mon3    equ     xdos            ; returns address or word BX
  005D                      94     mon4    equ     xdos            ; returns pointer in BX and ES
                            95     
007B                        96     patch:
007B 90                     97             nop 
007C 90                     98             nop
007D 90                     99             nop
007E 90                    100             nop
0100                       101             org 0100h               ; leave room for patch area
                           102     
----                       103     code    ends
                           104     end
MCS-86 MACRO ASSEMBLER    SCD                                                                                  PAGE    4


XREF SYMBOL TABLE LISTING
---- ------ ----- -------


NAME        TYPE     VALUE  ATTRIBUTES, XREFS

??SEG . . . SEGMENT         SIZE=0000H PARA PUBLIC 
BDISK . . . V BYTE   0004H  DATS PUBLIC  24# 49
BUFF. . . . V BYTE   0080H  DATS PUBLIC  39# 40 41 51
BUFFA . . . V BYTE   0080H  DATS PUBLIC  41# 51
CGROUP. . . GROUP           CODE   13# 15
CMDRV . . . V BYTE   0050H  DATS PUBLIC  28# 49
CODE. . . . SEGMENT         SIZE=0100H PARA PUBLIC 'CODE'  13# 57 103
CR. . . . . V BYTE   007CH  DATS PUBLIC  36# 50
DATS. . . . SEGMENT         SIZE=0108H PARA PUBLIC 'DATA'  12# 21 54
DGROUP. . . GROUP           DATS STACK   12# 15 15
FCB . . . . V BYTE   005CH  DATS PUBLIC  34# 42 50
FCB16 . . . V BYTE   006CH  DATS PUBLIC  35# 50
FCBA. . . . V BYTE   005CH  DATS PUBLIC  42# 51
LEN0. . . . V BYTE   0053H  DATS PUBLIC  30# 49
LEN1. . . . V BYTE   0056H  DATS PUBLIC  32# 50
MAXB. . . . V WORD   0006H  DATS PUBLIC  26# 49
MON1. . . . L NEAR   005DH  CODE PUBLIC  58 91#
MON2. . . . L NEAR   005DH  CODE PUBLIC  58 92#
MON3. . . . L NEAR   005DH  CODE PUBLIC  58 93#
MON4. . . . L NEAR   005DH  CODE PUBLIC  58 94#
PASS0 . . . V WORD   0051H  DATS PUBLIC  29# 49
PASS1 . . . V WORD   0054H  DATS PUBLIC  31# 50
PASTSERIAL. L NEAR   004DH  CODE  62 66#
PATCH . . . L NEAR   007BH  CODE  63 96#
PLMSTART. . L NEAR   0000H  EXTRN  59# 75
RO. . . . . V BYTE   007FH  DATS PUBLIC  38# 51
RR. . . . . V WORD   007DH  DATS PUBLIC  37# 50
SAVEAX. . . V WORD   0100H  DATS PUBLIC  45# 52 83
SAVEBX. . . V WORD   0102H  DATS PUBLIC  46# 52 84
SAVECX. . . V WORD   0104H  DATS PUBLIC  47# 52 85
SAVEDX. . . V WORD   0106H  DATS PUBLIC  48# 52 86
STACK . . . SEGMENT         SIZE=0000H WORD  STACK 'STACK'
STACK_BASE. V BYTE   0000H  STACK  18# 72
TBUFF . . . V BYTE   0080H  DATS PUBLIC  40# 51
XDOS. . . . L NEAR   005DH  CODE PUBLIC  58 77# 89 91 92 93 94


ASSEMBLY COMPLETE, NO ERRORS FOUND
