Finished Windows port (but no video)

main
Blake McBride 2015-05-31 12:31:46 -05:00
parent 31b756b794
commit d2024d1a02
5 changed files with 50 additions and 94 deletions

View File

@ -36,8 +36,8 @@ open_clpars_tec(ifile)
FILE **ifile; FILE **ifile;
#endif #endif
{ {
#ifdef MSDOS #if defined(MSDOS) || defined(WIN32)
*ifile = fopen("clpars.tec","rb"); *ifile = fopen("win\\clpars.tec","rt");
#else #else
*ifile = fopen("clpars.tec","r"); *ifile = fopen("clpars.tec","r");
#endif #endif
@ -56,7 +56,7 @@ open_clpars_h(ofile)
FILE **ofile; FILE **ofile;
#endif #endif
{ {
#ifdef MSDOS #if defined(MSDOS) || defined(WIN32)
*ofile = fopen("clpars.h","wt"); *ofile = fopen("clpars.h","wt");
#else #else
*ofile = fopen("clpars.h","w"); *ofile = fopen("clpars.h","w");

View File

@ -1,6 +1,6 @@
!CLPARS.TEC V2.2 5-June-1991 Pete Siemsen and Mark Henderson![F0,0XF !CLPARS.TEC V2.1 5-May-1991 Pete Siemsen and Mark Henderson![F0,0XF
[90,0X9[00,0X0[20,0X210U0[0U0[00EDU0[0ED&4EDEUU0[0-1EUESU0[00ES [90,0X9[00,0X0[20,0X210U0[0U0[00EDU0[0ED&4EDEUU0[0-1EUESU0[00ES
ETU0[032768#32#8#1,0ETQ1U00U1[10,0X10U4-1EJ-25600"E-UY|/UY'@.T/ ETU0[032768#32#8#1,0ETQ1U00U1[10,0X1-1EJ-25600"E0U4-UY|/UY'@.T/
:QF"E.U.1Iteco0EJ\.-Q1U.LQ.L-8"GQ.1+4JQ.L-8D4C'I.tmpQ.1,.XFQ.1,.D'/ :QF"E.U.1Iteco0EJ\.-Q1U.LQ.L-8"GQ.1+4JQ.L-8D4C'I.tmpQ.1,.XFQ.1,.D'/
27:.TQ0+1"E32768U0'32768"E:EITECO"S]1Q0#32768U1[1JODONE'' 27:.TQ0+1"E32768U0'32768"E:EITECO"S]1Q0#32768U1[1JODONE''
Z"EGZ0,0XZ'J::S^ES"SD'::STECO32"S-2D'ZJ-:S^ES"S.-Z"EFR'' Z"EGZ0,0XZ'J::S^ES"SD'::STECO32"S-2D'ZJ-:S^ES"S.-Z"EFR''
@ -22,9 +22,7 @@ J:S^EUYNOC"FONONOCREATE'!NOCREATE!
D::SR"S-D::SE"S-D::SA"S-D::ST"S-D::SE"S-D''''' D::SR"S-D::SE"S-D::SA"S-D::ST"S-D::SE"S-D'''''
::S^ES"SD0A"AI ''Q1#256U1!NONOCREATE!J:S^ES^EUYNOP"SONOPAGE' ::S^ES"SD0A"AI ''Q1#256U1!NONOCREATE!J:S^ES^EUYNOP"SONOPAGE'
J:S^EUYNOP"FONONOPAGE'!NOPAGE!D::SA"S-D::SG"S-D::SE"S-D''' J:S^EUYNOP"FONONOPAGE'!NOPAGE!D::SA"S-D::SG"S-D::SE"S-D'''
::S^ES"SD0A"AI ''Q1#64U1!NONOPAGE!J:S^ES^EUYNOR"SONORENAME' ::S^ES"SD0A"AI ''Q1#64U1!NONOPAGE!
J:S^EUYNOR"FONONORENAME'!NORENAME!D::SA"S-D::SG"S-D::SE"S-D'''
::S^ES"SD0A"AI ''Q1#512U1!NONORENAME!
J::STE"S<0A"AC|1;'>::S^ES@"S0KIMUNG ''J::SMU"S-2D<0A"AD|1;'> J::STE"S<0A"AC|1;'>::S^ES@"S0KIMUNG ''J::SMU"S-2D<0A"AD|1;'>
::S^ES"SD'(-1EJ-5)*(-1EJ-1024)"EJ::S""S-D::S^ES"SD'''ZU0 ::S^ES"SD'(-1EJ-5)*(-1EJ-1024)"EJ::S""S-D::S^ES"SD'''ZU0
-1EJ-25600"EJ:S-"SR.-Q0"L.U0''|J:S/"SR.-Q0"L.U0''' -1EJ-25600"EJ:S-"SR.-Q0"L.U0''|J:S/"SR.-Q0"L.U0'''
@ -34,7 +32,7 @@ Q1-1J.-1-Q0"LD.U0'0;>Q0J<-.;-1A-32"N-1A-9"N0;''-D>0,.X.0
:Q.0"E?How can I MUNG nothing?1310'::S^ES 0,.K0U0EI^EQ.0 :Q.0"E?How can I MUNG nothing?1310'::S^ES 0,.K0U0EI^EQ.0
JODONE'J:S^ES^EUYVT"SOVTEDIT'J:S^EUYVT"FONOVTEDIT'!VTEDIT! JODONE'J:S^ES^EUYVT"SOVTEDIT'J:S^EUYVT"FONOVTEDIT'!VTEDIT!
The VTEDIT command line option is not supported by TECOC1310 The VTEDIT command line option is not supported by TECOC1310
!NOVTEDIT!J:S^ES+"SD\U40,128EZD::Ss"SD0A"AI '''Q1&64"N0,128EZ' !NOVTEDIT!-1EJ-25600"EJ:S^ES+"SD\U40,128EZD::Ss"SD0A"AI ''''
J:S^ES^EUYSC"SOSCROLL'J:S^EUYSC"FONOSCROLL'!SCROLL! J:S^ES^EUYSC"SOSCROLL'J:S^EUYSC"FONOSCROLL'!SCROLL!
D::SR"S-D::SO"S-D::SL"S-D::SL"S-D''''::S:^ED"SR-D\U2FR|0U2' D::SR"S-D::SO"S-D::SL"S-D::SL"S-D''''::S:^ED"SR-D\U2FR|0U2'
::S:S"S-2D::SE"S-D::SE"S-D::SA"S-D::SL"S-D::SL"S-D'''''Q1#16U1' ::S:S"S-2D::SE"S-D::SE"S-D::SA"S-D::SL"S-D::SL"S-D'''''Q1#16U1'
@ -44,28 +42,26 @@ J:S^ES^EUYSC"SOSCROLL'J:S^EUYSC"FONOSCROLL'!SCROLL!
::S^ES"SD0A"AI ''Q1#2U1!NOINSPECT!J:S^ES^EUYFI"SOFIND' ::S^ES"SD0A"AI ''Q1#2U1!NOINSPECT!J:S^ES^EUYFI"SOFIND'
J:S^EUYFI"FONOFIND'!FIND! J:S^EUYFI"FONOFIND'!FIND!
The /FIND command line option is not supported by TECOC1310 The /FIND command line option is not supported by TECOC1310
!NOFIND!J<.-Z;0A-9"EDF<'0A-32"EDF<'C-1A-""E:S""S-1EJ-25857"E !NOFIND!J<.-Z;0A-9"EDF<'0A-32"EDF<'C-1A-""E:S""UZJ''>Q1&4#Z"E
0J2<@FS/"//>ZJ'|ZJ''>Q1&4#Z"E:EGMEM"SG*J::S$"SD|OGOTIT'|M.TGF' :EGMEM"SG*J::S$"SDF|'|M.TGFHX0HKEPEAEF:ER^EQ0"SYL."N-1A-10"E-D''
HX0HKEPEAEF:ER^EQ0"SYL."N-1A-10"E-D''."N-1A-13"E-D''ZKHX0HKECG0' ."N-1A-13"E-D''ZKHX0HKECG0'EREW0,0X0'J<.-Z;0A-9"EDF<'0A-32"EDF<'C
EREW0,0X0!GOTIT!ZJZ"NQ1#32768#16384U1''Q1&16384"NQ1&2"EEdi| -1A-""E:S""UZJ''>Z"NQ1#32768#16384U1''Q1&16384"NQ1&2"EEdi|Inspec
Inspec'ting file "HT"1310'Z"EQ1&2"EOSCOPES' 'ting file "HT"1310'Z"EQ1&2"EOSCOPES'
?How can I inspect nothing?1310'Q1&2"EJ:S="S0,.-1X00,.KZU0HX2HK ?How can I inspect nothing?1310'Q1&2"EJ:S="S0,.-1X00,.KZU0HX2HK
:Q2"N:ER^EQ2"UG2HX0HKONOTFND'':Q0"NEW^EQ0'Q0"NQ1#2048U1'OREMEM'' :Q2"N:ER^EQ2"UG2HX0HKONOTFND'':Q0"NEW^EQ0'Q0"NQ1#2048U1'OREMEM''
HX0HKQ1&2"E:EB^EQ0"SQ1#2048U1OREMEM':ERQ0"SQ1#2048U1 HX0HKQ1&2"E:EB^EQ0"SQ1#2048U1OREMEM'Q1&256"NQ1&32768"EONOTFND''
%Can't write to file -- opening for input only1310OREMEM'Q1&256"N %Can't find file ":G0"1310Q1&32768"E%Creating new file1310
Q1&32768"EONOTFND''%Can't find file ":G0"1310Q1&32768"E OCREATE|%Ignoring TECO's memory1310Q1#8192U10,0X0OREMEM''
%Creating new file1310OCREATE|%Ignoring TECO's memory1310 :ER^EQ0"SQ1#2048U1OSCOPES'!NOTFND!?Can't find file ":G0"?1310
Q1#8192U10,0X0OREMEM'':ER^EQ0"SQ1#2048U1OSCOPES'!NOTFND! 'J::SMA"S-2D<0A"AD|1;'>::S^ES"SD'J<.-Z;0A-9"EDF<'0A-32"EDF<'C
?Can't find file ":G0"?1310'J::SMA"S-2D<0A"AD|1;'> -1A-""E:S""UZJ''>Z"E?How can I MAKE nothing?1310'
::S^ES"SD'J<.-Z;0A-9"EDF<'0A-32"EDF<'C-1A-""E:S""S-1EJ-25857"E
0J2<@FS/"//>ZJ'|ZJ''>Z"E?How can I MAKE nothing?1310'
Z-4"EJ::SLOVE"SNot war?1310''HX0HK!CREATE!EW^EQ0OREMEM' Z-4"EJ::SLOVE"SNot war?1310''HX0HK!CREATE!EW^EQ0OREMEM'
%Unrecognized command "HTHK"1310OSCOPES!REMEM!Q1&8192"E %Unrecognized command "HTHK"1310OSCOPES!REMEM!Q1&8192"E
Q1&(32768#4)"NOSCOPES':Q0"EOSCOPES'':EGMEM"SZJG*C::S$"U Q1&(32768#4)"NOSCOPES':Q0"EOSCOPES'':EGMEM"SZJG*CZK:EGMEM ^EQ0|EA
ZK:EGMEM ^EQ0OSCOPES|-1DZXFZK'|M.T'EA:EW^EQF"SG0HPWHKEF'EW!SCOPES! :EW^EQF"SG0HPWHKEF'EW'!SCOPES!!YANK!Q1&2048"NY'JQ1&128"NET&512"E
!YANK!Q1&2048"NY'JQ1&128"NET&512"E
%Your terminal is not an interactive scope1310|Q2"E2:W-4U2'0,3:W %Your terminal is not an interactive scope1310|Q2"E2:W-4U2'0,3:W
Q1&16"N1,3:W'0,5:WQ1&32"N1,5:W'Q2,7:W-Q2"N Q1&16"N1,3:W'0,5:WQ1&32"N1,5:W'Q2,7:W-Q2"N
%Your terminal doesn't support scrolling1310'''!DONE!Q4-1"G %Your terminal doesn't support scrolling1310'''!DONE!Q4-1"G
Q4-1:S^J"U0J''Q1&64"N0,128EZ'Q1&512"N0,2EZ']1]0Q0ET]0Q0ES]0Q0EU]0Q0ED Q4-1:S^J"U0J''Q1&64"N1U8|0U8']1]0Q0ET]0Q0ES]0Q0EU]0Q0ED]0Q0]0Q0]2]0
]0Q0]0Q0]2]0]9]F0U.10U.L0U40UY0,0X.T ]9]FQ8"N0,128EZ'

View File

@ -29,7 +29,7 @@
64 /NOPAGE 64 /NOPAGE
128 /SCROLL 128 /SCROLL
256 /NOCREATE 256 /NOCREATE
512 /NORENAME 512 unused
1024 unused 1024 unused
2048 input file is open 2048 input file is open
4096 /NOINI 4096 /NOINI
@ -48,8 +48,6 @@
6. Q-register F holds the name of the file used to save file names. 6. Q-register F holds the name of the file used to save file names.
7. Q-register 4 holds the line number to go to.
****************************************************************************! ****************************************************************************!
!+ save the q-registers that we'll be changing ! !+ save the q-registers that we'll be changing !
@ -66,8 +64,8 @@ ETU0[032768#32#8#1,0ET !+ ^C trap, read nowait and noecho, image typeout !
Q1U0 !+ Q0 = Q1 ! Q1U0 !+ Q0 = Q1 !
0U1[1 0U1[1
0,0X1 0,0X1
0U4
-1EJ-25600"E !+ if Unix ! -1EJ-25600"E !+ if Unix !
0u4
^^-UY !+ Unix command lines delimit options with '-' ! ^^-UY !+ Unix command lines delimit options with '-' !
| |
^^/UY !+ VMS command lines delimit options with '/' ! ^^/UY !+ VMS command lines delimit options with '/' !
@ -277,20 +275,6 @@ Q1#64U1
!NONOPAGE! !NONOPAGE!
!+***************************************************************************
If there's a /NORENAME switch, (-NORENAME under Unix), delete it, compact
any trailing whitespace, and set the 512 bit of q-register 1.
****************************************************************************!
J:S^ES^EUYNOR"SONORENAME'
J:S^EUYNOR"FONONORENAME'
!NORENAME!
^SD::SA"S-D::SG"S-D::SE"S-D'''
::S^ES"S^SD0A"AI ''
Q1#512U1
!NONORENAME!
!+*************************************************************************** !+***************************************************************************
If we're not under RSTS/E, and the command is "TECO @file", then change If we're not under RSTS/E, and the command is "TECO @file", then change
it to "MUNG file". it to "MUNG file".
@ -380,13 +364,11 @@ J:S^EUYVT"FONOVTEDIT'
feeds) and put the number in Q-register 4. feeds) and put the number in Q-register 4.
****************************************************************************! ****************************************************************************!
!+ -1EJ-25600"E if Unix ! -1EJ-25600"E !+ if Unix !
J:S^ES+"S J:S^ES+"S
^SD\U40,128EZ^sd::ss"S^sD0A"AI '' ^SD\U40,128EZ^sd::ss"S^sD0A"AI ''
' '
!+ ' ! '
!+Set EZ flag if nopage!
Q1&64"N0,128ez'
!+*************************************************************************** !+***************************************************************************
If there's a /SCROLL switch (-SCROLL under Unix), delete it, get the If there's a /SCROLL switch (-SCROLL under Unix), delete it, get the
@ -455,10 +437,7 @@ J::STE"S-2D !+ if it's a TE command !
0A-9"EDF<' 0A-9"EDF<'
0A-32"EDF<' 0A-32"EDF<'
C C
-1A-""E:S""S -1A-""E:S""UZJ''
-1EJ-25857"E !+ If OS/2 then delete quotes !
0J2<@FS/"//>ZJ'|
ZJ'' !+ if no second quote, go to end !
> >
!+ Get the remembered file specification into the edit buffer. ! !+ Get the remembered file specification into the edit buffer. !
@ -467,11 +446,11 @@ J::STE"S-2D !+ if it's a TE command !
:EGMEM"S !+ if :EGMEM is supported ! :EGMEM"S !+ if :EGMEM is supported !
G*J !+ get it into the edit buffer ! G*J !+ get it into the edit buffer !
::S$"S^SD !+ if leading dollar sign, delete and... ! ::S$"S^SD !+ if leading dollar sign, delete and... !
|OGOTIT' !+ otherwise got it and get outa here ! F| !+ ??? !
'
| !+ else :EGMEM isn't supported ! | !+ else :EGMEM isn't supported !
M.T !+ generate file name in F ! M.T !+ generate file name in F !
GF !+ and get it ! GF
'
HX0HK !+ save filename in Q0 and clear buffer ! HX0HK !+ save filename in Q0 and clear buffer !
EPEA !+ select secondary I-O streams ! EPEA !+ select secondary I-O streams !
EF !+ close current output file ! EF !+ close current output file !
@ -487,12 +466,12 @@ J::STE"S-2D !+ if it's a TE command !
' '
EREW !+ select primary I-O streams ! EREW !+ select primary I-O streams !
0,0X0 0,0X0
!GOTIT! '
!+ If there's a file specification, then delete preceding whitespace and !+ If there's a file specification, then delete preceding whitespace and
if the remainder of the filespec contains a quoted string, do a ZJ. ! if the remainder of the filespec contains a quoted string, do a ZJ. !
!+ However there shouldn't be any whitespace -- don't do this step
because it messes up names with embedded spaces
J J
< <
.-Z; .-Z;
@ -501,7 +480,7 @@ J::STE"S-2D !+ if it's a TE command !
C C
-1A-""E:S""UZJ'' -1A-""E:S""UZJ''
> >
! ZJ !+ but move to end just in case !
Z"N Z"N
Q1#32768#16384U1 Q1#32768#16384U1
' '
@ -548,11 +527,6 @@ J::STE"S-2D !+ if it's a TE command !
Q1#2048U1 !+ remember: input file is open ! Q1#2048U1 !+ remember: input file is open !
OREMEM OREMEM
' '
:ERQ0"S !+ TAA Added -- try to open for read !
Q1#2048U1
%Can't write to file -- opening for input only1310
OREMEM
'
Q1&256"N !+ EB failed, so if -NOCREATE ! Q1&256"N !+ EB failed, so if -NOCREATE !
Q1&32768"E Q1&32768"E
ONOTFND ONOTFND
@ -594,10 +568,7 @@ J::SMA"S-2D
0A-9"EDF<' 0A-9"EDF<'
0A-32"EDF<' 0A-32"EDF<'
C C
-1A-""E:S""S -1A-""E:S""UZJ''
-1EJ-25857"E !+ If OS/2 then delete quotes !
0J2<@FS/"//>ZJ'|
ZJ'' !+ if no second quote, go to end !
> >
Z"E?How can I MAKE nothing?1310' Z"E?How can I MAKE nothing?1310'
@ -627,22 +598,14 @@ Q1&8192"E !+ if 8192 bit is off in Q1 !
:EGMEM"S !+ if :EGMEM is supported ! :EGMEM"S !+ if :EGMEM is supported !
ZJG*C !+ append remembered spec to buffer ! ZJG*C !+ append remembered spec to buffer !
::S$"U !+ no leading $ ! ZK:EGMEM ^EQ0 !+ set remembered filespec to Q0 !
ZK:EGMEM ^EQ0 !+ set remembered filespec to Q0 ! | !+ else (:EGMEM is not supported) !
OSCOPES !+ Goto SCOPES ! EA !+ switch to secondary output stream !
| :EW^EQF"S !+ open the file !
-1D !+ delete dollar ! G0 HPW HK EF !+ and write the filespec into it !
ZXFZK !+ Save in q reg F !
' '
| EW !+ switch to primary output stream !
M.T !+ Generate file name !
' '
EA !+ switch to secondary output stream !
:EW^EQF"S !+ open the file !
G0 HPW HK EF !+ and write the filespec into it !
'
EW !+ switch to primary output stream !
!+*************************************************************************** !+***************************************************************************
****************************************************************************! ****************************************************************************!
@ -787,11 +750,10 @@ Q1&128"N !+ if -SCROLL !
q4-1"G !+ if q4 greater than 1 ! q4-1"G !+ if q4 greater than 1 !
q4-1:s^J"U0J' !+ search for q4th line feed ! q4-1:s^J"U0J' !+ search for q4th line feed !
' '
q1&64"N !+ NOPAGE switch? ! q1&64"N !+ no NOPAGE switch? !
0,128EZ 1u8
' |
q1&512"N !+ NORENAME switch? ! 0u8
0,2EZ
' '
]1 ]1
]0Q0ET ]0Q0ET
@ -804,5 +766,5 @@ q1&512"N !+ NORENAME switch? !
]0 ]0
]9 ]9
]F ]F
0U.10U.L0U40UY0,0X.T !+ reset q registers ! q8"N0,128ez'
 

View File

@ -206,7 +206,7 @@ Power C v1.3.0 compiler, for example, supports ANSI string concatenation, but
does not like the 3 Kbyte clpars[] string. does not like the 3 Kbyte clpars[] string.
****************************************************************************/ ****************************************************************************/
#if defined(__TURBOC__) || defined(__GNUC__) #if defined(__TURBOC__) || defined(__GNUC__) || defined(WIN32)
#define USE_ANSI_CLPARS TRUE #define USE_ANSI_CLPARS TRUE
#else #else
#define USE_ANSI_CLPARS FALSE #define USE_ANSI_CLPARS FALSE
@ -337,7 +337,7 @@ ZBFMIN minimum size of the EI file buffer before it is expanded.
#define MCS_SIZE 32 /* size of macro stack */ #define MCS_SIZE 32 /* size of macro stack */
#define QRS_SIZE 32 /* size of q-register stack */ #define QRS_SIZE 32 /* size of q-register stack */
#elif defined(__TURBOC__) || defined(__POWERC) || defined(unix) || defined(AMIGA) || defined(OSX) #elif defined(__TURBOC__) || defined(__POWERC) || defined(unix) || defined(AMIGA) || defined(OSX) || defined(WIN32)
#define EXTERN extern /* to reference an external symbol */ #define EXTERN extern /* to reference an external symbol */
#define GLOBAL /**/ /* to define an external symbol */ #define GLOBAL /**/ /* to define an external symbol */
@ -349,7 +349,7 @@ ZBFMIN minimum size of the EI file buffer before it is expanded.
#define GLOBALV volatile /* to define an external volatile symbol */ #define GLOBALV volatile /* to define an external volatile symbol */
#endif #endif
#if defined(__TURBOC__) || defined(__POWERC) || defined(__GNUC__) || defined(AMIGA) || defined(OSX) #if defined(__TURBOC__) || defined(__POWERC) || defined(__GNUC__) || defined(AMIGA) || defined(OSX) || defined(WIN32)
#define VVOID void /* Void function return */ #define VVOID void /* Void function return */
#else #else
#define VVOID /**/ /* Void function return */ #define VVOID /**/ /* Void function return */

View File

@ -32,9 +32,7 @@
#include "deferr.h" /* define identifiers for error messages */ #include "deferr.h" /* define identifiers for error messages */
#include "dchars.h" /* define identifiers for characters */ #include "dchars.h" /* define identifiers for characters */
#include "dscren.h" /* define identifiers for screen i/o */ #include "dscren.h" /* define identifiers for screen i/o */
#if USE_PROTOTYPES
static void CntrlC(int sig); static void CntrlC(int sig);
#endif
#if VIDEO #if VIDEO
static HANDLE PrevScreen, Screen; static HANDLE PrevScreen, Screen;
static COORD Cursor; static COORD Cursor;