This commit is contained in:
Frater 2017-09-24 01:45:36 +02:00
commit 43352ff262
1291 changed files with 220976 additions and 0 deletions

173
DIS/DISC.ASM Normal file
View file

@ -0,0 +1,173 @@
;DIS - C interface, Large memory model
CBEG MACRO ;C/Assembler procedure begin
push bp
mov bp,sp
push si
push di
push ds
ENDM
CEND MACRO ;C/Assembler procedure end
pop ds
pop di
pop si
pop bp
ret
ENDM
movpar MACRO reg,par ;loads parameter [par(0..)] to register [reg]
mov reg,[bp+par*2+6]
ENDM
text_disc SEGMENT para public 'CODE'
ASSUME cs:text_disc
LOCALS
public _dis_version ;int _dis_version(void)
_dis_version PROC FAR
xor ax,ax
mov es,ax
mov bx,es:[0fch*4+0]
mov es,es:[0fch*4+2]
cmp es:[bx-2],0fc0h
jne @@1
cmp es:[bx-4],0fc0h
jne @@1
xor bx,bx
int 0fch
@@1: ret
_dis_version ENDP
public _dis_waitb ;int _dis_waitb(void)
_dis_waitb PROC FAR
mov bx,1
int 0fch
ret
_dis_waitb ENDP
error_nodis db 'ERROR: DIS not loaded.$'
public _dis_partstart ;void _dis_partstart(void)
_dis_partstart PROC FAR
call _dis_version
cmp ax,0
jne @@1
mov ax,cs
mov ds,ax
mov dx,OFFSET error_nodis
mov ah,9
int 21h
mov ax,4c03h
int 21h
@@1: ret
_dis_partstart ENDP
public _dis_exit ;int _dis_exit(void)
_dis_exit PROC FAR
mov bx,2
int 0fch
ret
_dis_exit ENDP
public _dis_indemo ;int _dis_indemo(void)
_dis_indemo PROC FAR
mov bx,3
int 0fch
ret
_dis_indemo ENDP
public _dis_msgarea ;void *_dis_msgarea(void)
_dis_msgarea PROC FAR
push bp
mov bp,sp
mov ax,[bp+6]
mov bx,5
int 0fch
pop bp
ret
_dis_msgarea ENDP
public _dis_muscode ;int _dis_muscode(void)
_dis_muscode PROC FAR
push bp
mov bp,sp
mov ax,[bp+6]
mov bx,6
int 0fch
pop bp
ret
_dis_muscode ENDP
public _dis_musplus ;int _dis_musplus(void)
_dis_musplus PROC FAR
push bp
mov bp,sp
mov ax,[bp+6]
mov bx,6
int 0fch
mov ax,dx
pop bp
ret
_dis_musplus ENDP
public _dis_musrow ;int _dis_musrow(void)
_dis_musrow PROC FAR
push bp
mov bp,sp
mov bx,6
int 0fch
mov ax,bx
pop bp
ret
_dis_musrow ENDP
public _dis_setcopper ;void _dis_copper(int routine_number,void *routine)
_dis_setcopper PROC FAR
push bp
mov bp,sp
mov ax,[bp+6]
mov cx,[bp+8]
mov dx,[bp+10]
mov bx,7
int 0fch
pop bp
ret
_dis_setcopper ENDP
public _dis_setmframe ;void _dis_setmframe(int frame)
_dis_setmframe PROC FAR
push bp
mov bp,sp
mov dx,[bp+6]
mov ax,1
mov bx,9
int 0fch
pop bp
ret
_dis_setmframe ENDP
public _dis_getmframe ;void _dis_getmframe(void)
_dis_getmframe PROC FAR
push bp
mov bp,sp
xor ax,ax
mov bx,9
int 0fch
pop bp
ret
_dis_getmframe ENDP
public _dis_sync ;void _dis_sync(void)
_dis_sync PROC FAR
push bp
mov bp,sp
mov bx,10
int 0fch
pop bp
ret
_dis_sync ENDP
text_disc ENDS
END