diff --git a/CInclude/sockmisc.h b/CInclude/sockmisc.h index ee66e0582..634c6674b 100644 --- a/CInclude/sockmisc.h +++ b/CInclude/sockmisc.h @@ -258,6 +258,10 @@ typedef struct { #define DOMAIN_SERVER 53 /* TCP/UDP */ #define FINGER 79 /* TCP */ #define POP3 110 /* TCP */ +#define IMAP 143 /* TCP */ +#define SMTPS 465 /* TCP */ +#define IMAPS 993 /* TCP */ +#define POP3S 995 /* TCP */ /*-------------------------------------------------------------------------- * diff --git a/Include/hostif.def b/Include/hostif.def new file mode 100644 index 000000000..18857f4d0 --- /dev/null +++ b/Include/hostif.def @@ -0,0 +1,42 @@ +COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + Copyright (c) blueway.Softworks 2023 -- All Rights Reserved + +PROJECT: PC GEOS +MODULE: +FILE: hostif.def + +AUTHOR: Falk Rehwagen, Dec 21, 2023 + +REVISION HISTORY: + Name Date Description + ---- ---- ----------- + FR 12/21/23 Initial revision + + +DESCRIPTION: + + This file contains constants and defines functions for the hostif + library. + + $Id: hostif.def,v 1.1 97/04/04 14:24:16 newdeal Exp $ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ + +SetDef __HOSTIF + +StartLibrary hostif + +EOF equ -1 + + SetGeosConvention + +global HostIfDetect:far +global HOSTIFDETECT:far + + SetDefaultConvention + +EndLibrary hostif + + + diff --git a/Include/sockmisc.def b/Include/sockmisc.def index d3ff633c5..3b9043f07 100644 --- a/Include/sockmisc.def +++ b/Include/sockmisc.def @@ -286,6 +286,10 @@ WHOIS equ 43 ; TCP DOMAIN_SERVER equ 53 ; TCP/UDP FINGER equ 79 ; TCP POP3 equ 110 ; TCP +IMAP equ 143 ; TCP +SMTPS equ 465 ; TCP +IMAPS equ 993 ; TCP +POP3S equ 995 ; TCP ;--------------------------------------------------------------------------- ; diff --git a/Installed/Library/HostIf/Makefile b/Installed/Library/HostIf/Makefile new file mode 100644 index 000000000..c1fcf87e0 --- /dev/null +++ b/Installed/Library/HostIf/Makefile @@ -0,0 +1,28 @@ +# +# THIS FILE HAS BEEN GENERATED AUTOMATICALLY. +# +# If you edit it, you will lose your changes, should it be regenerated. +# +GEODE = hostif +ASM_TO_OBJS = hostif.asm +UI_TO_RDFS = +SRCS = hostif.asm +OBJS = hostif.obj +LOBJS = +LIBOBJ = $(DEVEL_DIR)/Include/$(GEODE).ldf +LIBNAME = hostif + +SYSMAKEFILE = geode.mk + +#include +#include + +#if exists(local.mk) +#include "local.mk" +#else +#include <$(SYSMAKEFILE)> +#endif + +#if exists($(DEPFILE)) +#include "$(DEPFILE)" +#endif diff --git a/Installed/Library/HostIf/dependencies.mk b/Installed/Library/HostIf/dependencies.mk new file mode 100644 index 000000000..73e72bf65 --- /dev/null +++ b/Installed/Library/HostIf/dependencies.mk @@ -0,0 +1,9 @@ +hostif.obj \ +hostif.eobj: geos.def heap.def geode.def resource.def library.def \ + ec.def vm.def dbase.def object.def lmem.def graphics.def \ + fontID.def font.def color.def thread.def gstring.def \ + text.def char.def Objects/inputC.def Objects/metaC.def \ + chunkarr.def geoworks.def Objects/winC.def win.def \ + hostif.def + +hostifEC.geo hostif.geo : geos.ldf \ No newline at end of file diff --git a/Installed/Makefile b/Installed/Makefile index cd162b7ac..2162b85fc 100644 --- a/Installed/Makefile +++ b/Installed/Makefile @@ -97,7 +97,7 @@ minimalLibrary : kernel swap sound net ui isui motif spool text mailbox \ jpeg giflib gif htmlimpx n2txt inetmsg extui \ winword8 zlib dirlist minizip idialc eps impex_libs \ thumbdb ftplib flllib sitelist int8087 intx87\ - basicdb gridlib gsol treplib + basicdb gridlib gsol treplib hostif #ascii prefLibs : prefvid prefts preftd \ @@ -340,6 +340,9 @@ Installed/Library/Spline: ui MAKELIB ssmeta : Installed/Library/SSMeta Installed/Library/SSMeta: ui math MAKELIB +hostif : Installed/Library/HostIf +Installed/Library/HostIf: kernel MAKELIB + # bsnwav will only be compiled (and is only referenced in WAV) if PRODUCT==NDO2000 wav : Installed/Library/Wav Installed/Library/Wav: kernel sound MAKELIB diff --git a/Library/HostIf/hostif.asm b/Library/HostIf/hostif.asm new file mode 100644 index 000000000..77cdf8a29 --- /dev/null +++ b/Library/HostIf/hostif.asm @@ -0,0 +1,173 @@ +COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + Copyright (c) blueway.Softworks 2023 -- All Rights Reserved + +PROJECT: Host Interface Library +FILE: hostif.asm + +AUTHOR: Falk Rehwagen, Dec 21, 2023 + +REVISION HISTORY: + Name Date Description + ---- ---- ----------- + fr 12/21/23 Initial revision + +DESCRIPTION: + + + $Id: hostif.asm,v 1.1 97/04/05 01:06:34 newdeal Exp $ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ + + +;------------------------------------------------------------------------------ +; Include files +;------------------------------------------------------------------------------ + +include geos.def +include ec.def +include heap.def +include geode.def +include resource.def +include library.def +include ec.def +include vm.def +include dbase.def + +include object.def +include graphics.def +include thread.def +include gstring.def +include Objects/inputC.def + +include Objects/winC.def + + +DefLib hostif.def + +COORDINATE_OVERFLOW enum FatalErrors +; Some internal error in TransformInkBlock + +udata segment +udata ends + +idata segment +idata ends + +Code segment resource + + +COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + HostIfEntry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +SYNOPSIS: Determine what the protocol # of the pen library is, so we + know if we need to add our workarounds. + +CALLED BY: GLOBAL +PASS: di - LibraryCallType +RETURN: nada +DESTROYED: nada + +PSEUDO CODE/STRATEGY: + +KNOWN BUGS/SIDE EFFECTS/IDEAS: + +REVISION HISTORY: + Name Date Description + ---- ---- ----------- + atw 10/22/93 Initial version + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ + +HostIfEntry proc far + .enter + clc + .leave + ret +HostIfEntry endp + + +COMMENT @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + HostIfDetect +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +SYNOPSIS: Determine what the protocol # of the pen library is, so we + know if we need to add our workarounds. + +CALLED BY: GLOBAL +PASS: nada +RETURN: ax - interface version, 0 mean no host interface found +DESTROYED: nada + +PSEUDO CODE/STRATEGY: + +KNOWN BUGS/SIDE EFFECTS/IDEAS: + +REVISION HISTORY: + Name Date Description + ---- ---- ----------- + FR 12/21/23 Initial version + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@ + +.ioenable + +baseboxID byte "XOBESAB1" + +HostIfDetect proc far + + ; + ; Check host call if SSL interface is available + ; + uses cx, dx, si + + .enter + + mov si, 0 + mov cx, 9 + mov ah, cs:baseboxID[si] +next: + mov dx, 38FFh + in al, dx + dec cx + + cmp al, ah + je start + cmp cx, 0 + jne next + je error +start: + mov cx, 7 +nextCompare: + inc si + mov ah, cs:baseboxID[si] + mov dx, 38FFh + in al, dx + cmp al, ah + jne error + dec cx + cmp cx, 0 + jne nextCompare + + ; matched 8 chars + mov dx, 38FFh + in al, dx + clr ah +done: + .leave + ret + +error: + mov ax, 0 + jmp done + +HostIfDetect endp + +HOSTIFDETECT proc far + GOTO HostIfDetect +HOSTIFDETECT endp + +Code ends + + diff --git a/Library/HostIf/hostif.gp b/Library/HostIf/hostif.gp new file mode 100644 index 000000000..cf04758af --- /dev/null +++ b/Library/HostIf/hostif.gp @@ -0,0 +1,46 @@ +############################################################################## +# +# Copyright (c) blueway.Softworks 2023 -- All Rights Reserved +# +# PROJECT: PC GEOS +# FILE: hostif.gp +# +# AUTHOR: Falk Rehwagen, 12/23 +# +# +# Parameters file for: hostif +# +# $Id: inkfix.gp,v 1.1 97/04/05 01:06:35 newdeal Exp $ +# +############################################################################## +# +# Permanent name +# +name hostif.lib +# +# Long name +# +longname "Host Interface Library" +# +# DB Token +# +tokenchars "HSTI" +tokenid 0 + +entry HostIfEntry + +# +# Specify geode type +# +type library, single + +# +# Import kernel routine definitions +# +library geos + +# +# Exported routines (and classes) +# +export HostIfDetect +export HOSTIFDETECT diff --git a/Library/HostIf/hostif.rev b/Library/HostIf/hostif.rev new file mode 100644 index 000000000..e0b774ad3 --- /dev/null +++ b/Library/HostIf/hostif.rev @@ -0,0 +1,2 @@ +R 6.0.0.0 <15:25:21 Nov 19, 2023> +P 1.0 diff --git a/Library/SSL/ssl.gp b/Library/SSL/ssl.gp index b437e657d..ee0e8c70a 100644 --- a/Library/SSL/ssl.gp +++ b/Library/SSL/ssl.gp @@ -32,6 +32,7 @@ entry SSLLIBRARYENTRY library geos library ansic library socket +library hostif ifdef COMPILE_OPTION_MAP_HEAP #library mapheap diff --git a/Library/SSL/ssl/sslManager.asm b/Library/SSL/ssl/sslManager.asm index 06e801c66..a9d1c50f7 100644 --- a/Library/SSL/ssl/sslManager.asm +++ b/Library/SSL/ssl/sslManager.asm @@ -4,6 +4,8 @@ include geode.def include ec.def include file.def +UseLib hostif.def + include Internal/host.def global SSLCALLHOST:far @@ -72,15 +74,21 @@ REVISION HISTORY: mzhu 11/30/98 initial version -------------------------------------------------------------------------@ SetGeosConvention + SSLCHECKHOST proc far ; ; Check host call if SSL interface is available ; - uses cx + uses cx, dx, si .enter + call HostIfDetect + cmp ax, 0 + je error + + ; matched 8 chars mov ax, 1 mov cx, 2 int 0xA0 @@ -95,7 +103,6 @@ done: error: mov ax, 0 - jmp done SSLCHECKHOST endp diff --git a/Tools/build/product/bbxensem/bbxensem.filetree b/Tools/build/product/bbxensem/bbxensem.filetree index 8c7186304..e4998d21b 100644 --- a/Tools/build/product/bbxensem/bbxensem.filetree +++ b/Tools/build/product/bbxensem/bbxensem.filetree @@ -391,6 +391,8 @@ DIR (ensemble) { Library/dil/bbxmail/bbxmlib{ec}.geo + Library/HostIf/hostif{ec}.geo + # # GPC Browser libraries # @@ -402,7 +404,7 @@ DIR (ensemble) { Library/Breadbox/Giflib/giflib{ec}.geo GFS LOCALPC Library/Cookies/{dbcs}/cookies{ec}.geo GFS LOCALPC # Library/JS/{dbcs}/js{ec}.geo GFS LOCALPC - #Library/Breadbox/FJPEG/{dbcs}/FJPEG{ec}.geo GFS LOCALPC + Library/Breadbox/Fjpeg/{dbcs}/FJPEG{ec}.geo GFS LOCALPC # # for WebMagick (and InfoServ) @@ -432,6 +434,8 @@ DIR (ensemble) { Library/Breadbox/SStor/sstor{ec}.geo Library/Breadbox/Impex/WFWLib/wfwlib{ec}.geo + Library/HostIf/hostif{ec}.geo + DIR (font) { Driver/Font/Nimbus/{dbcs}/nimbus{ec}.geo GFS LOCALPC Driver/Font/TrueType/{dbcs}/truetype{ec}.geo GFS LOCALPC @@ -494,8 +498,8 @@ DIR (ensemble) { # # Breadbox ImpGraph Library # - # Library/Breadbox/ImpGraph/FJPEG{dbcs}/impgraph{ec}.geo GFS LOCALPC - Library/Breadbox/ImpGraph/impgraph{ec}.geo GFS LOCALPC + Library/Breadbox/ImpGraph/FJPEG{dbcs}/impgraph{ec}.geo GFS LOCALPC + #Library/Breadbox/ImpGraph/impgraph{ec}.geo GFS LOCALPC # # Breadbox ImpDoc Library @@ -762,6 +766,7 @@ DIR (ensemble) { Driver/Socket/EtherODI/etherodi{ec}.geo GFS LOCALPC Driver/Socket/EtherPKT/etherpkt{ec}.geo GFS LOCALPC Library/DHCP/dhcp{ec}.geo GFS LOCALPC + Driver/Socket/HstTCPIP/hsttcpip{ec}.geo XIP=XIP GFS LOCALPC } diff --git a/Tools/goc/parse.c b/Tools/goc/parse.c index 708b5243a..97a17f1b5 100644 --- a/Tools/goc/parse.c +++ b/Tools/goc/parse.c @@ -8146,15 +8146,15 @@ GenerateMethodDef(Method *meth) */ switch (meth->model) { case MM_FAR: - Output("%sInstance *pself, ", + Output("%sInstance *volatile pself, ", meth->class->data.symClass.root); break; case MM_NEAR: - Output("%sInstance _near *pself, ", + Output("%sInstance _near *volatile pself, ", meth->class->data.symClass.root); break; case MM_BASED: - Output("_segment sself, %sInstance _based(sself) *pself, ", + Output("volatile _segment sself, volatile %sInstance _based(sself) *pself, ", meth->class->data.symClass.root); break; }