home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols200
/
vol217
/
quein.a86
< prev
next >
Wrap
Text File
|
1994-07-13
|
3KB
|
130 lines
title 'Create MXconsN Queues'
;-------------------------------------------------------------------
;QUEIN.A86
;
; MXconsN queues for MC-DOS
; Routine to create the queues MXconsN (N = Console number)
;
; The MXconsN queues may then be used by application programs that
; require a console port for direct I/O.
;
; QUEIN.CMD should be called from the SYSINIT.SUB file on A0 allowing
; the queues to be created during start up.
;
;
; 11/24/84 Alex Soya
;-------------------------------------------------------------------
;
;
;
;MC-DOS function calls:
;
P_TERMCPM EQU 0 ; Terminate program
C_WRITESTR EQU 9 ; Print Ascii string to default console
Q_MAKE EQU 134 ; Create a system queue.
Q_OPEN EQU 135 ; Open a system queue
Q_WRITE EQU 139 ; Write a message to system queue
;Some equates:
;
cr equ 0dh
lf equ 0ah
MAXCON equ 2 ; Max Console number (1 - 9)
; to be used for direct port I/O
; MXcon0 will not be created as this
; is the Systems Console and should not
; be used for anything other than the
; console.
;
CSEG ; Using Small model
start: mov SP, offset STACK
mov AX,DS
mov SS,AX
mov cx,MAXCON ; Ques are created from MAXCON down
quelp: push cx ; save current count
mov ax,cx
add al,'0' ; Make que number ascii
mov qdname+6,al ; Make que name
mov qpname+6,al
mov msname+6,al
mov Word ptr qd,0 ; fill the crap
mov Word ptr qd+2,0
mov Word ptr qd+22,0
mov Word ptr qd+24,0
mov Word ptr qd+26,0
mov Word ptr buffer, Offset msgbuf
mov Word ptr flags,1 ; this is a MX que
mov Word ptr msglen,0
mov Word ptr nmsgs,1
mov dx, offset qd ; get que descriptor offset
mov cl, Q_MAKE ; make that que
call bdos
mov Word ptr qpb,0 ; now fill in the crap in the QPB
mov word ptr qpb+4,0
mov word ptr qpbuf, offset msgbuf
mov dx, offset qpb
mov cl, Q_OPEN ; open the que
call bdos
mov cl, Q_WRITE ; and write to the que
call bdos
mov cl, C_WRITESTR ; Tell operator which que was created
mov dx, offset msg
call bdos
pop cx
loop quelp ; and do the next one
mov cl,P_TERMCPM ; and terminate
int 224
bdos: push cx
push dx
int 224
pop dx
pop cx
ret
DSEG
ORG 100h
qd dw 0 ; Que descriptor
dw 0
flags dw 1 ; its an MX que
qdname db 'MXcons ' ; My name is MXcons
msglen dw 0 ; message is 0 long
nmsgs dw 1 ; 1 message at a time
dw 0
dw 0
dw 0
buffer dw offset msgbuf
qpb dw 0 ; Que parameter block
qpid dw 0 ; ID field
dw 0
qpbuf dw offset msgbuf
qpname db 'MXcons '
msgbuf dw 0
msg db 'Console exclusion queue: '
msname db 'MXcons - created',cr,lf,'$'
rw 36
stack rw 0 ; here is our local stack