1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-16 00:04:59 +00:00

431 Commits

Author SHA1 Message Date
Bruce Mitchener
78943073c3
Favor C99 inline over __inline__. (#337) 2021-02-08 19:11:31 -08:00
Nick Briggs
2aacca596b
Fix the unixfork/unixcomm code to deal with pid over 65535 (#333)
* ForkUnixShell() can be a static procedure

* Restructure SAFEREAD() to be a little clearer

* Convert unixjob type field defines to an enum and fix related unhandled switch cases.

* Use local declaration of loop variables in for-loop, removing register attributes

* Restructure SAFEREAD() to be a little clearer

* Send and receive 2 additional bytes for pid.

* Prefer standard C99 "inline" over "__inline__" for SAFEREAD
2021-02-08 18:26:56 -08:00
Bruce Mitchener
f0a53302ce
Fix compilation with MAIKO_HANDLE_CONSOLE_MESSAGES. (#332)
* Switch from sgtty over to termios. All of the various
  separate values that were copied individually before
  can now be done at once.
* Fix compilation error with missing `&`.
* Fix compilation error with missing return value.

I haven't tested that this works as I don't know how to do that,
but at least it compiles now.
2021-02-01 06:42:39 +00:00
Bruce Mitchener
275c5b9c13
Clean up MAIKO_HANDLE_CONSOLE_MESSAGES some. (#331)
* `LOGINT` is only useful when `MAIKO_HANDLE_CONSOLE_MESSAGES`
  is set.
* Only define some variables if `MAIKO_HANDLE_CONSOLE_MESSAGES`
  is set. Flag them as static.
* Remove setting `LOGINT` from the build system as it isn't
  needed because we aren't handling console messages.
2021-01-31 21:22:13 -08:00
Bruce Mitchener
70db63449c
Remove support for the Sun386i. (#329)
This was a machine running SunOS 4, which we no longer support.

It had an odd display controller and a compiler with issues that
required workarounds. Those compiler issues aren't an issue in
today's world, so we don't need to keep the workarounds present
for reference.

It had a bit of inline assembly, but that is still present in
other files for other platforms.
2021-01-31 04:02:40 +00:00
Nick Briggs
1f17665741
Fix off-by-one error in clipping_Xbitblt (#327)
The LowerRightX and LowerRightY were calculated as the X and Y coordinates of the
pixel to the right and below the last visible pixel, but are compared with the
last actually visible pixel in the source. They need an extra -1 offset to correct.

Add comments to explain what's going on.  Fix the signature of the function to reflect
that the "dummy" passed for the display region is a pointer not an integer.
2021-01-30 19:03:17 -08:00
Nick Briggs
3764acda85
The MISC7 (FBITMAPBIT) opcode should flush the correct bits to the display (#328)
The MISC7 opcode was not accounting for the offset from the base when
calculating which (16-bit) word should be flushed to the actual display.
2021-01-30 18:42:47 -08:00
Nick Briggs
88cf76e18b
Remove redundant calls to XFlush (#325)
Calls to flush_display_region() are responsible for calling XFlush()
and it is pointless to follow them up with another call.
2021-01-30 18:25:58 -08:00
Nick Briggs
fd19d5273e
Fix missing initialization in int_panic_init() (#324)
panic_action.sa_mask and .sa_flags initialized twice, corresponding fields
in ignore_action not initialized.
2021-01-30 18:11:30 -08:00
Bruce Mitchener
b09663b3e9
Inline swapx and byte_swap_word. (#323)
This lets us remove `SWAP_WORDS` and some bits of assembly.
2021-01-29 23:18:09 -08:00
Bruce Mitchener
0480fee86c
Move opcode_table into read-only storage. (#322) 2021-01-29 22:46:24 -08:00
Bruce Mitchener
40aa5d392d
Remove SwitchDisplay and colordsp. (#317) 2021-01-29 19:56:07 -08:00
Bruce Mitchener
0efeedd6d3
Remove AIX define from Linux, Cygwin, Solaris, OpenBSD. (#320) 2021-01-28 23:04:57 -08:00
Bruce Mitchener
805cb86a06
Remove Bitmap_Pad global. (#318)
Since this is just being used for a 0 value, just use `0`.
2021-01-28 22:52:51 -08:00
Bruce Mitchener
fd62c9ab3a
Remove cursor_source_gc. (#319)
This was only used in commented out code, which is now removed
as well. In that code, it was used to set the function to `GXcopy`,
but it would already have been that as that's the only thing
we set function to.

This also lets us remove the `gcv` code in `xcursor.c`, since
we no longer need those values there.
2021-01-29 06:47:45 +00:00
Bruce Mitchener
405b55509e
mnwevent: Fix copy/paste error in log message. (#316)
This gets it out of search results when looking for getXsignaldata.
2021-01-28 10:21:03 -08:00
Bruce Mitchener
2e83d8e619
Improve tty.c, fix compilation on Cygwin. (#314)
`EXTA` and `PENDIN` are not POSIX, so let's not use them.

Make notes that the baud rate constant mapping comes from DLTTY
and add comments explaining the holes.
2021-01-28 10:20:45 -08:00
Bruce Mitchener
9cac72771f
Remove various unused externs. (#315)
* `cursor_mask_gc` is removed as it isn't used anywhere.
* `IconPixmap` is made into a static in `xmkicon.c` rather than
  being defined in `xlspwin.c`.
2021-01-28 18:11:46 +00:00
Nick Briggs
c054be07ef
Make (another) mask_array const. (#307) 2021-01-27 09:17:47 -08:00
Nick Briggs
100248e7a7
Make the table for reversing bits const (#306) 2021-01-26 20:40:15 -08:00
Nick Briggs
f7113d53ee
Remove provision for offline assembler peephole optimizations on SunOS3/4 (#304)
We no longer need to run a separate peephole optimization pass over the
compiler generated or hand-coded assembler for SunOS3 and SunOS4 on 68K or SPARC

We remove the preprocessor symbols and code controlled by them
	SUN4_OS4_IL
	SUN3_OS3_IL
	SUN3_OS4_IL
and	SUN3_OS3_OR_OS4_IL
2021-01-26 16:44:40 -08:00
Bruce Mitchener
eba664771a
Fix tty.c to compile. (#180)
This removes a bit of the debug info printing, but other than
that, is pretty close to what it was before.

We also now build it in both the make and cmake build systems.
2021-01-26 17:42:17 +00:00
Nick Briggs
9ca86a662f
Remove the check_unix_password functionality from uutils.c (#297)
This code has not worked for a long time.  Most systems now maintain
the password entries so that a password is not accessible through the
getpwent() interface.  The SUBR that calls this interface may be
removed at a future time.
2021-01-25 21:53:36 -08:00
Bruce Mitchener
91ef549b15
Remove some unused DOS defines and variables. (#301) 2021-01-25 21:38:51 -08:00
Bruce Mitchener
f75318cd8c
Move n_mask_array to read-only storage. (#300) 2021-01-25 21:10:04 -08:00
Bruce Mitchener
5b0d3f8cb5
Use FD_CLR when disabling keyboard for SUNDISPLAY. (#299)
In the old code (prior to b234064d), this was:

```
   LispReadFds &= ~(1 << LispWindowFd);
```

This was inadvertently converted to `FD_SET`, but should have
been `FD_CLR`.
2021-01-25 21:05:42 -08:00
Bruce Mitchener
4a722565ab
Sprinkle some const on char * params. (#298)
This is enough to let us move `il_string` in `loopsops.c`
into read-only storage.
2021-01-25 21:04:36 -08:00
Nick Briggs
364420db88
Fix lispcmp bytecmp (#211)
* Correct signedness of 2nd parameter of lispcmp().

* Be clear that comparison of characters in bytecmp is unsigned since GETBYTE returns unsigned char.

* Make bytecmp() and lispcmp() helper functions static and removed from mkatomdefs.h.

* If no BYTESWAP we need to include <string.h> for memcmp()

* Use (uint8_t) rather than (unsigned char) in bytecmp when comparing to GETBYTE()
2021-01-25 09:57:55 -08:00
Bruce Mitchener
4b4d6a1b94
Move optable into static, read-only storage. (#295)
Previously, we had a global `optable`, an alias to it, `table`,
and code to initialize it within `dispatch()`. This code would
initialize the whole thing to either `op_ufn` or `native_check`
and then fill in the entries for the individual opcodes.

Now, we have a function-static `optable` which is statically
initialized and placed (by the compiler) into read-only storage.
This eliminates having generated code within `dispatch()` that
initializes it.

Additionally, it was previously 512 elements long with the second
half of it being all `native_check` entries. We index it with a
byte though, so we only need 256 entries, and we can lose the
`native_check` stuff.
2021-01-25 09:26:58 -08:00
Bruce Mitchener
07aed60cc7
Remove bbtsub.h, duplicate of bbtsubdefs.h. (#294)
`bbtsubdefs.h` and `bbtsub.h` were close to the same. We only
need one.
2021-01-24 23:22:28 -08:00
Bruce Mitchener
971794a14c
Fix bbtsub.c compilation without XWINDOW or DOS. (#293)
Without those, it wasn't including `devif.h`, which is where
we define `min` and `max`. I make an assumption here that any
new display would be using the current display device support
code.
2021-01-24 23:15:05 -08:00
Bruce Mitchener
19f6767e55
osmsg now uses MAIKO_HANDLE_CONSOLE_MESSAGES (#290)
This was checking that neither `DOS` nor `XWINDOW` were defined,
but this needs a more specific flag for this feature so that it
doesn't get enabled when `!DOS && !XWINDOW`.
2021-01-24 21:44:42 -08:00
Bruce Mitchener
33a648bd2f
Fix mouseif.c compilation, add to cmake build. (#289) 2021-01-24 21:27:03 -08:00
Bruce Mitchener
6428e64d69
Fix missing return value when !SUNDISPLAY, !XWINDOW. (#288) 2021-01-24 21:22:34 -08:00
Bruce Mitchener
04b4b64b87
Remove optck (#286)
This was for checking for a bug in old versions of the SunOS
tools and is no longer relevant.
2021-01-24 18:14:11 -08:00
Nick Briggs
b151790c40
Cleanup for ERROR_EXIT/TIMER_EXIT/WARN style, remove unused typedef (#283)
Convert ERROR_EXIT, TIMER_EXIT, and WARN to "do {} while (0)" style and
  fix a few usage points that were missing trailing semi-colons.
Remove unused typedef for CFuncPtr.
2021-01-24 17:59:31 -08:00
Bruce Mitchener
1d36c73bce
Fix NOPIXRECT in llcolor. (#282)
This code is all currently set up to be used if `COLOR` is
defined.

If we were to start supporting color under X11, this would
have to change, but so would much of the rest of the file.
2021-01-24 17:43:16 -08:00
Nick Briggs
e3b095bdf6
Clean up extraneous semi-colons, break statements, and braces (#281) 2021-01-24 16:58:55 -08:00
Bruce Mitchener
db21b00a9f
Make sure OLD_CURSOR code is only for SUNDISPLAY. (#279)
This is work in progress on Interlisp/medley#84.
2021-01-24 16:58:18 -08:00
Bruce Mitchener
a45bce3133
Remove OPCODEFAIL, FIXTOS1 (#277)
These had been used on Sun3 in the ancient past, but not after
that in the current code.
2021-01-24 16:41:16 -08:00
Bruce Mitchener
cc060be1c7
Remove assembly fn call optimizations. (#276)
These were for old platforms and not used in recent history.

There's no NOASMFNCALL flag as there's no more asm fn call code.
2021-01-24 16:39:32 -08:00
Nick Briggs
e90b0f734a
Remove unnecessary (and incorrect) include in unixcomm.c (#280) 2021-01-24 16:28:50 -08:00
Bruce Mitchener
0d6fae222f
Remove old setup_table optimizer workarounds. (#274)
These were for old compilers aren't needed any longer with
the new `OPDISP` code arrangement and modern compilers.
2021-01-24 04:14:19 +00:00
Bruce Mitchener
9e9f8c4475
Remove profile.h (#272)
This no longer had anything to do with profiling and was
only doing some defines for the switch case block addresses,
which we no longer need since there's no longer optional
asm generated for them.
2021-01-23 18:39:55 +00:00
Bruce Mitchener
b7e9529322
Begin to modernize optimized dispatch. (#271)
This feature was controlled by the compilation flag `OPDISP`
which would enable some bits of assembler on the x86 (ISC or DOS)
or some other specialized code on SPARC. On SPARC hardware, there
was a special compilation process that would preprocess the code
and generate dispatch tables.

We do this now when this feature is enabled using gcc's computed
gotos feature. This is available in clang and some other compilers.
Notably, it isn't present in Visual Studio.

This doesn't decrease our portability at all as this feature is
optional and it replaces specialized assembler code with C using
compiler extensions (making it cross-platform).

In doing this, we've removed a bunch of related code, however,
it is likely that other pieces yet remain and will be removed
in subsequent commits as we clean things up and refine them.

This feature remains disabled by default for now.
2021-01-22 12:28:16 -08:00
Bruce Mitchener
61a0c02681
More SUNDISPLAY / NOPIXRECT fixes. (#269)
This fixes most of the remaining issues, apart from llcolor.
2021-01-22 11:59:11 -08:00
Bruce Mitchener
13370475d4
Fix compilation if !SUNDISPLAY && !XWINDOW && !DOS. (#270)
Some extra braces make this syntax more resilient. Go ahead and
fix a bit of formatting at the same time.
2021-01-22 07:10:35 +00:00
Bruce Mitchener
95b482d5d5
Use gcc / clang overflow builtins. (#142)
* Use gcc / clang overflow builtins.

This avoids expensive checks for overflow that employ undefined
behavior.

This is a step along the way towards replacing the old hand-written
assembler that did the same thing in terms of using the CPU's
overflow detection.

* Remove unimplemented SPARC asm for multiplication, divide, and remainder.

This wasn't implemented before, and for multiplication, it is now
implemented for gcc and friends using overflow detection.

* Remove USE_INLINE_ARITH.

Now that we have the compiler built-ins for detecting overflow,
we don't need custom assembly for it for each platform.

For now, we keep, but still don't use, the code that do a hot
path through the dispatch loop for some math. This code isn't
actually running or in use, but it is separate from how the
other inline arithmetic was being performed. These are the
`fast_op_*` functions that are implemented in assembler.
2021-01-21 00:27:31 -08:00
Bruce Mitchener
36b8695bf6
Fix compilation error from dead store removal. (#266)
In commit 6f7ec059bc763d49c753adea70d5cc337f9e353c, we removed
some dead stores. This broke compilation when `STACKCHECK` was
enabled.

Closes Interlisp/medley#162.
2021-01-20 23:49:18 -08:00
Bruce Mitchener
1828f208ec
Remove outdated comment about RISCOS. (#263) 2021-01-20 23:42:32 -08:00