Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

187 lines
8.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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