Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT1.A86
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

126 lines
2.1 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.

CODE CSEG
CGROUP GROUP CODE
DGROUP GROUP DATA,__pname,__tname,__lname,__xeof,_break
EXTRN _main:NEAR
EXTRN exit:NEAR
PUBLIC brk
PUBLIC __BDOS
PUBLIC _start
PUBLIC _sav
PUBLIC _ret
PUBLIC _swpll
DB 'C runtime library, Copyright 1982,1983by Digital Research 86 V0.8'
DB 01AH
_start: MOV AX,DS
MOV SS,AX
MOV BX,6
MOV SP,[BX] ;set up ss:sp
MOV AX,WORD PTR ?MEMRY
MOV __break,AX ;set up __break for brk()
MOV BX,80H ;offset of command line
MOV AL,BYTE PTR [BX];get length
XOR AH,AH
PUSH AX
MOV AX,81H ;offset of command line data
PUSH AX
CALL _main
CALL exit
_sav: POP DX ;RET ADDR
PUSH BP
MOV BP,SP
PUSH DI
PUSH SI
JMP DX
_ret: POP SI ;FLUSH RET ADDR
LEA SI,0-4[BP]
MOV SP,SI
POP SI
POP DI
POP BP
RET
_swpll:
POP ES ;SAVE RET ADDR
POP DX
POP CX
POP BX
POP AX
PUSH CX
PUSH DX
PUSH AX
PUSH BX
PUSH ES
RET
brk: PUSH BP
MOV BP,SP
PUSH DI
PUSH SI
MOV AX,4[BP] ;GET PARAMETER
MOV BX,SP ;GET STACK POINTER
SUB BX,200H ;LEAVE SOME SLOP
CMP AH,BH ;IN THE GENERAL AREA?
JA BRKOK ;IF NOT THEN OK, LEAVE IT ALONE
MOV AX,-1
JMP BRKXIT
BRKOK: MOV AX,0
BRKXIT: POP SI
POP DI
POP BP
RET
__BDOS: ;(func,long)
PUSH BP
MOV BP,SP
PUSH DI
PUSH SI
MOV CX,4[BP]
MOV DX,6[BP]
PUSH BP
INT 0E0H
POP BP
POP SI
POP DI
POP BP
XOR AH,AH
RET
DATA DSEG BYTE
PUBLIC ?MEMRY
?MEMRY RW 2
_break DSEG BYTE COMMON
__break RW 1
__pname DSEG BYTE COMMON
_pname DB 'Cprogram',0
__tname DSEG BYTE COMMON
_tname DB 'CON:',0
__lname DSEG BYTE COMMON
_lname DB 'LST:',0
__xeof DSEG BYTE COMMON
_xeof DB 01AH
END