🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.os.os2.programmer
1 messages
1 total messages Started by Michael D Kretzer Sat, 22 Dec 1990 19:52
Re: Would some nice soul compile the serial port patch?
#2351
Author: Michael D Kretzer
Date: Sat, 22 Dec 1990 19:52
155 lines
4656 bytes
Thanks for the patch to make OS/2 recognize more than two serial ports.
However, I have one problem--I do not have a recent copy of Macro
Assembler (I won't compile on the version I have--2.0).  So, could
some nice soul on the net please compile COMEXP.ASM and post COMEXP.SYS
on comp.os2.binaries?  (Do I have to beg?)
Thanks...

[Save this as
COMEXP.DEF]<cut>-----<cut>-----<cut>-----<cut>-----<cut>-----<cut>

LIBRARY COMEXP INITGLOBAL
DATA PRELOAD NONSHARED
CODE PRELOAD
PROTMODE

[Save this as
COMEXP.ASM]<cut>-----<cut>-----<cut>-----<cut>-----<cut>-----<cut>

; Use this to build COMEXP.SYS
;
; MASM COMEXP;
; LINK COMEXP,COMEXP.SYS,nul,os2,COMEXP.DEF

.286p
.SEQ

COM3base    EQU 03E8h               ; You may need to change this !!!!!
COM3test    EQU COM3base+2
COM4base    EQU 02E8h
COM4test    EQU COM4base+2


ADATA   SEGMENT PARA PUBLIC 'AUTO'

nexthdr         dd      0FFFFFFFFh        ;pointer to next device driver
devattr         dw      8140h             ;attribute flags
stratof         dw      offset strategy   ;offset of strategy routine
entry
reserv1         dw      0
devname         db      'COMEXP00'
reserv2         db      8 dup (0)
devhelp         dd      0                 ;this is where we save the
DevHelp
                                          ;pointer
end_of_data     label   byte              ;the rest isn't needed after
init


initmsg         db      0Dh,0Ah
                db      'COM expander, '
                db      'Copyright (c) 1990, Carlo Adami',0Dh,0Ah
initmsglen      equ     $-offset initmsg

com3msg         db      'COM3 @3E8 Found',0Dh,0Ah
com3msglen      equ     $-offset com3msg

com4msg         db      'COM4 @2E8 Found',0Dh,0Ah
com4msglen      equ     $-offset com4msg

byteswritten    dw      0

ADATA   ENDS

DGROUP  GROUP   ADATA

        extrn   DosWrite:far


CODE      SEGMENT PARA 'CODE'

ASSUME    CS:CODE,DS:ADATA

strategy        proc far
        mov     al,es:[bx+2]           ;examine command code in req packet
        cmp     al,0                   ;"initialize" command
        je      initialize
        mov     word ptr es:[bx+3],0100h
        ret
end_of_code     label   byte           ;the rest isn't needed after init

initialize:
        mov     ax,es:[bx+14]          ;save "DevHlp" call address
        mov     word ptr devhelp,ax
        mov     ax,es:[bx+16]
        mov     word ptr devhelp+2,ax

        push    1
        push    ds
        push    offset initmsg
        push    initmsglen
        push    ds
        push    offset byteswritten
        call    DosWrite

        push    es
        push    di

        cld
        mov     ax, 40h
        mov     es, ax
        mov     di, 0

        mov     dx,COM3test
        in      al,dx
        test    al,0f8h
        jnz     com4
        mov     es:[di],COM3base

        push    1                   ; com3 found
        push    ds
        push    offset com3msg
        push    com3msglen
        push    ds
        push    offset byteswritten
        call    DosWrite

com4:   inc     di
        inc     di
        mov     dx,COM4test
        in      al,dx
        test    al,0f8h
        jnz     fine
        mov     es:[di],COM4base

        push    1                   ; com4 found
        push    ds
        push    offset com4msg
        push    com4msglen
        push    ds
        push    offset byteswritten
        call    DosWrite

fine:   inc     di
        inc     di
        mov     ax, 0           ; cleanup other addresses
        stosw
        mov     ax, 0
        stosw
        pop     di
        pop     es
        mov     word ptr es:[bx+14],offset end_of_code  ;set ending
offsets
        mov     word ptr es:[bx+16],offset end_of_data
        mov     word ptr es:[bx+18],0       ;set other req packet fields
        mov     word ptr es:[bx+20],0
        mov     word ptr es:[bx+3],0100h    ;set status and exit
        ret

strategy endp

CODE
ENDS

end
--<cut>-----<cut>-----<cut>-----<cut>-----<cut>-----<cut>-----<cut>-----<cut>
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads