mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 09:54:20 +00:00
187 lines
8.8 KiB
Plaintext
187 lines
8.8 KiB
Plaintext
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
|