1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-03-17 23:32:51 +00:00

Compare commits

..

15 Commits

Author SHA1 Message Date
Nick Briggs
2828555194 Merge branch 'no-DOS' of github.com:Interlisp/maiko into no-DOS 2021-04-12 12:08:10 -07:00
Nick Briggs
ea6f46bf42 Fix dependencies for ether.o 2021-04-08 17:05:51 -07:00
Nick Briggs
aacd8a9335 Fix comment on removed #endif 2021-04-08 17:05:51 -07:00
Nick Briggs
2c03560e7d Remove DOS specific assembler files for startup and display setup 2021-04-08 17:05:51 -07:00
Nick Briggs
74828c9829 Remove a few leftover defined(DOS) that remained in logical expressions, update endif comments 2021-04-08 17:05:51 -07:00
Nick Briggs
f75adf79d3 Remove DOS makefile 2021-04-08 17:05:51 -07:00
Nick Briggs
de42faba72 Remove source and include files that are only used for DOS
... and remove references to them from CMakeList.txt and makefile-tail
2021-04-08 17:05:51 -07:00
Nick Briggs
52ceef026e Start by removing all the ifdef'd DOS code in source and include files 2021-04-08 17:05:51 -07:00
Nick Briggs
85d9104b56 Fix dependencies for ether.o 2021-03-29 16:21:17 -07:00
Nick Briggs
1be29b57d6 Fix comment on removed #endif 2021-03-29 15:34:28 -07:00
Nick Briggs
d8a615eff9 Remove DOS specific assembler files for startup and display setup 2021-03-29 15:17:59 -07:00
Nick Briggs
b10c48af8e Remove a few leftover defined(DOS) that remained in logical expressions, update endif comments 2021-03-29 15:17:59 -07:00
Nick Briggs
fde861edc7 Remove DOS makefile 2021-03-29 15:16:01 -07:00
Nick Briggs
9cd78c3228 Remove source and include files that are only used for DOS
... and remove references to them from CMakeList.txt and makefile-tail
2021-03-29 15:16:01 -07:00
Nick Briggs
1b869932d8 Start by removing all the ifdef'd DOS code in source and include files 2021-03-29 15:12:45 -07:00
260 changed files with 7298 additions and 11808 deletions

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-11, ubuntu-22.04, ubuntu-18.04]
os: [macos-10.15, ubuntu-18.04]
steps:
- uses: actions/checkout@v2
- name: Install X11 dependencies on MacOS
@@ -21,23 +21,20 @@ jobs:
working-directory: bin
run: ./makeright x
#
# Commented out because the RPi is not online at this time (6 July 2021)
#
# build-pi:
# runs-on: [self-hosted, linux, ARM]
# if: ${{ github.repository == 'Interlisp/maiko' }}
# steps:
# - uses: actions/checkout@v2
# - name: Build
# working-directory: bin
# run: ./makeright x
build-pi:
runs-on: [self-hosted, linux, ARM]
if: ${{ github.repository == 'Interlisp/maiko' }}
steps:
- uses: actions/checkout@v2
- name: Build
working-directory: bin
run: ./makeright x
build-cmake:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-11, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04]
os: [macos-10.15, ubuntu-20.04, ubuntu-18.04]
env:
BUILD_TYPE: Release
steps:

View File

@@ -1,357 +0,0 @@
#*******************************************************************************
# buidReleaseInclDocker.yml
#
# Workflow to build a Maiko release that is pushed to github as well as
# Docker images incorporating the release, which are pushed to Docker Hub.
# For linux: release assets are built/pushed for X86_64, aarch64 and arm7vl and
# a multiplatform Docker image is pushed.
# For macOS: release assets are built/pushed for X86_64. (No aarch64 as yet.)
# For Windows: not supported
#
# Note release pushed to github automatically includes source code assets
# in tar and zip formats.
#
# 2022-01-16 by Frank Halasz based on earlier workflow called buildDocker.yml
#
# Copyright 2022 by Interlisp.org
#
#
# ******************************************************************************
name: 'Build/Push Release & Docker Image'
env:
workflow: 'buildReleaseInclDocker.yml'
# Run this workflow on ...
on:
workflow_dispatch:
inputs:
force:
description: "Force build even if build already successfully completed for this commit"
type: choice
options:
- 'false'
- 'true'
workflow_call:
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
outputs:
successful:
description: "'True' if maiko build completed successully"
value: ${{ jobs.complete.outputs.build_successful }}
inputs:
force:
description: "Force build even if build already successfully completed for this commit"
required: false
type: string
default: 'false'
defaults:
run:
shell: bash
# 2 separate jobs here that can run in parallel
#
# 1. Linux: Build/push a multiplatform Linux Docker image and use results to
# build/push Linux release assets.
#
# 2. MacOs_x86_64: Build maiko for MacOS on X86_64 then create and push release assets.
#
jobs:
######################################################################################
# Regularize the inputs so they can be referenced the same way whether they are
# the result of a workflow_dispatch or a workflow_call
inputs:
runs-on: ubuntu-latest
outputs:
force: ${{ steps.force.outputs.force }}
steps:
- id: force
run: >
if [ '${{ toJSON(inputs) }}' = 'null' ];
then echo ::set-output name=force::'${{ github.event.inputs.force }}'; echo "workflow_dispatch";
else echo ::set-output name=force::'${{ inputs.force }}'; echo "workflow_call";
fi
######################################################################################
# Use sentry-action to determine if this release has already been built
# based on the latest commit to the repo
sentry:
needs: inputs
runs-on: ubuntu-latest
outputs:
release_not_built: ${{ steps.check.outputs.release_not_built }}
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Check if build already run for this commit
- name: Build already completed?
id: check
continue-on-error: true
uses: ./../actions/check-sentry-action
with:
tag: "release_docker"
######################################################################################
# Linux: build and push multi-platform docker image for Linux
# Use docker images to create and push release assets to github
linux:
needs: [inputs, sentry]
if: |
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
runs-on: ubuntu-latest
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Checkout the branch
- name: Checkout
uses: actions/checkout@v2
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
# Setup docker environment variables
- name: Setup Docker Environment Variables
id: docker_env
run: |
DOCKER_NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
echo "DOCKER_NAMESPACE=${DOCKER_NAMESPACE}" >> ${GITHUB_ENV}
DOCKER_IMAGE=${DOCKER_NAMESPACE}/${{ steps.tag.outputs.repo_name }}
DOCKER_TAGS="${DOCKER_IMAGE}:latest,${DOCKER_IMAGE}:${RELEASE_TAG#*-}"
echo ::set-output name=build_time::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
echo ::set-output name=docker_tags::${DOCKER_TAGS}
# Setup the Docker Machine Emulation environment.
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Setup the Docker Buildx funtion
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
# Login into DockerHub - required to store the created image
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# Do the Docker Build using the Dockerfile in the repository we
# checked out. Push the result to Docker Hub.
#
# NOTE: THE ACTUAL MAIKO BUILD (FOR LINUX) HAPPENS HERE - I.E., IN THE
# DOCKER BUILD CALL. BUILD COMMANDS ARE SPECIFIED IN THE
# Dockerfile, NOT HERE IN THE WORKFLOW.
#
- name: Build Docker Image for Push to Docker Hub
if: ${{ true }}
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
build-args: |
BUILD_DATE=${{ steps.docker_env.outputs.build_time }}
RELEASE_TAG=${{ steps.tag.outputs.release_tag }}
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Push the result to DockerHub
push: true
tags: ${{ steps.docker_env.outputs.docker_tags }}
# Redo the Docker Build (hopefully mostly using the cache from the previous build).
# But save the results in a directory under /tmp to be used for creating release tars.
- name: Rebuild Docker Image For Saving Locally
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
build-args: |
BUILD_DATE=${{ steps.docker_env.outputs.build_time }}
RELEASE_TAG=${{ steps.tag.outputs.release_tag }}
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Put the results out to the local file system
outputs: type=local,dest=/tmp/docker_images
tags: ${{ steps.docker_env.outputs.docker_tags }}
# Use docker results to create releases for github.
# Docker results are in /tmp/docker_images. One subdir for each platform.
- name: Make release tars for each platform
env:
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
run: |
mkdir -p /tmp/release_tars
for OSARCH in "linux.x86_64:linux_amd64" "linux.aarch64:linux_arm64" "linux.armv7l:linux_arm_v7" ; \
do \
pushd /tmp/docker_images/${OSARCH##*:}/usr/local/interlisp >/dev/null ; \
/usr/bin/tar -c -z \
-f /tmp/release_tars/${RELEASE_TAG}-${OSARCH%%:*}.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/${OSARCH%%:*}/lde* \
; \
popd >/dev/null ; \
done
# Push Release to github
- name: Push the release
uses: ncipollo/release-action@v1.8.10
with:
allowUpdates: true
artifacts:
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.x86_64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.aarch64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.armv7l.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: true
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# MacOS: build for MacOS (X86_64) and use results to
# create and push release assets to github
macos_x86_64:
needs: [inputs, sentry]
if: |
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
runs-on: macos-10.15
steps:
# Checkout the branch
- name: Checkout
uses: actions/checkout@v2
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
# Install X11 dependencies
- name: Install X11 dependencies on MacOS
if: ${{ runner.os == 'macOS'}}
run: brew install --cask xquartz
# Build maiko
- name: Build
working-directory: ./bin
run: |
./makeright x
./makeright init
# Create release tar for github.
- name: Make release tar(s)
env:
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
run: |
mkdir -p /tmp/release_tars
pushd ${GITHUB_WORKSPACE}/../ >/dev/null
tar -c -z \
-f /tmp/release_tars/${RELEASE_TAG}-darwin.x86_64.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/darwin.x86_64/lde*
popd >/dev/null
# Push Release
- name: Push the release
uses: ncipollo/release-action@v1.8.10
with:
allowUpdates: true
artifacts:
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-darwin.x86_64.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: true
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# Use set-sentry-action to determine set the sentry that says this release has
# been successfully built
complete:
runs-on: ubuntu-latest
outputs:
build_successful: ${{ steps.output.outputs.build_successful }}
needs: [inputs, sentry, linux, macos_x86_64]
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v2
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Set sentry
- name: Is build for this commit already completed?
id: set
uses: ./../actions/set-sentry-action
with:
tag: "release_docker"
- name: Output
id: output
run: |
echo ::set-output name=build_successful::'true'
######################################################################################

3
.gitignore vendored
View File

@@ -5,9 +5,6 @@
\#*#
.DS_Store
# build directories
build/**
*.m68k-x/**
*.m68k/**
*.386-x/**
*.386/**
*.ppc-x/**

View File

@@ -16,19 +16,6 @@ IF(CMAKE_C_COMPILER_ID MATCHES "SunPro")
SET(CMAKE_C_FLAGS "-fno-strict-aliasing ${CMAKE_C_FLAGS}")
ENDIF()
find_program(
CLANG_TIDY_EXE
NAMES "clang-tidy" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
DOC "Path to clang-tidy executable"
)
IF (CLANG_TIDY_EXE)
# There are many many warnings for strcpy instances to deal with,
# but suppress it for now so that other issues are more obvious
#
SET(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_EXE} -checks=-*,cert-*,clang-analyzer-security.*,-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-security.insecureAPI.bzero -header-filter=.*)
ENDIF()
INCLUDE(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(m fmod "" NEED_LIB_M)
IF(NEED_LIB_M)
@@ -92,13 +79,9 @@ SET(BAD_SRCS
src/chatter.c
src/codeconv.c
src/codetbl.c
src/doscomm.c
src/doskbd.c
src/dosmouse.c
src/ejlisp.c
src/imagefile2.c
src/imagefile.c
src/kbdif.c
src/lpdual.c
src/lpkit.c
src/lplexyy.c
@@ -115,14 +98,19 @@ SET(BAD_SRCS
src/rawrs232c.c
src/rs232c.c
src/truecolor.c
src/vesainit.c
src/vgainit.c
)
SET(MAIKO_SRCS
src/allocmds.c
src/arithops.c
src/arrayops.c
src/arith2.c
src/arith3.c
src/arith4.c
src/array2.c
src/array3.c
src/array4.c
src/array5.c
src/array6.c
src/array.c
src/asmbbt.c
src/bbtsub.c
src/bin.c
@@ -181,7 +169,6 @@ SET(MAIKO_SRCS
src/miscn.c
src/mkatom.c
src/mkcell.c
src/mouseif.c
src/mvs.c
src/osmsg.c
src/perrno.c
@@ -216,9 +203,16 @@ SET(MAIKO_HDRS
inc/address.h
inc/adr68k.h
inc/allocmdsdefs.h
inc/arithopsdefs.h
inc/arith2defs.h
inc/arith3defs.h
inc/arith4defs.h
inc/arith.h
inc/arrayopsdefs.h
inc/array2defs.h
inc/array3defs.h
inc/array4defs.h
inc/array5defs.h
inc/array6defs.h
inc/arraydefs.h
inc/array.h
inc/bb.h
inc/bbtsubdefs.h
@@ -279,12 +273,10 @@ SET(MAIKO_HDRS
inc/initsoutdefs.h
inc/inlineC.h
inc/inln68k.h
inc/inlndos.h
inc/inlnPS2.h
inc/inlnSPARC.h
inc/intcalldefs.h
inc/iopage.h
inc/kbdif.h
inc/kbdsubrsdefs.h
inc/keyboard.h
inc/keyeventdefs.h
@@ -296,7 +288,6 @@ SET(MAIKO_HDRS
inc/lisp2cdefs.h
inc/lispemul.h
inc/lispmap.h
inc/lispver1.h
inc/lispver2.h
inc/llcolordefs.h
inc/lldsp.h
@@ -365,7 +356,6 @@ SET(MAIKO_HDRS
inc/unixfork.h
inc/unwinddefs.h
inc/uraiddefs.h
inc/uraidextdefs.h
inc/usrsubrdefs.h
inc/uutilsdefs.h
inc/vars3defs.h
@@ -377,7 +367,7 @@ SET(MAIKO_HDRS
)
ADD_CUSTOM_TARGET(gen-vdate
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/mkvdate > vdate.c
COMMAND mkvdate > vdate.c
BYPRODUCTS vdate.c
)
@@ -409,6 +399,10 @@ IF(MAIKO_DISPLAY_X11)
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
ENDIF()
ADD_EXECUTABLE(mkvdate src/mkvdate.c)
TARGET_COMPILE_DEFINITIONS(mkvdate PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(mkvdate PUBLIC inc)
ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)

View File

@@ -1,55 +0,0 @@
#*******************************************************************************
#
# Dockerfile to build Maiko (Stage 1) and create a Docker image and push it
# to DockerHub (stage 2).
#
# Copyright 2022 by Interlisp.org
#
# ******************************************************************************
#
# Build Maiko Stage
#
FROM ubuntu:focal AS builder
SHELL ["/bin/bash", "-c"]
USER root:root
# Install build tools
RUN apt-get update && apt-get install -y make clang libx11-dev gcc x11vnc xvfb
# Copy over / clean maiko repo
COPY . /app/maiko
RUN rm -rf /app/maiko/linux*
# Build maiko
WORKDIR /app/maiko/bin
RUN ./makeright x
RUN if [ "$(./osversion)" = "linux" ] && [ "$(./machinetype)" = "x86_64" ]; then ./makeright init; fi
# Prep for Install Stage
RUN mv ../$(./osversion).$(./machinetype) ../TRANSFER
#
# Install Maiko Stage
#
FROM ubuntu:focal
ARG BUILD_DATE="not_available"
ARG RELEASE_TAG="not_available"
LABEL name="Maiko"
LABEL description="Virtual machine for Interlisp Medley"
LABEL url="https://github.com/Interlisp/maiko"
LABEL build-time=$BUILD_DATE
LABEL release_tag=$RELEASE_TAG
ENV MAIKO_RELEASE=$RELEASE_TAG
ENV MAIKO_BUILD_DATE=$BUILD_DATE
ARG BUILD_LOCATION=/app/maiko
ARG INSTALL_LOCATION=/usr/local/interlisp/maiko
#
SHELL ["/bin/bash", "-c"]
USER root:root
# Copy release files into /usr/local/directories
COPY --from=builder ${BUILD_LOCATION}/bin/osversion ${INSTALL_LOCATION}/bin/
COPY --from=builder ${BUILD_LOCATION}/bin/machinetype ${INSTALL_LOCATION}/bin/
COPY --from=builder ${BUILD_LOCATION}/bin/config.guess ${INSTALL_LOCATION}/bin/
COPY --from=builder ${BUILD_LOCATION}/bin/config.sub ${INSTALL_LOCATION}/bin/
COPY --from=builder ${BUILD_LOCATION}/TRANSFER/lde* ${INSTALL_LOCATION}/TRANSFER/
RUN cd ${INSTALL_LOCATION} && mv TRANSFER "$(cd bin && ./osversion).$(cd bin/ && ./machinetype)"
# Some niceties
USER root
WORKDIR /root
ENTRYPOINT /bin/bash

View File

@@ -6,7 +6,7 @@ connecting with Lisp for access to display (via X11) and disk etc.
For an overview, see [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction).
See [the Medley repository](https://github.com/Interlisp/medley) for
See [the Medley repository](https://github.org/Interlisp/medley) for
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
* [Discussions](https://github.com/Interlisp/medley/discussions) (Q&A, announcements, etc)
* [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md)

View File

@@ -124,19 +124,9 @@ BIGATOMS True if this emulator will support 3-byte symbols, instead of
NEWBITBLT True if we want to use assembler BITBLT code, rather than
have code created inline by macro calls.
USE_DLPI True if the ethernet API is via the SysV Data Link Provider
Interface. Solaris uses DLPI.
USE_NIT True if the ethernet API is via the Network Interface Tap.
SunOS uses NIT.
PKTFILTER True if the ethernet packets are to be filtered before being
passed to the Lisp ethernet handler. Available on Sun systems
for both the NIT and DLPI cases.
bitbltsub.c:#ifdef GETBASE
testdisplay.c:#ifdef NOTUSED
uraid.c:#ifdef ETHERINT
bitblt.c:#ifndef COLOR
bitbltsub.c:#ifndef prropstyle
lispmap.h:#ifdef MEDLEY

View File

@@ -12,7 +12,6 @@
os=${LDEARCH:-`./config.guess`}
# o/s switch block
case "$os" in
m68k-*) echo m68k ;;
sparc-*) echo sparc ;;
alpha-*) echo alpha ;;
i*86-*-*) echo 386 ;;

View File

@@ -19,7 +19,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
OPTFLAGS = -O2 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
-DRELEASE=351 # -DSTACKCHECK -DFSBCHECK -DPCTRACE
-DRELEASE=351 -DSTACKCHECK -DFSBCHECK -DPCTRACE
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O1 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=201 # was 351
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -1,604 +0,0 @@
AFLAGS = /T
ARCHFILES = dosmouse.obj doskbd.obj vesafns.obj vesainit.obj vgainit.obj kbdif.obj
ADMINFILES = makefile mkvdate.c
LPFILES = lpmain.obj lpread.obj lpsolve.obj lpwrite.obj lpdual.obj lptran.obj
CFLAGS = -DDOS -DKBINT -DNOPIXRECT \
-DNOVERSION -DLPSOLVE -g
LDFLAGS = -g graphics.lib binmode.lib mouse.lib
RM = del
SRCFILES = conspage.c gcoflow.c shift.c dbgtool.c gcr.c gcrcell.c llstk.c gcscan.c loopsops.c storage.c allocmds.c dir.c gvar2.c lowlev1.c subr.c arithops.c lowlev2.c subr0374.c doscomm.c hardrtn.c lsthandl.c sxhash.c draw.c main.c testtool.c array.c dsk.c inet.c misc7.c timer.c array2.c dspif.c initdsp.c miscn.c typeof.c array3.c initkbd.c ubf1.c array4.c dspsubrs.c initsout.c mkatom.c ubf2.c array5.c eqf.c intcall.c mkcell.c ubf3.c array6.c ether.c mkvdate.c ufn.c atom.c findkey.c kbdsubrs.c mouseif.c ufs.c bbtsub.c foreign.c keyevent.c unixcomm.c bin.c fp.c binds.c asmbbt.c fvar.c mvs.c unwind.c bitblt.c gc.c uraid.c blt.c gc2.c kprint.c osmsg.c usrsubr.c byteswap.c gcarray.c perrno.c ldeboot.c ldeether.c uutils.c carcdr.c gccode.c rawcolor.c vars3.c gcfinal.c ldsout.c return.c vmemsave.c chardev.c gchtfind.c lineblt8.c rpc.c xc.c common.c gcmain3.c lisp2c.c rplcons.c z2.c xmkicon.c xbbt.c xinit.c xscroll.c xcursor.c xlspwin.c xrdopt.c xwinman.c dosmouse.c vesafns.asm vesainit.c vgainit.c kbdif.c dspsparc.il copyright launch.asm lpread.c lpsolve.c lpmain.c lpwrite.c lpdual.c lptran.c
OFILES = conspage.obj gcoflow.obj shift.obj dbgtool.obj gcr.obj gcrcell.obj llstk.obj gcscan.obj loopsops.obj storage.obj allocmds.obj dir.obj gvar2.obj lowlev1.obj subr.obj arithops.obj lowlev2.obj subr0374.obj doscomm.obj hardrtn.obj lsthandl.obj sxhash.obj draw.obj main.obj testtool.obj array.obj dsk.obj inet.obj misc7.obj timer.obj array2.obj dspif.obj initdsp.obj miscn.obj typeof.obj array3.obj initkbd.obj ubf1.obj array4.obj dspsubrs.obj initsout.obj mkatom.obj ubf2.obj array5.obj eqf.obj intcall.obj mkcell.obj ubf3.obj array6.obj ether.obj ufn.obj atom.obj findkey.obj kbdsubrs.obj mouseif.obj ufs.obj bbtsub.obj foreign.obj keyevent.obj unixcomm.obj bin.obj fp.obj binds.obj fvar.obj mvs.obj unwind.obj bitblt.obj gc.obj uraid.obj blt.obj gc2.obj kprint.obj osmsg.obj usrsubr.obj byteswap.obj gcarray.obj perrno.obj uutils.obj carcdr.obj asmbbt.obj gccode.obj vars3.obj gcfinal.obj ldsout.obj return.obj vmemsave.obj chardev.obj gchtfind.obj lineblt8.obj rpc.obj xc.obj common.obj gcmain3.obj lisp2c.obj rplcons.obj z2.obj vdate.obj $(COLORFILES) $(ARCHFILES) $(LPFILES)
HFILES = address.h adr68k.h arithopsdefs.h arith.h cell.h dbprint.h display.h dspif.h ifpage.h iopage.h lispemul.h lispmap.h lsptypes.h miscstat.h lspglob.h array.h bb.h bitblt.h debug.h devconf.h dspdata.h ether.h fast_dsp.h gcdata.h hdw_conf.h initatms.h inlinec.h keyboard.h lispver1.h lispver2.h lldsp.h locfile.h medleyfp.h mouseif.h my.h opcodes.h osmsg.h pilotbbt.h print.h return.h stack.h stream.h subrs.h timeout.h tos1defs.h tosfns.h tosret.h vmemsave.h xdefs.h xbitmaps.h xkeymap.h
bigvm:
CFLAGS = $(CFLAGS)
make -f foot emul.exe
emul.exe : $(OFILES)
@ echo $** > linkopts
@ echo $(CFLAGS) > copts
$(RM) vdate.c
$(CC) @copts @linkopts $(LDFLAGS) /e$@
del linkopts
del copts
@ echo "Executable is now named '$@'"
main.o : lispemul.h address.h lsptypes.h adr68k.h stack.h lspglob.h lispmap.h ifpage.h iopage.h return.h debug.h
.SUFFIXES .exe .lib .c .obj .c .asm .s .c
medley.exe: launch.obj
TLINK launch,medley
launch.obj: launch.asm
# xc.obj: xc.s
# tasm /ml xc.s
#
#xc.s: xc.c
# rsh sparky (cd /users/nilsson/curr ; gcc-make $* )
vdate.obj : mkvdate.exe
mkvdate > vdate.c
$(CC) vdate.c -c $@
mkvdate.exe : ../src/mkvdate.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/mkvdate.c
del copts
xc.obj : ../src/xc.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/xc.c -I ../inc -c $@
del copts
lpmain.obj : ../src/lpmain.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lpmain.c -I ../inc -c $@
del copts
lpsolve.obj : ../src/lpsolve.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lpsolve.c -I ../inc -c $@
del copts
lpread.obj : ../src/lpread.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lpread.c -I ../inc -c $@
del copts
lptran.obj : ../src/lptran.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lptran.c -I ../inc -c $@
del copts
lpdual.obj : ../src/lpdual.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lpdual.c -I ../inc -c $@
del copts
lpwrite.obj : ../src/lpwrite.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lpwrite.c -I ../inc -c $@
del copts
conspage.obj : ../src/conspage.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/conspage.c -I ../inc -c $@
del copts
dosmouse.obj : ../src/dosmouse.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dosmouse.c -I ../inc -c $@
del copts
doskbd.obj : ../src/doskbd.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/doskbd.c -I ../inc -c $@
del copts
vesafns.obj : ../src/vesafns.asm
tasm /ml ..\src\vesafns.asm
vesainit.obj : ../src/vesainit.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/vesainit.c -I ../inc -c $@
del copts
vgainit.obj : ../src/vgainit.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/vgainit.c -I ../inc -c $@
del copts
kbdif.obj : ../src/kbdif.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/kbdif.c -I ../inc -c $@
del copts
gcoflow.obj : ../src/gcoflow.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcoflow.c -I ../inc -c $@
del copts
shift.obj : ../src/shift.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/shift.c -I ../inc -c $@
del copts
dbgtool.obj : ../src/dbgtool.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dbgtool.c -I ../inc -c $@
del copts
gcr.obj : ../src/gcr.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcr.c -I ../inc -c $@
del copts
gcrcell.obj : ../src/gcrcell.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcrcell.c -I ../inc -c $@
del copts
llstk.obj : ../src/llstk.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/llstk.c -I ../inc -c $@
del copts
gcscan.obj : ../src/gcscan.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcscan.c -I ../inc -c $@
del copts
loopsops.obj : ../src/loopsops.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/loopsops.c -I ../inc -c $@
del copts
storage.obj : ../src/storage.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/storage.c -I ../inc -c $@
del copts
allocmds.obj : ../src/allocmds.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/allocmds.c -I ../inc -c $@
del copts
dir.obj : ../src/dir.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dir.c -I ../inc -c $@
del copts
gvar2.obj : ../src/gvar2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gvar2.c -I ../inc -c $@
del copts
lowlev1.obj : ../src/lowlev1.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lowlev1.c -I ../inc -c $@
del copts
subr.obj : ../src/subr.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/subr.c -I ../inc -c $@
del copts
arithops.obj : ../src/arithops.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/arithops.c -I ../inc -c $@
del copts
lowlev2.obj : ../src/lowlev2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lowlev2.c -I ../inc -c $@
del copts
subr0374.obj : ../src/subr0374.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/subr0374.c -I ../inc -c $@
del copts
doscomm.obj : ../src/doscomm.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/doscomm.c -I ../inc -c $@
del copts
hardrtn.obj : ../src/hardrtn.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/hardrtn.c -I ../inc -c $@
del copts
lsthandl.obj : ../src/lsthandl.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lsthandl.c -I ../inc -c $@ -Le
del copts
sxhash.obj : ../src/sxhash.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/sxhash.c -I ../inc -c $@
del copts
draw.obj : ../src/draw.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/draw.c -I ../inc -c $@
del copts
main.obj : ../src/main.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/main.c -I ../inc -c $@
del copts
testtool.obj : ../src/testtool.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/testtool.c -I ../inc -c $@
del copts
array.obj : ../src/array.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array.c -I ../inc -c $@
del copts
dsk.obj : ../src/dsk.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dsk.c -I ../inc -c $@
del copts
inet.obj : ../src/inet.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/inet.c -I ../inc -c $@
del copts
misc7.obj : ../src/misc7.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/misc7.c -I ../inc -c $@
del copts
timer.obj : ../src/timer.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/timer.c -I ../inc -c $@
del copts
array2.obj : ../src/array2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array2.c -I ../inc -c $@
del copts
dspif.obj : ../src/dspif.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dspif.c -I ../inc -c $@
del copts
initdsp.obj : ../src/initdsp.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/initdsp.c -I ../inc -c $@
del copts
miscn.obj : ../src/miscn.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/miscn.c -I ../inc -c $@
del copts
typeof.obj : ../src/typeof.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/typeof.c -I ../inc -c $@
del copts
array3.obj : ../src/array3.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array3.c -I ../inc -c $@
del copts
initkbd.obj : ../src/initkbd.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/initkbd.c -I ../inc -c $@
del copts
ubf1.obj : ../src/ubf1.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ubf1.c -I ../inc -c $@
del copts
array4.obj : ../src/array4.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array4.c -I ../inc -c $@
del copts
dspsubrs.obj : ../src/dspsubrs.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/dspsubrs.c -I ../inc -c $@
del copts
initsout.obj : ../src/initsout.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/initsout.c -I ../inc -c $@
del copts
mkatom.obj : ../src/mkatom.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/mkatom.c -I ../inc -c $@
del copts
ubf2.obj : ../src/ubf2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ubf2.c -I ../inc -c $@
del copts
array5.obj : ../src/array5.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array5.c -I ../inc -c $@
del copts
eqf.obj : ../src/eqf.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/eqf.c -I ../inc -c $@
del copts
intcall.obj : ../src/intcall.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/intcall.c -I ../inc -c $@
del copts
mkcell.obj : ../src/mkcell.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/mkcell.c -I ../inc -c $@
del copts
ubf3.obj : ../src/ubf3.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ubf3.c -I ../inc -c $@
del copts
array6.obj : ../src/array6.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/array6.c -I ../inc -c $@
del copts
ether.obj : ../src/ether.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ether.c -I ../inc -c $@
del copts
ufn.obj : ../src/ufn.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ufn.c -I ../inc -c $@
del copts
atom.obj : ../src/atom.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/atom.c -I ../inc -c $@
del copts
findkey.obj : ../src/findkey.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/findkey.c -I ../inc -c $@
del copts
kbdsubrs.obj : ../src/kbdsubrs.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/kbdsubrs.c -I ../inc -c $@
del copts
mouseif.obj : ../src/mouseif.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/mouseif.c -I ../inc -c $@
del copts
ufs.obj : ../src/ufs.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ufs.c -I ../inc -c $@
del copts
bbtsub.obj : ../src/bbtsub.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/bbtsub.c -I ../inc -c $@
del copts
foreign.obj : ../src/foreign.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/foreign.c -I ../inc -c $@
del copts
keyevent.obj : ../src/keyevent.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/keyevent.c -I ../inc -c $@
del copts
unixcomm.obj : ../src/unixcomm.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/unixcomm.c -I ../inc -c $@
del copts
bin.obj : ../src/bin.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/bin.c -I ../inc -c $@
del copts
fp.obj : ../src/fp.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/fp.c -I ../inc -c $@
del copts
binds.obj : ../src/binds.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/binds.c -I ../inc -c $@
del copts
fvar.obj : ../src/fvar.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/fvar.c -I ../inc -c $@
del copts
mvs.obj : ../src/mvs.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/mvs.c -I ../inc -c $@
del copts
unwind.obj : ../src/unwind.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/unwind.c -I ../inc -c $@
del copts
bitblt.obj : ../src/bitblt.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/bitblt.c -I ../inc -c $@
del copts
gc.obj : ../src/gc.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gc.c -I ../inc -c $@
del copts
uraid.obj : ../src/uraid.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/uraid.c -I ../inc -c $@
del copts
blt.obj : ../src/blt.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/blt.c -I ../inc -c $@
del copts
gc2.obj : ../src/gc2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gc2.c -I ../inc -c $@
del copts
kprint.obj : ../src/kprint.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/kprint.c -I ../inc -c $@
del copts
osmsg.obj : ../src/osmsg.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/osmsg.c -I ../inc -c $@
del copts
usrsubr.obj : ../src/usrsubr.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/usrsubr.c -I ../inc -c $@
del copts
byteswap.obj : ../src/byteswap.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/byteswap.c -I ../inc -c $@
del copts
gcarray.obj : ../src/gcarray.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcarray.c -I ../inc -c $@
del copts
perrno.obj : ../src/perrno.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/perrno.c -I ../inc -c $@
del copts
uutils.obj : ../src/uutils.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/uutils.c -I ../inc -c $@
del copts
carcdr.obj : ../src/carcdr.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/carcdr.c -I ../inc -c $@
del copts
asmbbt.obj : ../src/asmbbt.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/asmbbt.c -I ../inc -c $@
del copts
gccode.obj : ../src/gccode.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gccode.c -I ../inc -c $@
del copts
vars3.obj : ../src/vars3.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/vars3.c -I ../inc -c $@
del copts
gcfinal.obj : ../src/gcfinal.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcfinal.c -I ../inc -c $@
del copts
ldsout.obj : ../src/ldsout.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/ldsout.c -I ../inc -c $@
del copts
return.obj : ../src/return.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/return.c -I ../inc -c $@
del copts
vmemsave.obj : ../src/vmemsave.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/vmemsave.c -I ../inc -c $@
del copts
chardev.obj : ../src/chardev.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/chardev.c -I ../inc -c $@
del copts
gchtfind.obj : ../src/gchtfind.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gchtfind.c -I ../inc -c $@
del copts
lineblt8.obj : ../src/lineblt8.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lineblt8.c -I ../inc -c $@
del copts
rpc.obj : ../src/rpc.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/rpc.c -I ../inc -c $@
del copts
common.obj : ../src/common.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/common.c -I ../inc -c $@
del copts
gcmain3.obj : ../src/gcmain3.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/gcmain3.c -I ../inc -c $@
del copts
lisp2c.obj : ../src/lisp2c.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/lisp2c.c -I ../inc -c $@
del copts
rplcons.obj : ../src/rplcons.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/rplcons.c -I ../inc -c $@
del copts
z2.obj : ../src/z2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/z2.c -I ../inc -c $@
del copts

View File

@@ -16,7 +16,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
OPTFLAGS = -O1 -gdwarf-2
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, ARMv7 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel x86_64 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O0 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=201 -DNOVERSION -DINIT
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel 386/486 and X Windows
CC = clang -m32 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, ARMv7 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel x86_64 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -41,7 +41,7 @@ OPTFLAGS = -g3 -O0
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
MACHINEFLAGS = -DOS5 -DUSE_DLPI
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
# The LDEINIT wants to have NOVERSION set, so we don't hang up on
# any change-over in versions.

View File

@@ -36,6 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 \
-DLOCK_X_UPDATES \
-DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl

View File

@@ -36,6 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 -DUSE_DLPI \
-DLOCK_X_UPDATES \
-I$(OPENWINHOME)/include \
-DRELEASE=210

View File

@@ -40,7 +40,7 @@ OPTFLAGS = -O2 -g3
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
MACHINEFLAGS = -DOS5 -DUSE_DLPI
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \

View File

@@ -36,6 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 \
-DLOCK_X_UPDATES \
-DUSE_DLPI \
-DRELEASE=351

View File

@@ -38,8 +38,15 @@ REQUIRED-INCS = $(INCDIR)version.h $(INCDIR)maiko/platform.h
CFLAGS = $(OPTFLAGS) $(DFLAGS)
RFLAGS = -c $(CFLAGS) -I$(INCDIR) -I$(INCLUDEDIR)
OFILES = $(OBJECTDIR)arithops.o \
$(OBJECTDIR)arrayops.o \
OFILES = $(OBJECTDIR)arith2.o \
$(OBJECTDIR)arith3.o \
$(OBJECTDIR)arith4.o \
$(OBJECTDIR)array.o \
$(OBJECTDIR)array2.o \
$(OBJECTDIR)array3.o \
$(OBJECTDIR)array4.o \
$(OBJECTDIR)array5.o \
$(OBJECTDIR)array6.o \
$(OBJECTDIR)bin.o \
$(OBJECTDIR)binds.o \
$(OBJECTDIR)bitblt.o \
@@ -153,6 +160,9 @@ $(OSARCHDIR)$(LDENAME): $(LIBFILES) $(EXTFILES) $(OBJECTDIR)vdate.o
$(OSARCHDIR)ldeether: $(OBJECTDIR)ldeether.o $(DLPIFILES)
$(CC) $(OBJECTDIR)ldeether.o $(DLPIFILES) $(LDEETHERLDFLAGS) -o $(OSARCHDIR)ldeether
$(OSARCHDIR)mkvdate: $(OBJECTDIR)mkvdate.o $(REQUIRED-INCS)
$(CC) $(OBJECTDIR)mkvdate.o $(LDFLAGS) -o $(OSARCHDIR)mkvdate
$(OSARCHDIR)tstsout: $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(REQUIRED-INCS)
$(CC) $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(LDFLAGS) -lc -lm -o $(OSARCHDIR)tstsout
@@ -161,9 +171,9 @@ $(OSARCHDIR)setsout: $(OBJECTDIR)setsout.o $(REQUIRED-INCS)
#### Component files ######################################################
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) mkvdate
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) $(OSARCHDIR)mkvdate
$(RM) $(OBJECTDIR)vdate.c
$(BINDIR)mkvdate > $(OBJECTDIR)vdate.c
$(OSARCHDIR)mkvdate > $(OBJECTDIR)vdate.c
$(CC) $(RFLAGS) $(OBJECTDIR)vdate.c -o $(OBJECTDIR)vdate.o
$(OBJECTDIR)tstsout.o: $(SRCDIR)tstsout.c $(REQUIRED-INCS) \
@@ -187,6 +197,9 @@ $(OBJECTDIR)ldeboot.o: $(SRCDIR)ldeboot.c $(REQUIRED-INCS) \
$(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
$(CC) $(RFLAGS) $(SRCDIR)ldeether.c -o $(OBJECTDIR)ldeether.o
$(OBJECTDIR)mkvdate.o: $(SRCDIR)mkvdate.c $(REQUIRED-INCS)
$(CC) $(RFLAGS) $(SRCDIR)mkvdate.c -o $(OBJECTDIR)mkvdate.o
$(OBJECTDIR)main.o: $(SRCDIR)main.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)dbprint.h \
$(INCDIR)emlglob.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h \
@@ -205,7 +218,7 @@ $(OBJECTDIR)dbgtool.o: $(SRCDIR)dbgtool.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)kprintdefs.h \
$(INCDIR)testtooldefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)testtooldefs.h
$(CC) $(RFLAGS) $(SRCDIR)dbgtool.c -o $(OBJECTDIR)dbgtool.o
$(OBJECTDIR)dlpi.o: $(SRCDIR)dlpi.c \
@@ -226,7 +239,7 @@ $(OBJECTDIR)testtool.o: $(SRCDIR)testtool.c $(REQUIRED-INCS) \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
$(INCDIR)debug.h $(INCDIR)dbprint.h $(INCDIR)tosfns.h $(INCDIR)testtooldefs.h \
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)gcarraydefs.h \
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h
$(CC) $(RFLAGS) $(SRCDIR)testtool.c -o $(OBJECTDIR)testtool.o
$(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
@@ -238,40 +251,48 @@ $(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
$(INCDIR)timerdefs.h
$(CC) $(RFLAGS) $(SRCDIR)allocmds.c -o $(OBJECTDIR)allocmds.o
$(OBJECTDIR)arithops.o: $(SRCDIR)arithops.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h \
$(INCDIR)arith.h \
$(INCDIR)commondefs.h \
$(INCDIR)lispemul.h \
$(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h \
$(INCDIR)mkcelldefs.h \
$(INCDIR)arithopsdefs.h \
$(INCDIR)fpdefs.h \
$(INCDIR)lspglob.h \
$(INCDIR)ifpage.h \
$(INCDIR)iopage.h \
$(INCDIR)miscstat.h
$(CC) $(RFLAGS) $(SRCDIR)arithops.c -o $(OBJECTDIR)arithops.o
$(OBJECTDIR)arith2.o: $(SRCDIR)arith2.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)medleyfp.h $(INCDIR)arith.h \
$(INCDIR)arith2defs.h $(INCDIR)fpdefs.h $(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith2.c -o $(OBJECTDIR)arith2.o
$(OBJECTDIR)arrayops.o: $(SRCDIR)arrayops.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h \
$(INCDIR)arrayopsdefs.h \
$(INCDIR)lispemul.h \
$(INCDIR)lispmap.h \
$(INCDIR)emlglob.h \
$(INCDIR)lspglob.h \
$(INCDIR)ifpage.h \
$(INCDIR)iopage.h \
$(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h \
$(INCDIR)my.h \
$(INCDIR)arith.h \
$(INCDIR)commondefs.h \
$(INCDIR)mkcelldefs.h \
$(INCDIR)gcdata.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)arrayops.c -o $(OBJECTDIR)arrayops.o
$(OBJECTDIR)arith3.o: $(SRCDIR)arith3.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
$(INCDIR)arith.h $(INCDIR)arith3defs.h $(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith3.c -o $(OBJECTDIR)arith3.o
$(OBJECTDIR)arith4.o: $(SRCDIR)arith4.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
$(INCDIR)medleyfp.h $(INCDIR)arith.h $(INCDIR)arith4defs.h $(INCDIR)fpdefs.h \
$(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith4.c -o $(OBJECTDIR)arith4.o
$(OBJECTDIR)array.o: $(SRCDIR)array.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)arraydefs.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array.c -o $(OBJECTDIR)array.o
$(OBJECTDIR)array3.o: $(SRCDIR)array3.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h \
$(INCDIR)array3defs.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array3.c -o $(OBJECTDIR)array3.o
$(OBJECTDIR)array5.o: $(SRCDIR)array5.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h \
$(INCDIR)array5defs.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array5.c -o $(OBJECTDIR)array5.o
$(OBJECTDIR)bin.o: $(SRCDIR)bin.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
@@ -367,7 +388,7 @@ $(OBJECTDIR)common.o: $(SRCDIR)common.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)stack.h $(INCDIR)dbprint.h \
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h
$(CC) $(RFLAGS) $(SRCDIR)common.c -o $(OBJECTDIR)common.o
$(OBJECTDIR)conspage.o: $(SRCDIR)conspage.c $(REQUIRED-INCS) \
@@ -464,14 +485,6 @@ $(OBJECTDIR)dspif.o: $(SRCDIR)dspif.c $(REQUIRED-INCS) \
$(INCDIR)devif.h $(INCDIR)dspifdefs.h $(INCDIR)xinitdefs.h
$(CC) $(RFLAGS) $(SRCDIR)dspif.c -o $(OBJECTDIR)dspif.o
$(OBJECTDIR)kbdif.o: $(SRCDIR)kbdif.c $(REQUIRED-INCS) $(INCDIR)lispemul.h \
$(INCDIR)dbprint.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)kbdif.c -o $(OBJECTDIR)kbdif.o
$(OBJECTDIR)mouseif.o: $(SRCDIR)mouseif.c $(REQUIRED-INCS) $(INCDIR)lispemul.h \
$(INCDIR)dbprint.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)mouseif.c -o $(OBJECTDIR)mouseif.o
$(OBJECTDIR)ether.o: $(SRCDIR)ether.c $(REQUIRED-INCS) \
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
@@ -792,7 +805,7 @@ $(OBJECTDIR)subr.o: $(SRCDIR)subr.c $(REQUIRED-INCS) \
$(INCDIR)gcrdefs.h $(INCDIR)inetdefs.h $(INCDIR)kbdsubrsdefs.h \
$(INCDIR)mkcelldefs.h $(INCDIR)osmsgdefs.h $(INCDIR)rpcdefs.h \
$(INCDIR)storagedefs.h $(INCDIR)timerdefs.h $(INCDIR)ufsdefs.h \
$(INCDIR)unixcommdefs.h $(INCDIR)uraidextdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
$(INCDIR)unixcommdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
$(CC) $(RFLAGS) $(SRCDIR)subr.c -o $(OBJECTDIR)subr.o
$(OBJECTDIR)miscn.o: $(SRCDIR)miscn.c $(REQUIRED-INCS) \
@@ -865,7 +878,7 @@ $(OBJECTDIR)uraid.o: $(SRCDIR)uraid.c $(REQUIRED-INCS) \
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)initkbddefs.h \
$(INCDIR)kprintdefs.h $(INCDIR)llstkdefs.h $(INCDIR)mkatomdefs.h \
$(INCDIR)returndefs.h $(INCDIR)testtooldefs.h $(INCDIR)timerdefs.h \
$(INCDIR)uraidextdefs.h $(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
$(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)uraid.c -o $(OBJECTDIR)uraid.o
$(OBJECTDIR)rpc.o: $(SRCDIR)rpc.c $(REQUIRED-INCS) \
@@ -899,6 +912,29 @@ $(OBJECTDIR)vmemsave.o: $(SRCDIR)vmemsave.c $(REQUIRED-INCS) \
$(INCDIR)ufsdefs.h
$(CC) $(RFLAGS) $(SRCDIR)vmemsave.c -o $(OBJECTDIR)vmemsave.o
$(OBJECTDIR)array2.o: $(SRCDIR)array2.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)gcdata.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h $(INCDIR)array2defs.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array2.c -o $(OBJECTDIR)array2.o
$(OBJECTDIR)array4.o: $(SRCDIR)array4.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h \
$(INCDIR)gcdata.h $(INCDIR)my.h $(INCDIR)array4defs.h $(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array4.c -o $(OBJECTDIR)array4.o
$(OBJECTDIR)array6.o: $(SRCDIR)array6.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)gcdata.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h $(INCDIR)array6defs.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array6.c -o $(OBJECTDIR)array6.o
$(OBJECTDIR)sxhash.o: $(SRCDIR)sxhash.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
@@ -918,8 +954,10 @@ $(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(REQUIRED-INCS) \
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
$(INCDIR)initatms.h $(INCDIR)gcdata.h $(INCDIR)arith.h $(INCDIR)stream.h \
$(INCDIR)tos1defs.h $(INCDIR)tosret.h $(INCDIR)tosfns.h $(INCDIR)inlineC.h \
$(INCDIR)xcdefs.h $(INCDIR)arithopsdefs.h $(INCDIR)arrayopsdefs.h \
$(INCDIR)bitbltdefs.h $(INCDIR)bltdefs.h \
$(INCDIR)xcdefs.h $(INCDIR)arith2defs.h $(INCDIR)arith3defs.h \
$(INCDIR)arith4defs.h $(INCDIR)arraydefs.h $(INCDIR)array2defs.h \
$(INCDIR)array3defs.h $(INCDIR)array4defs.h $(INCDIR)array5defs.h \
$(INCDIR)array6defs.h $(INCDIR)bitbltdefs.h $(INCDIR)bltdefs.h \
$(INCDIR)byteswapdefs.h $(INCDIR)car-cdrdefs.h $(INCDIR)commondefs.h \
$(INCDIR)conspagedefs.h $(INCDIR)drawdefs.h $(INCDIR)eqfdefs.h \
$(INCDIR)findkeydefs.h $(INCDIR)fpdefs.h $(INCDIR)fvardefs.h \

View File

@@ -1,6 +0,0 @@
#!/bin/sh
cat <<EOF
#include <time.h>
extern const time_t MDate;
const time_t MDate = $(date +%s);
EOF

View File

@@ -1,7 +1,6 @@
#!/bin/sh
os=${LDEARCH:-`./config.guess`}
os=`./config.guess`
case "$os" in
m68k-*-amigaos) echo amigaos ;;
sparc-sun-sunos*) echo sunos4 ;;
sparc-sun-solaris1*) echo sunos4 ;;
*-*-solaris2*) echo sunos5 ;;

View File

@@ -1,44 +0,0 @@
#!/bin/sh
# Make and release maiko for one os / arch
# Hopefully to be replaced by GitHub Action
if [ ! -x ../../maiko/bin/machinetype ] ; then
echo ERROR: Must be run from maiko/bin
exit 1
fi
tag=$1
if [ -z "$tag" ] ; then
tag=maiko-`date +%y%m%d`
fi
export PATH=.:"$PATH"
osarch=`osversion`.`machinetype`
./makeright x
./makeright init
cd ../..
mkdir -p maiko/build
echo making $tag-$osarch.tgz
tar cfz maiko/build/$tag-$osarch.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/$osarch/lde*
if ! command -v gh >/dev/null ; then
echo
echo The GitHub Command Line Interface, gh
echo does not seem to be installed.
echo Please upload maiko/build/$tag-$osarch.tgz
echo to https://github.com/Interlisp/maiko/releases $tag
exit 0
fi
echo uploading
cd maiko
gh release upload --clobber $tag build/$tag-$osarch.tgz

View File

@@ -1,36 +0,0 @@
#!/bin/sh
# This script is just a placeholder until we get GitHub
# Actions to do releases
# Start Maiko release from maiko/bin
# startrelease [tag]
# tag defaults to maiko-YYMMDD
tag=$1
if [ -z "$tag" ] ; then
tag=maiko-`date +%y%m%d`
fi
if ! command -v gh >/dev/null ; then
echo "It seems like 'gh', the GitHub Command Line Interface is"
echo "not installed. You can start a release using the"
echo "web interface at"
echo "https://github.com/Interlisp/maiko/releases/new"
echo "Make up a tag (or use $tag)"
echo "and run './release-one tag' (or manually upload if"
echo "no 'gh' is installed) on every os/machine you want"
echo "this release to work for"
exit 0
fi
# Now for the only thing this script is actually doing
gh release create $tag -p -t $tag -n "See release notes in medley repo"
echo "Now run "
echo ./release-one $tag
echo "in maiko/bin on every os/machine you want this release"
echo "to work for. When done, edit the release in your"
echo "browser and uncheck the prerelease box "

View File

@@ -24,6 +24,7 @@
#define VERTICAL 0
#define HORIZONTAL 1
#define PERCENT_OF_SCREEN 95
#define SCROLL_PITCH 30
typedef struct _MyEvent
@@ -76,7 +77,7 @@ typedef struct
, White_Pixel ); \
XLOCK; \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
(child_win)->parent = parent_win; \
if( (child_win)->after_create ) \
((child_win)->after_create)(parent_win,child_win);\
@@ -95,7 +96,7 @@ typedef struct
, (window)->width \
, (window)->height ); \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
if( (window)->after_resize ) \
((window)->after_resize)( window ); \
} \
@@ -105,7 +106,7 @@ typedef struct
XLOCK; \
XDefineCursor( display, (window)->win, *(mycursor) ); \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
(window)->cursor = mycursor; \
}

View File

@@ -9,6 +9,8 @@
* Hiroshi Hayata
*/
/************************************************************************/
/* */
/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */
@@ -18,6 +20,8 @@
/* */
/************************************************************************/
/**********************************************************************/
/*
Func name : adr68k.h
@@ -28,64 +32,8 @@
*/
/**********************************************************************/
#include <stddef.h>
#include <stdio.h>
#include "lispemul.h"
#include "lspglob.h"
static inline LispPTR LAddrFromNative(void *NAddr)
{
if ((uintptr_t)NAddr & 1) {
printf("Misaligned pointer in LAddrFromNative %p\n", NAddr);
}
return ((DLword *)NAddr) - Lisp_world;
}
static inline DLword *NativeAligned2FromLAddr(LispPTR LAddr)
{
return (Lisp_world + LAddr);
}
static inline LispPTR *NativeAligned4FromLAddr(LispPTR LAddr)
{
if (LAddr & 1) {
printf("Misaligned pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
}
return (LispPTR *)(Lisp_world + LAddr);
}
static inline LispPTR *NativeAligned4FromLPage(LispPTR LPage)
{
return (LispPTR *)(Lisp_world + (LPage << 8));
}
static inline DLword StackOffsetFromNative(void *SAddr)
{
/* Stack offsets are expressed as an offset in DLwords from the stack base */
ptrdiff_t hoffset = (DLword *)SAddr - Stackspace;
if (hoffset > 0xffff) {
printf("Stack offset is too large: 0x%tx\n", hoffset);
}
return (DLword)hoffset;
}
static inline DLword *NativeAligned2FromStackOffset(DLword StackOffset)
{
return Stackspace + StackOffset;
}
static inline LispPTR *NativeAligned4FromStackOffset(DLword StackOffset)
{
return (LispPTR *)(Stackspace + StackOffset);
}
static inline LispPTR LPageFromNative(void *NAddr)
{
if ((uintptr_t)NAddr & 1) {
printf("Misaligned pointer in LPageFromNative %p\n", NAddr);
}
return (((DLword *)NAddr) - Lisp_world) >> 8;
}
/* translate 68k ptr to Lisp DLword address */
#define LADDR_from_68k(ptr68k) ((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Lisp_world) >>1))
@@ -101,6 +49,10 @@ static inline LispPTR LPageFromNative(void *NAddr)
/* translate LispPage to 68k address */
#define Addr68k_from_LPAGE(Lisp_page) (Addr68k_from_LADDR(((Lisp_page) << 8) ))
/* Stack Offset Macros */
#define StkOffset_from_68K(ptr68k)\

View File

@@ -1,6 +1,6 @@
#ifndef ALLOCMDSDEFS_H
#define ALLOCMDSDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
LispPTR initmdspage(LispPTR *base, DLword size, LispPTR prev);
LispPTR *alloc_mdspage(short int type);
LispPTR initmdspage(register LispPTR *base, register DLword size, register LispPTR prev);
LispPTR *alloc_mdspage(register short int type);
#endif

View File

@@ -9,79 +9,51 @@
/* */
/************************************************************************/
#include "adr68k.h" // for NativeAligned4FromLAddr, LAddrFromNative
#include "commondefs.h" // for error
#include "lispemul.h" // for SEGMASK, ERROR_EXIT
#include "lispmap.h" // for S_NEGATIVE, S_POSITIVE
#include "lsptypes.h" // for TYPE_FIXP, GetTypeNumber, TYPE_FLOATP
#include "mkcelldefs.h" // for createcell68k
#define MAX_SMALL 65535 /* == 0x0000FFFF */
#define MIN_SMALL (-65536) /* == 0xFFFF0000 */
#define MAX_FIXP 2147483647 /* == 0x7FFFFFFF */
#define MIN_FIXP (-2147483648) /* == 0x80000000 */
/**
* extract an integer value from a smallp
*/
static inline int GetSmalldata(LispPTR x) {
if ((SEGMASK & (int)x) == S_POSITIVE) return (int)(x & 0xFFFF);
if ((SEGMASK & (int)x) == S_NEGATIVE) return (int)(x | 0xFFFF0000);
error("Not smallp address");
return (0);
}
#define GetSmalldata(x) \
(((SEGMASK & (x)) == S_POSITIVE) \
? (0xFFFF & (x)) \
: (((SEGMASK & (x)) == S_NEGATIVE) ? (0xFFFF0000 | (x)) : error("Not smallp address")))
/**
* construct a smallp from an integer value
*/
#define GetSmallp(x) \
((0xFFFF0000 & (x)) ? (((0xFFFF0000 & (x)) == 0xFFFF0000) ? (S_NEGATIVE | (0xFFFF & (x))) \
: error("Not Smallp data")) \
: (S_POSITIVE | (0xFFFF & (x))))
static inline LispPTR GetSmallp(long x) {
if (x >= 0) {
if (x <= MAX_SMALL) return (LispPTR)(S_POSITIVE | x);
} else {
if (x >= MIN_SMALL) return (LispPTR)(S_NEGATIVE | (x & 0xFFFF));
}
error("Not Smallp data");
return (S_POSITIVE | 0);
}
#define FIXP_VALUE(dest) *((int *)Addr68k_from_LADDR(dest))
/**
* construct a smallp from an unsigned value
*/
static inline LispPTR GetPosSmallp(unsigned long x) {
if (x <= MAX_SMALL) return (LispPTR)(S_POSITIVE | x);
error("Not Smallp data");
return (S_POSITIVE | 0);
}
#define FIXP_VALUE(dest) *((int *)NativeAligned4FromLAddr(dest))
#define FLOATP_VALUE(dest) *((float *)NativeAligned4FromLAddr(dest))
#define FLOATP_VALUE(dest) *((float *)Addr68k_from_LADDR(dest))
#define N_GETNUMBER(sour, dest, label) \
do { \
switch (SEGMASK & (sour)) { \
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
(dest) = (sour); /* access memory once */ \
switch (SEGMASK & (dest)) { \
case S_POSITIVE: (dest) = 0xFFFF & (dest); break; \
case S_NEGATIVE: (dest) = 0xFFFF0000 | (dest); break; \
default: \
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
if (GetTypeNumber(sour) != TYPE_FIXP) goto label; \
(dest) = FIXP_VALUE(sour); \
if (GetTypeNumber(dest) != TYPE_FIXP) goto label; \
(dest) = FIXP_VALUE(dest); \
} \
} while (0)
#define N_IGETNUMBER(sour, dest, label) \
do { \
switch (SEGMASK & (sour)) { \
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
(dest) = (sour); /* access memory once */ \
switch (SEGMASK & (dest)) { \
case S_POSITIVE: (dest) = 0xFFFF & (dest); break; \
case S_NEGATIVE: (dest) = 0xFFFF0000 | (dest); break; \
default: \
switch (GetTypeNumber(sour)) { \
case TYPE_FIXP: (dest) = FIXP_VALUE(sour); break; \
switch (GetTypeNumber(dest)) { \
case TYPE_FIXP: (dest) = FIXP_VALUE(dest); break; \
case TYPE_FLOATP: { \
float temp; \
temp = FLOATP_VALUE(sour); \
register float temp; \
temp = FLOATP_VALUE(dest); \
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
if ((temp > ((float)0x7fffffff)) || (temp < ((float)0x80000000))) goto label; \
(dest) = (int)temp; \
@@ -94,33 +66,100 @@ static inline LispPTR GetPosSmallp(unsigned long x) {
#define ARITH_SWITCH(arg, result) \
do { \
switch ((arg) & (int)0xFFFF0000) { \
switch ((int)(arg) & 0xFFFF0000) { \
case 0: (result) = (S_POSITIVE | (int)(arg)); break; \
case (int)0xFFFF0000: (result) = (S_NEGATIVE | (0xFFFF & (arg))); break; \
case 0xFFFF0000: (result) = (S_NEGATIVE | (0xFFFF & (int)(arg))); break; \
default: { \
int *fixpp; \
register LispPTR *wordp; \
/* arg is FIXP, call createcell */ \
fixpp = (int *)createcell68k(TYPE_FIXP); \
*((int *)fixpp) = (int)(arg); \
(result) = (LAddrFromNative(fixpp)); \
wordp = (LispPTR *)createcell68k(TYPE_FIXP); \
*((int *)wordp) = (int)(arg); \
(result) = (LADDR_from_68k(wordp)); \
break; \
} \
} \
} while (0)
/* *******
NEED to See if this is faster than the N_ARITH_SWITCH macro
if( (MIN_FIXP <= result) && (result <= MAX_FIXP) ){
if(0 <= result){
if(result <= MAX_SMALL)
return(S_POSITIVE | result);
else{
wordp = createcell68k(TYPE_FIXP);
*((unsigned int *)wordp) = result;
return(LADDR_from_68k(wordp));
}
}else{
if(MIN_SMALL <= result)
return(S_NEGATIVE | (0xFFFF & result));
else{
wordp = createcell68k(TYPE_FIXP);
*((unsigned int *)wordp) = result;
return(LADDR_from_68k(wordp));
}
}/
}
****** */
#define N_ARITH_SWITCH(arg) \
do { \
switch ((arg) & (int)0xFFFF0000) { \
case 0: return (LispPTR) (S_POSITIVE | (arg)); \
case (int)0xFFFF0000: return (LispPTR)(S_NEGATIVE | (0xFFFF & (arg))); \
switch ((arg) & 0xFFFF0000) { \
case 0: return (S_POSITIVE | (arg)); \
case 0xFFFF0000: return (S_NEGATIVE | (0xFFFF & (arg))); \
default: { \
int *fixpp; \
register LispPTR *fixpp; \
/* arg is FIXP, call createcell */ \
fixpp = (int *)createcell68k(TYPE_FIXP); \
*fixpp = arg; \
return (LAddrFromNative(fixpp)); \
fixpp = (LispPTR *)createcell68k(TYPE_FIXP); \
*((int *)fixpp) = arg; \
return (LADDR_from_68k(fixpp)); \
} \
} \
} while (0)
#define N_IARITH_BODY_2(a, tos, op) \
do { \
register int arg1, arg2; \
\
N_IGETNUMBER(a, arg1, do_ufn); \
N_IGETNUMBER(tos, arg2, do_ufn); \
\
arg1 = arg1 op arg2; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(tos); \
} while (0)
#define N_ARITH_BODY_1(a, n, op) \
do { \
register int arg1; \
\
N_GETNUMBER(a, arg1, do_ufn); \
\
arg1 = arg1 op n; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(a); \
} while (0)
#define N_ARITH_BODY_1_UNSIGNED(a, n, op) \
do { \
register unsigned int arg1; \
\
N_GETNUMBER(a, arg1, do_ufn); \
\
arg1 = arg1 op n; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(a); \
} while (0)
#endif /* ARITH_H */

15
inc/arith2defs.h Normal file
View File

@@ -0,0 +1,15 @@
#ifndef ARITH2DEFS_H
#define ARITH2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_plus2(int tosm1, int tos);
LispPTR N_OP_iplus2(int tosm1, int tos);
LispPTR N_OP_difference(int tosm1, int tos);
LispPTR N_OP_idifference(int tosm1, int tos);
LispPTR N_OP_logxor(int tosm1, int tos);
LispPTR N_OP_logand(int tosm1, int tos);
LispPTR N_OP_logor(int tosm1, int tos);
LispPTR N_OP_greaterp(int tosm1, int tos);
LispPTR N_OP_igreaterp(int tosm1, int tos);
LispPTR N_OP_iplusn(int tos, int n);
LispPTR N_OP_idifferencen(int tos, int n);
#endif

7
inc/arith3defs.h Normal file
View File

@@ -0,0 +1,7 @@
#ifndef ARITH3DEFS_H
#define ARITH3DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_makenumber(int tosm1, int tos);
LispPTR N_OP_boxiplus(register int a, int tos);
LispPTR N_OP_boxidiff(register int a, int tos);
#endif

8
inc/arith4defs.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef ARITH4DEFS_H
#define ARITH4DEFS_H 1
int N_OP_times2(int tosm1, int tos);
int N_OP_itimes2(int tosm1, int tos);
int N_OP_quot(int tosm1, int tos);
int N_OP_iquot(int tosm1, int tos);
int N_OP_iremainder(int tosm1, int tos);
#endif

View File

@@ -1,23 +0,0 @@
#ifndef ARITHOPSDEFS_H
#define ARITHOPSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_plus2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iplus2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_difference(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_idifference(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logxor(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logand(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logor(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_greaterp(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_igreaterp(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iplusn(LispPTR tos, int n);
LispPTR N_OP_idifferencen(LispPTR tos, int n);
LispPTR N_OP_makenumber(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_boxiplus(LispPTR a, LispPTR tos);
LispPTR N_OP_boxidiff(LispPTR a, LispPTR tos);
LispPTR N_OP_times2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_itimes2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_quot(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iquot(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iremainder(LispPTR tosm1, LispPTR tos);
#endif

6
inc/array2defs.h Normal file
View File

@@ -0,0 +1,6 @@
#ifndef ARRAY2DEFS_H
#define ARRAY2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc4(register LispPTR data, register LispPTR base, register LispPTR typenumber,
register LispPTR inx, int alpha);
#endif

5
inc/array3defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY3DEFS_H
#define ARRAY3DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aref1(register LispPTR arrayarg, register LispPTR inx);
#endif

5
inc/array4defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY4DEFS_H
#define ARRAY4DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aset1(register LispPTR data, LispPTR arrayarg, register int inx);
#endif

5
inc/array5defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY5DEFS_H
#define ARRAY5DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aref2(LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

5
inc/array6defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY6DEFS_H
#define ARRAY6DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aset2(register LispPTR data, LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

5
inc/arraydefs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAYDEFS_H
#define ARRAYDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc3(LispPTR baseL, LispPTR typenumber, LispPTR inx, int alpha);
#endif

View File

@@ -1,10 +0,0 @@
#ifndef ARRAYOPSDEFS_H
#define ARRAYOPSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc3(LispPTR baseL, LispPTR typenumber, LispPTR inx, int alpha);
LispPTR N_OP_misc4(LispPTR data, LispPTR base, LispPTR typenumber, LispPTR inx, int alpha);
LispPTR N_OP_aref1(LispPTR arrayarg, LispPTR inx);
LispPTR N_OP_aset1(LispPTR data, LispPTR arrayarg, int inx);
LispPTR N_OP_aref2(LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
LispPTR N_OP_aset2(LispPTR data, LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

View File

@@ -389,7 +389,7 @@
do_partial_transfer \
dst32addr++; \
switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner { DestGetsF(=) } break; \
case op_fn_and: ForInner { DestGetsF(&=) } break; \
case op_fn_or: ForInner { DestGetsF(|=) } break; \
@@ -416,14 +416,14 @@
if (aligned_loop) \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr++ = ~*src32addr++;} break; \
case op_fn_and: ForInner {*dst32addr++ &= ~*src32addr++;} break; \
case op_fn_or: ForInner {*dst32addr++ |= ~*src32addr++;} break; \
case op_fn_xor: ForInner {*dst32addr++ ^= ~*src32addr++;} break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr++ = *src32addr++;} break; \
case op_fn_and: ForInner {*dst32addr++ &= *src32addr++;} break; \
case op_fn_or: ForInner {*dst32addr++ |= *src32addr++;} break; \
@@ -433,14 +433,14 @@
else \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcCF DestGetsF(=) } break; \
case op_fn_and: ForInner {GetSrcCF DestGetsF(&=) } break; \
case op_fn_or: ForInner {GetSrcCF DestGetsF(|=) } break; \
case op_fn_xor: ForInner {GetSrcCF DestGetsF(^=) } break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcF DestGetsF(=) } break; \
case op_fn_and: ForInner {GetSrcF DestGetsF(&=) } break; \
case op_fn_or: ForInner {GetSrcF DestGetsF(|=) } break; \
@@ -470,14 +470,14 @@
if (aligned_loop) \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr-- = ~*src32addr--;} break; \
case op_fn_and: ForInner {*dst32addr-- &= ~*src32addr--;} break; \
case op_fn_or: ForInner {*dst32addr-- |= ~*src32addr--;} break; \
case op_fn_xor: ForInner {*dst32addr-- ^= ~*src32addr--;} break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr-- = *src32addr--;} break; \
case op_fn_and: ForInner {*dst32addr-- &= *src32addr--;} break; \
case op_fn_or: ForInner {*dst32addr-- |= *src32addr--;} break; \
@@ -487,14 +487,14 @@
else \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcCB DestGetsB(=) } break; \
case op_fn_and: ForInner {GetSrcCB DestGetsB(&=) } break; \
case op_fn_or: ForInner {GetSrcCB DestGetsB(|=) } break; \
case op_fn_xor: ForInner {GetSrcCB DestGetsB(^=) } break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcB DestGetsB(=) } break; \
case op_fn_and: ForInner {GetSrcB DestGetsB(&=) } break; \
case op_fn_or: ForInner {GetSrcB DestGetsB(|=) } break; \
@@ -698,7 +698,7 @@
/* However, YOU must set up the control variables that are used */
/* as "arguments" to the bitblt code: */
/* */
/* DLword *srcbase, *dstbase; */
/* register DLword *srcbase, *dstbase; */
/* int sx, dx, w, h, srcbpl, dstbpl, backwardflg; */
/* int src_comp, op, gray, num_gray, curr_gray_line; */
/* */
@@ -713,9 +713,9 @@ int abc, dst32rbit, src32rbit, fwd; \
unsigned int *OrigSrcAddr, *OrigDstAddr; \
int bb_fast; \
unsigned int preloop_mask, postloop_mask, sdw_mask; \
unsigned int *dst32addr, *src32addr; \
unsigned int shS, savedS, newS; \
int srcRshift;
register unsigned int *dst32addr, *src32addr; \
register unsigned int shS, savedS, newS; \
register int srcRshift;

View File

@@ -1,19 +1,36 @@
#ifndef BBTSUBDEFS_H
#define BBTSUBDEFS_H 1
/***** Don't use PixRect code on 386i for now *****/
/***** -or on any machine that doesn't support it (HP, e.g.) *****/
/********************************************************/
/* */
/* Don Charnley's bitblt code */
/* prropstyle is DEFINED when we want to use */
/* pixrect versions of the operations in this */
/* file, and UNDEFINED, when we want to use */
/* Don Charnley's bitblt code to do them. */
/* */
/********************************************************/
#include "lispemul.h" /* for LispPTR, DLword */
#if defined(SUNDISPLAY) && \
!defined(NOPIXRECT) && \
!defined(NEWBITBLT)
#define prropstyle 1
#endif
void bitbltsub(LispPTR *argv);
LispPTR n_new_cursorin(DLword *baseaddr, int dx, int dy, int w, int h);
LispPTR bitblt_bitmap(LispPTR *args);
LispPTR bitshade_bitmap(LispPTR *args);
#ifndef prropstyle
void bltchar(LispPTR *args);
void newbltchar(LispPTR *args);
#else
LispPTR bltchar(LispPTR *args);
LispPTR newbltchar(LispPTR *args);
#endif
void ccfuncall(unsigned int atom_index, int argnum, int bytenum);
void tedit_bltchar(LispPTR *args);

View File

@@ -1,5 +1,5 @@
#ifndef BINDEFS_H
#define BINDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_bin(LispPTR tos);
LispPTR N_OP_bin(register int tos);
#endif

View File

@@ -1,7 +1,7 @@
#ifndef BINDSDEFS_H
#define BINDSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR *N_OP_bind(LispPTR *stack_pointer, LispPTR tos, int byte1, int byte2);
LispPTR *N_OP_unbind(LispPTR *stack_pointer);
LispPTR *N_OP_dunbind(LispPTR *stack_pointer, LispPTR tos);
LispPTR *N_OP_bind(register LispPTR *stack_pointer, register LispPTR tos, int byte1, int byte2);
LispPTR *N_OP_unbind(register LispPTR *stack_pointer);
LispPTR *N_OP_dunbind(register LispPTR *stack_pointer, register LispPTR tos);
#endif

View File

@@ -49,11 +49,13 @@ extern int DisplayRasterWidth;
#define MOUSEYH ((int)*EmMouseY68K + YDELTA)
#ifdef DOS
#define HideCursor { (currentdsp->mouse_invisible)(currentdsp, IOPage68K); }
#define ShowCursor { (currentdsp->mouse_visible)(IOPage68K->dlmousex, \
IOPage68K->dlmousey); }
#if defined(SUNDISPLAY) && defined(OLD_CURSOR)
extern struct winlock DisplayLockArea;
#define HideCursor \
ioctl( LispWindowFd, WINLOCKSCREEN, &DisplayLockArea)
#define ShowCursor \
ioctl( LispWindowFd, WINUNLOCKSCREEN, &DisplayLockArea)
#else
extern DLword *EmCursorX68K,*EmCursorY68K;
#define HideCursor { taking_mouse_down();}
@@ -75,14 +77,7 @@ extern DLword *EmCursorX68K,*EmCursorY68K;
/* Macro for locking and unlocking screen to prevent multiple updates */
#ifdef DOS
#define LOCKSCREEN currentdsp->device.locked++;
#define UNLOCKSCREEN currentdsp->device.locked--;
#else
#define LOCKSCREEN ScreenLocked = T;
#define UNLOCKSCREEN ScreenLocked = NIL;
#endif /* DOS */
#endif /* BITBLT_H */

View File

@@ -1,7 +1,7 @@
#ifndef BITBLTDEFS_H
#define BITBLTDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos);
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl,int tos);
int cursorin(DLword addrhi, DLword addrlo, int w, int h, int backward);
#endif

View File

@@ -1,6 +1,6 @@
#ifndef BLTDEFS_H
#define BLTDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, LispPTR wordcount);
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, register LispPTR wordcount);
#endif

View File

@@ -16,7 +16,7 @@ static inline unsigned int swapx(unsigned int word) {
/* */
/****************************************************************/
static inline unsigned short byte_swap_word(unsigned short word) {
return ((word >> 8) | (unsigned short)((word & 0xff) << 8));
return (((word >> 8) & 0xff) | ((word & 0xff) << 8));
}
void byte_swap_page(unsigned short *page, int wordcount);

View File

@@ -2,13 +2,13 @@
#define CAR_CDRDEFS_H 1
#include "cell.h" /* for ConsCell */
#include "lispemul.h" /* for LispPTR */
LispPTR car(LispPTR datum);
LispPTR cdr(LispPTR datum);
LispPTR rplaca(LispPTR x, LispPTR y);
LispPTR rplacd(LispPTR x, LispPTR y);
LispPTR N_OP_car(LispPTR tos);
LispPTR N_OP_cdr(LispPTR tos);
LispPTR N_OP_rplaca(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_rplacd(LispPTR tosm1, LispPTR tos);
LispPTR car(register LispPTR datum);
LispPTR cdr(register LispPTR datum);
LispPTR rplaca(register LispPTR x, register LispPTR y);
LispPTR rplacd(LispPTR x, register LispPTR y);
LispPTR N_OP_car(register LispPTR tos);
LispPTR N_OP_cdr(register LispPTR tos);
LispPTR N_OP_rplaca(register LispPTR tosm1, register LispPTR tos);
LispPTR N_OP_rplacd(register LispPTR tosm1, register LispPTR tos);
ConsCell *find_close_prior_cell(struct conspage *page, LispPTR oldcell);
#endif

33
inc/cell.h Normal file → Executable file
View File

@@ -9,8 +9,6 @@
/* */
/************************************************************************/
#include "version.h"
/**********************************************************************/
/*
File Name : cell.h
@@ -22,8 +20,8 @@
*/
/**********************************************************************/
#include "adr68k.h" /* for NativeAligned4FromLPage, NativeAligned4FromLAddr */
#include "lispemul.h" /* for LispPTR, DLword */
#include "version.h" /* for BIGVM, NEWCDRCODING, BIGATOMS */
/* CONS CELL (LISTP) definitions moved to lispemulater.h */
@@ -102,13 +100,13 @@ struct conspage {
/* Following MACROs for Conspage */
/* lisp_ptr is LISP pointer, returns 68k ptr points struct conspage obj */
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)NativeAligned4FromLPage(POINTER_PAGEBASE(lisp_ptr))
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)Addr68k_from_LPAGE(POINTER_PAGEBASE(lisp_ptr))
#define GetNewCell_68k(conspage68k) \
(ConsCell *)(((DLword *)(conspage68k)) + (unsigned)((conspage68k)->next_cell))
/* page : LISP page */
#define GetCONSCount(page) (((struct conspage *)NativeAligned4FromLPage(page))->count)
#define GetCONSCount(page) (((struct conspage *)Addr68k_from_LPAGE(page))->count)
#ifndef BYTESWAP
/* For chaining together free cons cells on a page */
@@ -378,16 +376,20 @@ struct cadr_cell {
#else
/* Good for old LITATOMS and new NEW-ATOMs */
#define GetDEFCELL68k(index) \
((((index) & SEGMASK) != 0) ? GetDEFCELLnew(index) : GetDEFCELLlitatom(index))
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET) \
: GetDEFCELLlitatom(index))
#define GetVALCELL68k(index) \
((((index) & SEGMASK) != 0) ? GetVALCELLnew(index) : GetVALCELLlitatom(index))
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET) \
: GetVALCELLlitatom(index))
#define GetPnameCell(index) \
((((index) & SEGMASK) != 0) ? GetPnameCellnew(index) : GetPnameCelllitatom(index))
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET) \
: GetPnameCelllitatom(index))
#define GetPropCell(index) \
((((index) & SEGMASK) != 0) ? GetPropCellnew(index) : GetPropCelllitatom(index))
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET) \
: GetPropCelllitatom(index))
/* Good only for old-style LITATOMS */
#ifdef BIGVM
@@ -403,13 +405,10 @@ struct cadr_cell {
#endif
/* Good only for new-style NEW-ATOMs */
/* Note: the _OFFSET values are in units of DLword so need to be adjusted before doing pointer
* arithmetic since we now have native pointers to cells not DLwords
*/
#define GetDEFCELLnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_DEFN_OFFSET / DLWORDSPER_CELL))
#define GetVALCELLnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_VALUE_OFFSET / DLWORDSPER_CELL))
#define GetPnameCellnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_PNAME_OFFSET / DLWORDSPER_CELL))
#define GetPropCellnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_PLIST_OFFSET / DLWORDSPER_CELL))
#define GetDEFCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET)
#define GetVALCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET)
#define GetPnameCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET)
#define GetPropCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET)
#endif /* BIGATOMS */
@@ -417,7 +416,7 @@ struct cadr_cell {
#define S_N_CHECKANDCADR(sour, dest, tos) \
{ \
LispPTR parm = sour; \
register LispPTR parm = sour; \
if (GetTypeNumber(parm) != TYPE_LISTP) { \
ERROR_EXIT(tos); \
} else \

View File

@@ -3,4 +3,6 @@
void stab(void);
void warn(const char *s);
int error(const char *s);
int stackcheck(void);
void stackoverflow(void);
#endif

View File

@@ -2,6 +2,6 @@
#define CONSPAGEDEFS_H 1
#include "lispemul.h" /* for LispPTR */
struct conspage *next_conspage(void);
LispPTR N_OP_cons(int cons_car, int cons_cdr);
LispPTR N_OP_cons(register int cons_car, register int cons_cdr);
LispPTR cons(LispPTR cons_car, LispPTR cons_cdr);
#endif

View File

@@ -43,7 +43,7 @@ extern int flushing;
#define DBPRINT(X) do {printf X ; if (flushing) fflush(stdout); } while(0)
#define DEBUGGER(X) X
#else
#define DBPRINT(X) if (0) do {printf X ; } while(0)
#define DBPRINT(X) do {} while(0)
#define DEBUGGER(X)
#endif
@@ -55,7 +55,7 @@ extern int flushing;
#define TRACER(X) X
#else /* TRACE */
#define TPRINT(X) if (0) do { printf X; } while (0)
#define TPRINT(X) do { } while (0)
#define TRACER(X)
#endif /* TRACE */
@@ -67,7 +67,7 @@ extern int flushing;
#define OPTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
#define OPTRACER(X) X
#else
#define OPTPRINT(X) if (0) do { printf X; } while (0)
#define OPTPRINT(X) do { } while (0)
#define OPTRACER(X)
#endif
@@ -78,7 +78,7 @@ extern int flushing;
#define FNTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
#define FNTRACER(X) X
#else
#define FNTPRINT(X) if (0) do { printf X; } while (0)
#define FNTPRINT(X) do { } while (0)
#define FNTRACER(X)
#endif
@@ -89,7 +89,7 @@ extern int flushing;
#define FNCHKPRINT(X) do { printf X ; if (flushing) fflush(stdout); } while (0)
#define FNCHECKER(X) X
#else
#define FNCHKPRINT(X) if (0) do { printf X; } while (0)
#define FNCHKPRINT(X) do { } while (0)
#define FNCHECKER(X)
#endif

View File

@@ -154,19 +154,6 @@ typedef struct
{
DevRec device;
PFV device_event; /* Event handler for the keyboard. */
#ifdef DOS
u_char KeyMap[0x80]; /* The key translation table. Use the keycode you
get from the keyboard as an index. The value
gives the lispkeycode.*/
unsigned char lastbyte; /* Last byte that we got from the keyboard. */
unsigned int keyeventsize; /* The sizeof() one kbd event */
unsigned int maxkeyevent; /* Offset to the end of the ringbuffer. */
int eurokbd; /* Keep tabs of the euro-ness of the kbd */
PFV prev_handler; /* The previous keyboard handler.
Keep this around
to restore when we exit Medley */
int URaid; /* Put this in a better place later.. /jarl */
#endif /* DOS */
} KbdInterfaceRec, *KbdInterface;
@@ -221,20 +208,7 @@ typedef struct
unsigned long oldstate; /* Keep the old state around */
unsigned long graphicsmode; /* Magic cookie used to set the state. */
unsigned long numberofbanks;
#ifdef DOS
unsigned long BytesPerLine;
unsigned long DisplayStartAddr;
unsigned long DisplaySegSize;
unsigned long DisplaySegMagnitude;
unsigned long LinesPerBank;
unsigned short LastLineLen[32]; /* length of last line fragment per bank */
unsigned short LinesInBank[32]; /* True # of full lines in this bank */
/* # of lines we can do with the full-line dumpline */
/* for sure. */
unsigned short LinesBeforeBank[32]; /* Scan lines before start of this bank. */
void (* SwitchBank)(); /* Method to switch the bank (see vesa standard) */
#elif XWINDOW
#if XWINDOW
char *identifier;
int BitGravity;
Display *display_id;
@@ -264,12 +238,11 @@ typedef struct
#ifdef XWINDOW
#define DefineCursor(dsp, window, mycursor) \
do { \
XLOCK; \
XDefineCursor((dsp)->display_id, window, *(mycursor) ); \
XUNLOCK(dsp); \
} while (0)
#define DefineCursor(display, window, mycursor) { \
XLOCK;\
XDefineCursor( display, window, *(mycursor) );\
XUNLOCK;\
}
#endif /* XWINDOW */
#define OUTER_SB_WIDTH(dsp) ((dsp)->ScrollBarWidth + 2*((dsp)->InternalBorderWidth))

View File

@@ -1,73 +1,11 @@
#ifndef DIRDEFS_H
#define DIRDEFS_H 1
#include <dirent.h> // for MAXNAMLEN
#include <sys/types.h> // for u_short, ino_t
#include "lispemul.h" // for LispPTR
/*
* FINFO and FPROP are used to store the information of the enumerated files
* and directories. They are arranged in a form of linked list. Each list is
* corresponding to the each directory enumeration. All of the informations
* Lisp needs are stored in the list. This list is in the emulator's address space
* and can be specified by "ID" which is the interface between the emulator and Lisp
* code. In this implementation, ID is represented as an integer and is actually
* an index of the array of the lists.
*
* To avoid the overhead of the FINFO and FPROP structure dynamic allocation and
* deallocation, some number of their instances are pre-allocated when the emulator
* starts and managed in a free list. If all of the pre-allocated instances are in
* use, new instances are allocated. The new instances are linked to the free list
* when it is freed.
*
* As described above, the linked list result of the enumeration is stored in a
* array for the subsequent request from Lisp. Lisp code requests the emulator to
* release the list when it enumerated all of the entries in the list or the
* enumerating operation is aborted.
*/
typedef struct fprop {
unsigned length; /* Byte length of this file. */
unsigned wdate; /* Written (Creation) date in Lisp sense. */
unsigned rdate; /* Read date in Lisp sense. */
unsigned protect; /* Protect mode of this file. */
char author[256]; /* Author in Lisp sense. */
u_short au_len; /* Byte length of author. */
unsigned long nil; /* padding to 8-byte multiple */
} FPROP;
/* This structure has a pointer at each end to force alignment to
be correct when a pointer is 8 bytes long. */
typedef struct finfo {
FPROP *prop; /* File properties Lisp needs. */
char lname[MAXNAMLEN]; /* Name in Lisp Format. */
u_short lname_len; /* Byte length of lname. */
char no_ver_name[MAXNAMLEN];
/*
* Name in UNIX Format. Does not
* include Version field.
* All lower case.
*/
ino_t ino; /* I-node number of this file. */
unsigned version; /* Version in Lisp sense. */
u_short dirp; /* If 1, this file is a directory. */
struct finfo *next; /*
* Link to a next entry. Last entry is
* indicated by NULL pointer.
*/
} FINFO;
typedef struct dfinfo {
FINFO *head; /* Head of the linked FINFO structures. */
FINFO *next; /* FINFO structure generated next time. */
} DFINFO;
#ifdef DOS
int make_old_version(char *old, char *file);
#endif
#include "lispemul.h" /* for LispPTR */
#ifdef FSDEBUG
void print_finfo(FINFO *fp);
#endif
int init_finfo(void);
LispPTR COM_gen_files(LispPTR *args);
LispPTR COM_next_file(LispPTR *args);
LispPTR COM_finish_finfo(LispPTR *args);
LispPTR COM_gen_files(register LispPTR *args);
LispPTR COM_next_file(register LispPTR *args);
LispPTR COM_finish_finfo(register LispPTR *args);
#endif

View File

@@ -10,6 +10,7 @@
/* */
/************************************************************************/
#include "lispemul.h" /* for DLword */
#include "version.h" /* for UNSIGNED */
#define BCPLDISPLAY stdout
@@ -43,10 +44,6 @@ extern DLword *DISP_MAX_Address;
#define DISPLAYBUFFER
#endif /* XWINDOW */
#ifdef DOS
#define DISPLAYBUFFER
#endif /* DOS */
#ifdef DISPLAYBUFFER
/************************************************************************/
/* */
@@ -73,4 +70,13 @@ extern DLword *DisplayRegion68k;
#undef DISPLAYBUFFER
#endif /* XWINDOW */
void flush_display_buffer();
void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h);
void flush_display_region(int x, int y, int w, int h);
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h);
#ifdef BYTESWAP
void byte_swapped_displayregion(int x, int y, int w, int h);
#endif
#endif

View File

@@ -1,25 +1,21 @@
#ifndef DSKDEFS_H
#define DSKDEFS_H 1
#include "lispemul.h" /* for LispPTR */
#ifdef DOS
void separate_host(char *lfname, char *host, char *drive);
#else
void separate_host(char *lfname, char *host);
#endif
LispPTR COM_openfile(LispPTR *args);
LispPTR COM_closefile(LispPTR *args);
LispPTR DSK_getfilename(LispPTR *args);
LispPTR DSK_deletefile(LispPTR *args);
LispPTR DSK_renamefile(LispPTR *args);
LispPTR DSK_directorynamep(LispPTR *args);
LispPTR COM_getfileinfo(LispPTR *args);
LispPTR COM_setfileinfo(LispPTR *args);
LispPTR COM_readpage(LispPTR *args);
LispPTR COM_writepage(LispPTR *args);
LispPTR COM_truncatefile(LispPTR *args);
LispPTR COM_changedir(LispPTR *args);
LispPTR COM_getfreeblock(LispPTR *args);
LispPTR COM_openfile(register LispPTR *args);
LispPTR COM_closefile(register LispPTR *args);
LispPTR DSK_getfilename(register LispPTR *args);
LispPTR DSK_deletefile(register LispPTR *args);
LispPTR DSK_renamefile(register LispPTR *args);
LispPTR DSK_directorynamep(register LispPTR *args);
LispPTR COM_getfileinfo(register LispPTR *args);
LispPTR COM_setfileinfo(register LispPTR *args);
LispPTR COM_readpage(register LispPTR *args);
LispPTR COM_writepage(register LispPTR *args);
LispPTR COM_truncatefile(register LispPTR *args);
LispPTR COM_changedir(register LispPTR *args);
LispPTR COM_getfreeblock(register LispPTR *args);
void separate_version(char *name, char *ver, int checkp);
int unpack_filename(char *file, char *dir, char *name, char *ver, int checkp);
int true_name(char *path);
int true_name(register char *path);
#endif

View File

@@ -5,7 +5,7 @@ void DSP_dspbout(LispPTR *args);
void DSP_showdisplay(LispPTR *args);
LispPTR DSP_VideoColor(LispPTR *args);
void DSP_Cursor(LispPTR *args, int argnum);
void DSP_SetMousePos(LispPTR *args);
void DSP_SetMousePos(register LispPTR *args);
LispPTR DSP_ScreenWidth(LispPTR *args);
LispPTR DSP_ScreenHight(LispPTR *args);
void flip_cursor(void);

View File

@@ -1,8 +1,8 @@
#ifndef EQFDEFS_H
#define EQFDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_clequal(LispPTR arg1, LispPTR arg2);
LispPTR N_OP_eqlop(LispPTR arg1, LispPTR arg2);
LispPTR N_OP_equal(LispPTR arg1, LispPTR arg2);
LispPTR N_OP_eqq(LispPTR arg1, LispPTR arg2);
LispPTR N_OP_clequal(register int arg1, register int arg2);
LispPTR N_OP_eqlop(register int arg1, register int arg2);
LispPTR N_OP_equal(register int arg1, register int arg2);
LispPTR N_OP_eqq(register int arg1, register int arg2);
#endif

View File

@@ -13,5 +13,5 @@ int *ether_debug(void);
LispPTR check_ether(void);
void init_ifpage_ether(void);
void init_ether(void);
LispPTR check_sum(LispPTR *args);
LispPTR check_sum(register LispPTR *args);
#endif

View File

@@ -1,5 +1,5 @@
#ifndef FINDKEYDEFS_H
#define FINDKEYDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_findkey(LispPTR tos, int byte);
LispPTR N_OP_findkey(register LispPTR tos, register int byte);
#endif

View File

@@ -2,10 +2,10 @@
#define FVARDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
#include "stack.h" /* for fnhead, frameex1 */
LispPTR N_OP_fvarn(int n);
LispPTR N_OP_fvarn(register int n);
LispPTR N_OP_stkscan(LispPTR tos);
LispPTR N_OP_fvar_(LispPTR tos, int n);
void nnewframe(struct frameex1 *newpfra2, DLword *achain, int name);
void nfvlookup(struct frameex1 *apframe1, DLword *achain, struct fnhead *apfnhead1);
LispPTR N_OP_fvar_(register LispPTR tos, register int n);
void nnewframe(register struct frameex1 *newpfra2, register DLword *achain, register int name);
void nfvlookup(struct frameex1 *apframe1, register DLword *achain, register struct fnhead *apfnhead1);
LispPTR native_newframe(int slot);
#endif

View File

@@ -19,7 +19,6 @@
/**********************************************************************/
#include "lispemul.h" /* for LispPTR, DLword */
#include "version.h" /* for USHORT */
#include "gchtfinddefs.h"
#define ADDREF 0 /* for gclookup routine. */
#define DELREF 1 /* for gclookup routine. */

View File

@@ -1,6 +1,6 @@
#ifndef GCSCANDEFS_H
#define GCSCANDEFS_H 1
#include "lispemul.h" /* for DLword */
DLword gcscan1(int probe);
DLword gcscan2(int probe);
DLword gcscan1(register int probe);
DLword gcscan2(register int probe);
#endif

View File

@@ -1,6 +1,6 @@
#ifndef GVAR2DEFS_H
#define GVAR2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_gvar_(LispPTR tos, unsigned int atom_index);
LispPTR N_OP_rplptr(LispPTR tos_m_1, LispPTR tos, unsigned int alpha);
LispPTR N_OP_gvar_(register LispPTR tos, unsigned int atom_index);
LispPTR N_OP_rplptr(register LispPTR tos_m_1, register LispPTR tos, unsigned int alpha);
#endif

View File

@@ -10,6 +10,6 @@ void display_before_exit(void);
void flush_display_buffer(void);
void flush_display_region(int x, int y, int w, int h);
void byte_swapped_displayregion(int x, int y, int w, int h);
void flush_display_lineregion(UNSIGNED x, DLword *ybase, int w, int h);
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, int w, int h);
void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h);
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h);
#endif

View File

@@ -101,9 +101,9 @@
#define OPCAR \
do { \
if (Listp(TOPOFSTACK)) { \
ConsCell *DATUM68K = (ConsCell *)NativeAligned4FromLAddr(TOPOFSTACK); \
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
if (DATUM68K->cdr_code == CDR_INDIRECT) { \
TOPOFSTACK = ((LispPTR)((ConsCell *)NativeAligned4FromLAddr(DATUM68K->car_field))->car_field); \
TOPOFSTACK = ((LispPTR)((ConsCell *)Addr68k_from_LADDR(DATUM68K->car_field))->car_field); \
nextop1; \
} else { \
TOPOFSTACK = ((LispPTR)DATUM68K->car_field); \
@@ -122,8 +122,8 @@
#define OPCDR \
do { \
if (Listp(TOPOFSTACK)) { \
ConsCell *DATUM68K = (ConsCell *)(NativeAligned4FromLAddr(TOPOFSTACK)); \
int CDRCODEX = DATUM68K->cdr_code; \
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
register int CDRCODEX = DATUM68K->cdr_code; \
if (CDRCODEX == CDR_NIL) { \
/* cdr-nil */ \
TOPOFSTACK = (NIL_PTR); \
@@ -139,7 +139,7 @@
} else { \
/* cdr-differentpage */ \
TOPOFSTACK = \
((ConsCell *)(NativeAligned4FromLAddr((TOPOFSTACK) + (CDRCODEX << 1))))->car_field; \
((ConsCell *)(Addr68k_from_LADDR((TOPOFSTACK) + (CDRCODEX << 1))))->car_field; \
nextop1; \
} \
} else if (TOPOFSTACK == NIL_PTR) { \
@@ -152,8 +152,8 @@
#define OPCDR \
do { \
if (Listp(TOPOFSTACK)) { \
ConsCell *DATUM68K = (ConsCell *)(NativeAligned4FromLAddr(TOPOFSTACK)); \
int CDRCODEX = DATUM68K->cdr_code; \
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
register int CDRCODEX = DATUM68K->cdr_code; \
if (CDRCODEX == CDR_NIL) { \
/* cdr-nil */ \
TOPOFSTACK = (NIL_PTR); \
@@ -169,7 +169,7 @@
} else { \
/* cdr-differentpage */ \
TOPOFSTACK = \
((ConsCell *)(NativeAligned4FromLAddr(POINTER_PAGEBASE(TOPOFSTACK) + (CDRCODEX << 1)))) \
((ConsCell *)(Addr68k_from_LADDR(POINTER_PAGEBASE(TOPOFSTACK) + (CDRCODEX << 1)))) \
->car_field; \
nextop1; \
} \
@@ -239,19 +239,19 @@
#define GETBASE_N(N) \
do { \
TOPOFSTACK = \
(S_POSITIVE | GETWORD((DLword *)NativeAligned2FromLAddr((POINTERMASK & TOPOFSTACK) + (N)))); \
(S_POSITIVE | GETWORD((DLword *)Addr68k_from_LADDR((POINTERMASK & TOPOFSTACK) + (N)))); \
nextop2; \
} while (0)
#define GETBASEPTR_N(N) \
do { \
TOPOFSTACK = (POINTERMASK & *((LispPTR *)NativeAligned4FromLAddr((POINTERMASK & TOPOFSTACK) + (N)))); \
TOPOFSTACK = (POINTERMASK & *((LispPTR *)Addr68k_from_LADDR((POINTERMASK & TOPOFSTACK) + (N)))); \
nextop2; \
} while (0)
#define PUTBASEBYTE \
do { \
LispPTR byteoffset; \
char *p_data; \
register int byteoffset; \
register char *p_data; \
if (((SEGMASK & TOPOFSTACK) != S_POSITIVE) || ((unsigned short)TOPOFSTACK >= 256)) \
goto op_ufn; \
byteoffset = GET_TOS_1; \
@@ -261,12 +261,12 @@
default: \
goto op_ufn; \
/*** if( GetTypeNumber(byteoffset) == TYPE_FIXP ) \
byteoffset = *((int *)NativeAligned4FromLAddr(byteoffset)); \
byteoffset = *((int *)Addr68k_from_LADDR(byteoffset)); \
else \
goto op_ufn; ***/ \
} \
--CSTKPTRL; \
p_data = (char *)NativeAligned2FromLAddr(POINTERMASK & (POP_TOS_1)) + byteoffset; \
p_data = (char *)Addr68k_from_LADDR(POINTERMASK & (POP_TOS_1)) + byteoffset; \
GETBYTE(p_data) = 0xFF & TOPOFSTACK; \
nextop1; \
} while (0)
@@ -278,30 +278,31 @@
case S_NEGATIVE: TOPOFSTACK |= 0xFFFF0000; break; \
default: \
if (GetTypeNumber(TOPOFSTACK) == TYPE_FIXP) \
TOPOFSTACK = *NativeAligned4FromLAddr(TOPOFSTACK); \
TOPOFSTACK = *((int *)Addr68k_from_LADDR(TOPOFSTACK)); \
else \
goto op_ufn; \
} \
TOPOFSTACK = S_POSITIVE | (0xFF & \
(GETBYTE((char *)NativeAligned2FromLAddr((POINTERMASK & (POP_TOS_1))) + TOPOFSTACK))); \
TOPOFSTACK = \
(0xFF & (GETBYTE((char *)Addr68k_from_LADDR((POINTERMASK & (POP_TOS_1))) + TOPOFSTACK))) | \
S_POSITIVE; \
nextop1; \
} while (0)
#define PUTBASEPTR_N(n) \
do { \
LispPTR base; \
register int base; \
base = POINTERMASK & POP_TOS_1; \
*((LispPTR *)NativeAligned4FromLAddr(base + (n))) = TOPOFSTACK; \
*((LispPTR *)Addr68k_from_LADDR(base + (n))) = TOPOFSTACK; \
TOPOFSTACK = base; \
nextop2; \
} while (0)
#define PUTBASE_N(n) \
do { \
LispPTR base; \
register int base; \
if (GetHiWord(TOPOFSTACK) != (S_POSITIVE >> 16)) goto op_ufn; \
base = POINTERMASK & POP_TOS_1; \
GETWORD((DLword *)NativeAligned2FromLAddr(base + (n))) = GetLoWord(TOPOFSTACK); \
GETWORD((DLword *)Addr68k_from_LADDR(base + (n))) = GetLoWord(TOPOFSTACK); \
TOPOFSTACK = base; \
nextop2; \
} while (0)
@@ -336,9 +337,9 @@
#elif defined(BIGVM)
#define GVAR(x) \
do { \
LispPTR tx = x; \
register int tx = x; \
if (tx & SEGMASK) { \
PUSH(GetLongWord(NativeAligned4FromLAddr((tx) + NEWATOM_VALUE_OFFSET))); \
PUSH(GetLongWord(Addr68k_from_LADDR((tx) + NEWATOM_VALUE_OFFSET))); \
} else \
PUSH(GetLongWord((LispPTR *)AtomSpace + (tx * 5) + NEWATOM_VALUE_PTROFF)); \
\
@@ -347,9 +348,9 @@
#else
#define GVAR(x) \
do { \
LispPTR tx = x; \
register int tx = x; \
if (tx & SEGMASK) { \
PUSH(GetLongWord(NativeAligned4FromLAddr((tx) + NEWATOM_VALUE_OFFSET))); \
PUSH(GetLongWord(Addr68k_from_LADDR((tx) + NEWATOM_VALUE_OFFSET))); \
} else \
PUSH(GetLongWord(Valspace + ((tx) << 1))); \
\
@@ -365,7 +366,7 @@
#define SWAP \
do { \
LispPTR temp; \
register LispPTR temp; \
temp = GET_TOS_1; \
GET_TOS_1 = TOPOFSTACK; \
TOPOFSTACK = temp; \
@@ -420,15 +421,15 @@
#define BIN \
do { \
Stream *stream68k; /* stream instance on TOS */ \
char *buff68k; /* pointer to BUFF */ \
register Stream *stream68k; /* stream instance on TOS */ \
register char *buff68k; /* pointer to BUFF */ \
\
if (GetTypeNumber(TOPOFSTACK) == TYPE_STREAM) { \
stream68k = (Stream *)NativeAligned4FromLAddr(TOPOFSTACK); \
stream68k = (Stream *)Addr68k_from_LADDR(TOPOFSTACK); \
if ((!stream68k->BINABLE) || (stream68k->COFFSET >= stream68k->CBUFSIZE)) goto op_ufn; \
\
/* get BUFFER instance */ \
buff68k = (char *)NativeAligned2FromLAddr(stream68k->CBUFPTR); \
buff68k = (char *)Addr68k_from_LADDR(stream68k->CBUFPTR); \
\
/* get BYTE data and set it to TOS */ \
TOPOFSTACK = (S_POSITIVE | (Get_BYTE(buff68k + (stream68k->COFFSET)++))); \
@@ -495,11 +496,11 @@
#define BIND \
do { \
LispPTR byte = Get_BYTE_PCMAC1; \
unsigned n1; \
unsigned n2; \
LispPTR *ppvar; \
int i; \
register int byte = Get_BYTE_PCMAC1; \
register unsigned n1; \
register unsigned n2; \
register LispPTR *ppvar; \
register int i; \
n1 = byte >> 4; \
n2 = byte & 0xf; \
ppvar = (LispPTR *)PVAR + 1 + Get_BYTE_PCMAC2; \
@@ -516,10 +517,10 @@
#define UNBIND \
do { \
int num; \
LispPTR *ppvar; \
int i; \
LispPTR value; \
register int num; \
register LispPTR *ppvar; \
register int i; \
register LispPTR value; \
for (; (((int)*--CSTKPTRL) >= 0);) \
; \
value = *CSTKPTR; \
@@ -531,10 +532,10 @@
#define DUNBIND \
do { \
int num; \
LispPTR *ppvar; \
int i; \
LispPTR value; \
register int num; \
register LispPTR *ppvar; \
register int i; \
register LispPTR value; \
if ((int)TOPOFSTACK < 0) { \
num = (~TOPOFSTACK) >> 16; \
if (num != 0) { \
@@ -566,9 +567,9 @@
#define GETBITS_N_M(a, b) \
do { \
int temp, bb = b; \
register int temp, bb = b; \
temp = 0xF & bb; \
TOPOFSTACK = S_POSITIVE | (((GETWORD(NativeAligned2FromLAddr(POINTERMASK & (TOPOFSTACK + (a))))) >> \
TOPOFSTACK = S_POSITIVE | (((GETWORD(Addr68k_from_LADDR(POINTERMASK & (TOPOFSTACK + (a))))) >> \
(16 - ((0xF & (bb >> 4)) + temp + 1))) & \
n_mask_array[temp]); \
nextop3; \
@@ -576,13 +577,13 @@
#define PUTBITS_N_M(a, b) \
do { \
LispPTR base; \
int bb = b; \
DLword *pword; \
int shift_size, field_size, fmask; \
int base; \
register int bb = b; \
register DLword *pword; \
register int shift_size, field_size, fmask; \
if ((SEGMASK & TOPOFSTACK) != S_POSITIVE) { goto op_ufn; }; \
base = POINTERMASK & POP_TOS_1; \
pword = NativeAligned2FromLAddr(base + (a)); \
pword = (DLword *)Addr68k_from_LADDR(base + (a)); \
field_size = 0xF & bb; \
shift_size = 15 - (0xF & (bb >> 4)) - field_size; \
fmask = n_mask_array[field_size] << shift_size; \
@@ -605,7 +606,7 @@
#define MYARGCOUNT \
do { \
UNSIGNED arg_num; \
register UNSIGNED arg_num; \
if ((CURRENTFX->alink & 1) == 0) \
arg_num = (UNSIGNED)((LispPTR *)(CURRENTFX)-1); \
else \
@@ -670,7 +671,7 @@
#define CLARITHEQUAL \
do { \
LispPTR arg2; \
register int arg2; \
SV; \
arg2 = POP_TOS_1; \
if ((TOPOFSTACK & SEGMASK) == S_POSITIVE) { \
@@ -686,16 +687,18 @@
N_OP_POPPED_CALL_2(N_OP_eqq, arg2); \
} while (0)
#define S_CHARACTER 0x70000
#define AREF1 \
do { \
LispPTR arrayarg; \
LispPTR baseL; \
int index; \
OneDArray *arrayblk; \
register LispPTR baseL; \
register int index; \
register OneDArray *arrayblk; \
SV; \
arrayarg = POP_TOS_1; \
if (GetTypeNumber(arrayarg) != TYPE_ONED_ARRAY) goto aref_ufn; \
arrayblk = (OneDArray *)NativeAligned4FromLAddr(arrayarg); \
arrayblk = (OneDArray *)Addr68k_from_LADDR(arrayarg); \
if ((TOPOFSTACK & SEGMASK) != S_POSITIVE) goto aref_ufn; \
index = TOPOFSTACK & 0xFFFF; \
if (index >= arrayblk->totalsize) goto aref_ufn; \
@@ -703,10 +706,10 @@
baseL = arrayblk->base; \
switch (arrayblk->typenumber) { \
case 38: /* pointer : 32 bits */ \
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
nextop1; \
case 20: /* signed : 16 bits */ \
TOPOFSTACK = (GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF; \
TOPOFSTACK = (GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF; \
if (TOPOFSTACK & 0x8000) \
TOPOFSTACK |= S_NEGATIVE; \
else \
@@ -714,47 +717,47 @@
nextop1; \
case 67: /* Character : 8 bits */ \
TOPOFSTACK = \
S_CHARACTER | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF); \
S_CHARACTER | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF); \
nextop1; \
case 22: /* signed : 32 bits */ \
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
switch (TOPOFSTACK & 0xFFFF0000) { \
case 0: TOPOFSTACK |= S_POSITIVE; break; \
case (unsigned)0xFFFF0000: TOPOFSTACK &= S_NEGATIVE; break; \
default: { \
LispPTR *cellp; \
cellp = (LispPTR *)createcell68k(TYPE_FIXP); \
*cellp = TOPOFSTACK; \
TOPOFSTACK = (LispPTR)LAddrFromNative(cellp); \
register DLword *wordp; \
wordp = createcell68k(TYPE_FIXP); \
*((int *)wordp) = TOPOFSTACK; \
TOPOFSTACK = (LispPTR)LADDR_from_68k(wordp); \
} \
} \
nextop1; \
case 0: /* unsigned : 1 bit per element */ \
TOPOFSTACK = \
S_POSITIVE | (((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + (index >> 3))) >> \
S_POSITIVE | (((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + (index >> 3))) >> \
(7 - (index & 7))) & \
1); \
nextop1; \
case 3: /* unsigned : 8 bits per element */ \
TOPOFSTACK = S_POSITIVE | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF); \
TOPOFSTACK = S_POSITIVE | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF); \
nextop1; \
case 4: /* unsigned : 16 bits per element */ \
TOPOFSTACK = \
S_POSITIVE | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF); \
S_POSITIVE | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF); \
nextop1; \
case 54: /* Float : 32 bits */ { \
LispPTR *cellp; \
cellp = (LispPTR *)createcell68k(TYPE_FLOATP); \
*cellp = *(NativeAligned4FromLAddr(baseL) + index); \
TOPOFSTACK = (LispPTR)LAddrFromNative(cellp); \
register DLword *wordp; \
wordp = createcell68k(TYPE_FLOATP); \
*((int *)wordp) = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
TOPOFSTACK = (LispPTR)LADDR_from_68k(wordp); \
} \
nextop1; \
case 68: /* Character : 16 bits */ \
TOPOFSTACK = \
S_CHARACTER | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF);\
S_CHARACTER | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF); \
nextop1; \
case 86: /* XPointer : 32 bits */ \
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
nextop1; \
default: /* Illegal or Unimplemented */ goto aref_ufn; \
} /* end switch typenumber */ \
@@ -765,8 +768,8 @@
#ifdef BIGVM
#define DTEST(n) \
do { \
int atom_index; \
struct dtd *dtd68k; \
register int atom_index; \
register struct dtd *dtd68k; \
atom_index = n; \
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); atom_index != dtd68k->dtd_name; \
dtd68k = (struct dtd *)GetDTD(dtd68k->dtd_supertype)) { \
@@ -777,8 +780,8 @@
#else /* BIGVM */
#define DTEST(n) \
do { \
int atom_index; \
struct dtd *dtd68k; \
register int atom_index; \
register struct dtd *dtd68k; \
atom_index = n; \
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); \
atom_index != dtd68k->dtd_namelo + ((int)(dtd68k->dtd_namehi) << 16); \
@@ -791,26 +794,26 @@
#define FVAR(n) \
do { \
LispPTR *chain; \
register LispPTR *chain; \
chain = (LispPTR *)(PVar + (n)); \
if (WBITSPTR(chain)->LSB) { \
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(native_newframe((n) >> 1))))); \
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(native_newframe((n) >> 1))))); \
nextop1; \
} /* if(((WBITS */ \
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(*chain)))); \
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(*chain)))); \
nextop1; \
} while (0)
#define FVARX(n) \
do { \
int nn = n; \
LispPTR *chain; \
register int nn = n; \
register LispPTR *chain; \
chain = (LispPTR *)(PVar + nn); \
if (WBITSPTR(chain)->LSB) { \
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(native_newframe(nn >> 1))))); \
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(native_newframe(nn >> 1))))); \
nextop2; \
} /* if(((WBITS */ \
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(*chain)))); \
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(*chain)))); \
nextop2; \
} while (0)
@@ -834,7 +837,7 @@
#elif defined(BIGVM)
#define ATOMCELL_N(n) \
do { \
int nn = n; \
register int nn = n; \
if (0 == ((unsigned int)(TOPOFSTACK &= POINTERMASK) & SEGMASK)) { \
/* old-symbol case; just add cell-number arg */ \
switch (nn) { \
@@ -878,7 +881,7 @@
#define ATOMCELL_N(n) \
do { \
int nn = n; \
register int nn = n; \
if (0 == ((unsigned int)TOPOFSTACK & SEGMASK)) { \
/* old-symbol case; just add cell-number arg */ \
TOPOFSTACK = (nn << 16) + (TOPOFSTACK << 1); \

30
inc/inlnPS2.h Normal file → Executable file
View File

@@ -39,8 +39,8 @@
/* */
/* R E G I S T E R C O N V E N T I O N S */
/* */
/* The following conventions hold in the dispatch loop, */
/* and are set up by ... asm("...") decls in xc.c: */
/* The following register conventions hold in the dispatch loop, */
/* and are set up by register ... asm("...") decls in xc.c: */
/* */
/* esi pccache - the current PC */
/* edi cspcache - the current lisp stack ptr. */
@@ -48,7 +48,7 @@
/* */
/* */
/* Register conventions within arithmetic functions in the files */
/* arithops.c, etc.: */
/* arith2.c - arith4.c, etc.: */
/* */
/* esi first argument to the function */
/* edi second argument to the function */
@@ -60,7 +60,7 @@
/* */
/* G E N E R A L - P U R P O S E I N L I N E F U N C T I O N S */
/* */
/* These functions don't rely on conventions. */
/* These functions don't rely on register conventions. */
/* */
/************************************************************************/
@@ -88,7 +88,7 @@
extern inline const unsigned int Get_BYTE_PCMAC0fn (pccache)
unsigned int pccache;
{
unsigned int word;
register unsigned int word;
asm("leal -1(%1),%0 \n\
xorl $3,%0 \n\
movzbl (%0),%0 \n\
@@ -99,7 +99,7 @@ unsigned int pccache;
extern inline const unsigned int Get_BYTE_PCMAC1fn (pccache)
unsigned int pccache;
{
unsigned int word;
register unsigned int word;
asm("movl %1,%0 \n\
xorl $3,%0 \n\
movzbl (%0),%0 \n\
@@ -110,7 +110,7 @@ unsigned int pccache;
extern inline const unsigned int Get_BYTE_PCMAC2fn (pccache)
unsigned int pccache;
{
unsigned int word;
register unsigned int word;
asm("leal 1(%1),%0 \n\
xorl $3,%0 \n\
movzbl (%0),%0 \n\
@@ -121,7 +121,7 @@ unsigned int pccache;
extern inline const unsigned int Get_BYTE_PCMAC3fn (pccache)
unsigned int pccache;
{
unsigned int word;
register unsigned int word;
asm("leal 2(%1),%0 \n\
xorl $3,%0 \n\
movzbl (%0),%0 \n\
@@ -144,7 +144,7 @@ unsigned int pccache;
extern inline const unsigned int Get_DLword_PCMAC0fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("movl %1,%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -158,7 +158,7 @@ unsigned int pccache;
extern inline const unsigned int Get_DLword_PCMAC1fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal 1(%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -173,7 +173,7 @@ unsigned int pccache;
extern inline const unsigned int Get_DLword_PCMAC2fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal 2(%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -187,7 +187,7 @@ unsigned int pccache;
extern inline const unsigned int Get_DLword_PCMAC3fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal 3(%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -211,7 +211,7 @@ unsigned int pccache;
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal -1(%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -229,7 +229,7 @@ unsigned int pccache;
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal (%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\
@@ -248,7 +248,7 @@ unsigned int pccache;
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
register unsigned int word asm("ax");
asm("leal 1(%1),%%edx \n\
xorb $3,%%dl \n\
movzbl (%%edx),%%eax \n\

18
inc/inlnSPARC.h Normal file → Executable file
View File

@@ -26,7 +26,7 @@
/*
Get_BYTE(PCMAC+1); \
xc.c: #define PCMAC pccache
xc.c: InstPtr pccache;
xc.c: register InstPtr pccache;
xc.c: typedef ByteCode *InstPtr; CHANGED TO
xc.c: typedef BYTECODE *InstPtr;
lispemul.h: typedef char ByteCode;
@@ -51,15 +51,15 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
#define BOX_INTO(result, dest){ \
if (NSMALLP_RANGE(result))/* dest = box_fixp(result);*/ \
{LispPTR *wordp; \
{register LispPTR *wordp; \
wordp = (LispPTR *) createcell68k(TYPE_FIXP); \
*((int *)wordp) = result; \
dest = (LAddrFromNative(wordp)); } \
dest = (LADDR_from_68k(wordp)); } \
else dest = (( (unsigned)result <<15) >>15) | S_POSITIVE;}
#define ARITH_OP(op, exceptions, handler) \
{int arg1, arg2, result; \
{register int arg1, arg2, result; \
arg1 = GET_TOS_1; /* w/o side effect */ \
if(!NSMALLP(TOPOFSTACK) && !NSMALLP(arg1)) { \
arg2 = UNBOX_SMALLP(TOPOFSTACK); \
@@ -71,7 +71,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
N_OP_CALL_2(handler); }
#define BINARY_OP(exp, exceptions) { \
int arg1, arg2, result; \
register int arg1, arg2, result; \
arg1 = GET_TOS_1; /* w/o side effect */ \
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
UNBOX_ELSE_UFN(arg1, arg1); \
@@ -84,7 +84,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
#undef IGREATERP
#define GREATERP { \
int arg1, arg2, result; \
register int arg1, arg2, result; \
arg1 = GET_TOS_1; /* w/o side effect */ \
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
UNBOX_ELSE_UFN(arg1, arg1); \
@@ -92,7 +92,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
POP_TOS_1; nextop1;}
#define IGREATERP { \
int arg1, arg2, result; \
register int arg1, arg2, result; \
arg1 = GET_TOS_1; /* w/o side effect */ \
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
UNBOX_ELSE_UFN(arg1, arg1); \
@@ -122,7 +122,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
#define LOGXOR BINARY_OP(arg1 ^ arg2, 0)
#define UNARY_OP(exp, exceptions) { \
int arg, result; \
register int arg, result; \
UNBOX_ELSE_UFN(TOPOFSTACK, arg); \
result = exp; \
if (exceptions) goto op_ufn; \
@@ -141,7 +141,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
#undef ADDBASE
#define ADDBASE { \
int arg1, arg2; \
register int arg1, arg2; \
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
TOPOFSTACK = POP_TOS_1 + arg2; \
nextop1;}

View File

@@ -1,703 +0,0 @@
/* $Id: inlndos.h,v 1.2 1999/01/03 02:06:05 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/************************************************************************/
/* */
/* (C) Copyright 1991, 1992 Venue. All Rights Reserved. */
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
/************************************************************************/
/* */
/* I N L I N E P S 2 . H */
/* */
/* INLINE definitions for 386 machines, compiled with gcc. */
/* */
/* This file consists of 3 sections: */
/* */
/* inline static functions for use anywhere in Medley */
/* (e.g., the byte-swapping functions) */
/* */
/* #defines and static inline functions for the dispatch */
/* loop (e.g., IDIFFERENCE), relying on the register */
/* conventions that hold in that part of the code */
/* */
/* #defines and static inline functions for other */
/* specific files (e.g., the arithmetic functions, */
/* free-variable lookup, etc.), relying on the register */
/* conventions in the respective files. */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* R E G I S T E R C O N V E N T I O N S */
/* */
/* The following conventions hold in the dispatch loop, */
/* and are set up by ... asm("...") decls in xc.c: */
/* */
/* esi pccache - the current PC */
/* edi cspcache - the current lisp stack ptr. */
/* ebx tscache - the top-of-stack item. */
/* */
/* */
/* Register conventions within arithmetic functions in the files */
/* arithops.c etc.: */
/* */
/* esi first argument to the function */
/* edi second argument to the function */
/* */
/************************************************************************/
/************************************************************************/
/* */
/* G E N E R A L - P U R P O S E I N L I N E F U N C T I O N S */
/* */
/* These functions don't rely on conventions. */
/* */
/************************************************************************/
/************************************************************************/
/* */
/* */
/* */
/* */
/* */
/************************************************************************/
/* undefine these macros so we use the 386i inline code */
#undef Get_BYTE_PCMAC0
#undef Get_BYTE_PCMAC1
#undef Get_BYTE_PCMAC2
#undef Get_BYTE_PCMAC3
#define Get_BYTE_PCMAC0 Get_BYTE_PCMAC0fn(pccache)
#define Get_BYTE_PCMAC1 Get_BYTE_PCMAC1fn(pccache)
#define Get_BYTE_PCMAC2 Get_BYTE_PCMAC2fn(pccache)
#define Get_BYTE_PCMAC3 Get_BYTE_PCMAC3fn(pccache)
extern inline unsigned int Get_BYTE_PCMAC0fn (pccache)
unsigned int pccache;
{
unsigned int word;
asm("lea %0,-1[%1] \n\
xor %0,3 \n\
movzx %0,BYTE PTR [%0] \n\
" : "=r" (word) : "r" (pccache) );
return(word);
}
extern inline unsigned int Get_BYTE_PCMAC1fn (pccache)
unsigned int pccache;
{
unsigned int word;
asm("lea %0,[%1] \n\
xor %0,3 \n\
movzx %0,BYTE PTR [%0] \n\
" : "=r" (word) : "r" (pccache) );
return(word);
}
extern inline unsigned int Get_BYTE_PCMAC2fn (pccache)
unsigned int pccache;
{
unsigned int word;
asm("lea %0,1[%1] \n\
xor %0,3 \n\
movzx %0,BYTE PTR [%0] \n\
" : "=r" (word) : "r" (pccache) );
return(word);
}
extern inline unsigned int Get_BYTE_PCMAC3fn (pccache)
unsigned int pccache;
{
unsigned int word;
asm("lea %0,2[%1] \n\
xor %0,3 \n\
movzx %0,BYTE PTR [%0] \n\
" : "=r" (word) : "r" (pccache) );
return(word);
}
#undef Get_DLword_PCMAC0
#undef Get_DLword_PCMAC1
#undef Get_DLword_PCMAC2
#undef Get_DLword_PCMAC3
#define Get_DLword_PCMAC0 Get_DLword_PCMAC0fn(pccache)
#define Get_DLword_PCMAC1 Get_DLword_PCMAC1fn(pccache)
#define Get_DLword_PCMAC2 Get_DLword_PCMAC2fn(pccache)
#define Get_DLword_PCMAC3 Get_DLword_PCMAC3fn(pccache)
extern inline unsigned int Get_DLword_PCMAC0fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("mov edx,%1 \n\
xor dl,3 \n\
movzx eax, byte ptr [edx] \n\
lea edx,-1[%1] \n\
xor dl,3 \n\
mov ah, byte ptr [edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
extern inline unsigned int Get_DLword_PCMAC1fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,1[%1] \n\
xor dl,3 \n\
movzx eax, byte ptr [edx] \n\
lea edx,[%1] \n\
xor dl,3 \n\
mov ah, byte ptr [edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
extern inline unsigned int Get_DLword_PCMAC2fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,2[%1] \n\
xor dl,3 \n\
movzx eax, byte ptr [edx] \n\
lea edx,1[%1] \n\
xor dl,3 \n\
mov ah, byte ptr [edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
extern inline unsigned int Get_DLword_PCMAC3fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,3[%1] \n\
xor dl,3 \n\
movzx eax, byte ptr [edx] \n\
lea edx,2[%1] \n\
xor dl,3 \n\
mov ah, byte ptr [edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
#undef Get_Pointer_PCMAC0
#undef Get_Pointer_PCMAC1
#undef Get_Pointer_PCMAC2
#define Get_Pointer_PCMAC0 Get_Pointer_PCMAC0fn(pccache)
#define Get_Pointer_PCMAC1 Get_Pointer_PCMAC1fn(pccache)
#define Get_Pointer_PCMAC2 Get_Pointer_PCMAC2fn(pccache)
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,-1[%1] \n\
xor dl,3 \n\
movzx eax,byte ptr [edx] \n\
shl eax,16 \n\
lea edx,1[%1] \n\
xor dl,3 \n\
mov al,[edx] \n\
lea edx,[%1] \n\
xor dl,3 \n\
mov ah,[edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,[%1] \n\
xor dl,3 \n\
movzx eax,byte ptr [edx] \n\
shl eax,16 \n\
lea edx,2[%1] \n\
xor dl,3 \n\
mov al,[edx] \n\
lea edx,1[%1] \n\
xor dl,3 \n\
mov ah,[edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
unsigned int pccache;
{
unsigned int word asm("ax");
asm("lea edx,1[%1] \n\
xor dl,3 \n\
movzx eax,byte ptr [edx] \n\
shl eax,16 \n\
lea edx,3[%1] \n\
xor dl,3 \n\
mov al,[edx] \n\
lea edx,2[%1] \n\
xor dl,3 \n\
mov ah,[edx] \n\
" : "=r" (word) : "r" (pccache) : "dx" );
return(word);
}
#undef DIFFERENCE
#undef IDIFFERENCE
#define DIFFERENCE { \
fast_op_difference(POP_TOS_1); \
fast1_dispatcher(); \
diff_err: \
asm volatile("diff_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_difference, GET_POPPED); \
}
extern inline void fast_op_difference(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne diff_err \n\
rol eax,17 \n\
sub al,7 \n\
jne diff_err \n\
sub eax,ebx \n\
jo diff_err \n\
ror eax,15 \n\
or eax,917504 \n\
mov ebx,eax \
" : : "g" (value) : "ax" );
}
#define IDIFFERENCE { \
fast_op_idifference(POP_TOS_1); \
fast1_dispatcher(); \
idiff_err: \
asm volatile("idiff_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_idifference, GET_POPPED); \
}
extern inline void fast_op_idifference(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne idiff_err \n\
rol eax,17 \n\
sub al,7 \n\
jne idiff_err \n\
sub eax,ebx \n\
jo idiff_err \n\
ror eax,15 \n\
or eax,917504 \n\
mov ebx,eax \
" : : "g" (value) : "ax" );
}
#undef IDIFFERENCE_N
#define IDIFFERENCE_N(n) { \
fast_op_idifferencen(n); \
fast2_dispatcher(); \
idiffn_err: \
asm("idiffn_err2:"); \
asm volatile("add ebx,eax ; undo the sub"); \
asm("idiffn_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_CALL_1d(N_OP_idifferencen, n); \
}
extern inline void fast_op_idifferencen(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol eax,15 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne idiffn_err \n\
sub ebx,eax \n\
jo idiffn_err2 \n\
ror ebx,15 \n\
or ebx,917504 \n\
" : : "g" (value) : "ax" );
}
#undef PLUS2
#undef IPLUS2
#define PLUS2 { \
fast_op_plus(POP_TOS_1); \
fast1_dispatcher(); \
plus_err: \
asm volatile("plus_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_plus2, GET_POPPED); \
}
extern inline void fast_op_plus(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne plus_err \n\
rol eax,15 \n\
sub al,7 \n\
jne plus_err \n\
add eax,ebx \n\
jo plus_err \n\
ror eax,15 \n\
or eax,917504 \n\
mov ebx,eax \n\
" : : "g" (value) : "ax" );
}
#define IPLUS2 { \
fast_op_iplus(POP_TOS_1); \
fast1_dispatcher(); \
iplus_err: \
asm volatile("iplus_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_iplus2, GET_POPPED); \
}
extern inline void fast_op_iplus(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne iplus_err \n\
rol eax,15 \n\
sub al,7 \n\
jne iplus_err \n\
add eax,ebx \n\
jo iplus_err \n\
ror eax,15 \n\
or eax,917504 \n\
mov ebx,eax \n\
" : : "g" (value) : "ax" );
}
#undef IPLUS_N
#define IPLUS_N(n) { \
fast_op_iplusn(n); \
fast2_dispatcher(); \
iplusn_err: \
asm("iplusn_err:"); \
asm volatile("add bl,7"); \
asm volatile("ror ebx,15"); \
N_OP_CALL_1d(N_OP_iplusn, n); \
}
extern inline void fast_op_iplusn(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol eax,15 \n\
rol ebx,15 \n\
sub bl,7 \n\
jne iplusn_err \n\
add eax,ebx \n\
jo iplusn_err \n\
ror eax,15 \n\
or eax,917504 \n\
mov ebx,eax \n\
" : : "g" (value) : "ax" );
}
#undef GREATERP
#define GREATERP { \
fast_op_greaterp(POP_TOS_1); \
fast1_dispatcher(); \
greaterp_err: \
asm("greaterp_err:"); \
N_OP_POPPED_CALL_2(N_OP_greaterp, GET_POPPED); \
}
extern inline void fast_op_greaterp(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
mov edx,ebx \n\
rol edx,15 \n\
sub dl,7 \n\
jne greaterp_err \n\
rol eax,15 \n\
sub al,7 \n\
jne greaterp_err \n\
xor ebx,ebx \n\
cmp eax,edx \n\
jle greater_no \n\
mov ebx,76 \n\
greater_no: " : : "g" (value) );
}
#undef IGREATERP
#define IGREATERP { \
fast_op_igreaterp(POP_TOS_1); \
fast1_dispatcher(); \
igreaterp_err: \
asm("igreaterp_err: "); \
N_OP_POPPED_CALL_2(N_OP_igreaterp, GET_POPPED); \
}
extern inline void fast_op_igreaterp(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
mov edx,ebx \n\
rol edx,15 \n\
sub dl,7 \n\
jne igreaterp_err \n\
rol eax,15 \n\
sub al,7 \n\
jne igreaterp_err \n\
xor ebx,ebx \n\
cmp eax,edx \n\
jle igreater_no \n\
mov ebx,76 \n\
igreater_no: " : : "g" (value) );
}
#undef LRSH8
#define LRSH8 { \
asm volatile("\
mov eax,ebx \n\
rol eax,16 \n\
cmp ax,0eh \n\
jne lrsh8_err \n\
shr bx,8 \n\
" : : : "ax" ); \
fast1_dispatcher(); \
lrsh8_err: \
asm("lrsh8_err: "); \
N_OP_CALL_1(N_OP_lrsh8); \
}
#undef LRSH1
#define LRSH1 { \
asm volatile("\
mov eax,ebx \n\
rol eax,16 \n\
cmp ax,0eh \n\
jne lrsh1_err \n\
shr bx,1 \n\
" : : : "ax" ); \
fast1_dispatcher(); \
lrsh1_err: \
asm("lrsh1_err: "); \
N_OP_CALL_1(N_OP_lrsh1); \
}
#undef LLSH8
#define LLSH8 { \
asm volatile("\
mov eax,ebx \n\
rol eax,16 \n\
cmp ax,0eh \n\
jne llsh8_err \n\
or bh,bh \n\
jne llsh8_err \n\
shl bx,8 \n\
" : : : "ax" ); \
fast1_dispatcher(); \
llsh8_err: \
asm("llsh8_err: "); \
N_OP_CALL_1(N_OP_llsh8); \
}
#undef LLSH1
#define LLSH1 { \
asm volatile("\
mov eax,ebx \n\
rol eax,16 \n\
cmp ax,0eh \n\
jne llsh1_err \n\
test bh,80h \n\
jne llsh1_err \n\
shl bx,1 \n\
" : : : "ax" ); \
fast1_dispatcher(); \
llsh1_err: \
asm("llsh1_err: "); \
N_OP_CALL_1(N_OP_llsh1); \
}
#undef LOGOR
#define LOGOR { \
fast_op_logor(POP_TOS_1); \
fast1_dispatcher(); \
logor_err: \
asm("logor_err:"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_logor, GET_POPPED); \
}
extern inline void fast_op_logor(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
cmp bl,7 \n\
jne logor_err \n\
rol eax,15 \n\
cmp al,7 \n\
jne logor_err \n\
or ebx,eax \n\
ror ebx,15 \n\
" : : "g" (value) : "ax" );
}
#undef LOGAND
#define LOGAND { \
fast_op_logand(POP_TOS_1); \
fast1_dispatcher(); \
logand_err: \
asm("logand_err: "); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_logand, GET_POPPED); \
}
extern inline void fast_op_logand(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
cmp bl,7 \n\
jne logand_err \n\
rol eax,15 \n\
cmp al,7 \n\
jne logand_err \n\
and ebx,eax \n\
ror ebx,15 \n\
" : : "g" (value) : "ax" );
}
#undef LOGXOR
#define LOGXOR { \
fast_op_logxor(POP_TOS_1); \
fast1_dispatcher(); \
logxor_err: \
asm("logxor_err:"); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_logxor, GET_POPPED); \
}
extern inline void fast_op_logxor(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
cmp bl,7 \n\
jne logxor_err \n\
rol eax,15 \n\
sub al,7 \n\
jne logxor_err \n\
xor ebx,eax \n\
ror ebx,15 \n\
" : : "g" (value) : "ax" );
}
#undef N_OP_ADDBASE
#define N_OP_ADDBASE { \
fast_op_addbase(POP_TOS_1); \
fast1_dispatcher(); \
addbase_err: \
asm("addbase_err: "); \
asm volatile("ror ebx,15"); \
N_OP_POPPED_CALL_2(N_OP_addbase, GET_POPPED); \
}
extern inline void fast_op_addbase(LispPTR value)
{
asm volatile("\
mov eax,%0 \n\
rol ebx,15 \n\
cmp bl,7 \n\
jne addbase_err \n\
sar ebx,15 \n\
and eax,0ffffffh \n\
add ebx,eax \n\
" : : "g" (value) : "ax" );
}
#undef N_OP_LOLOC
#define N_OP_LOLOC { \
asm volatile(" \
and %0,0ffffh \n\
or %0,0e0000h" : "=r" (tscache) : "0" (tscache)); \
nextop1; }
#undef N_OP_HILOC
#define N_OP_HILOC { \
asm volatile(" \
shr %0,16 \n\
and %0,0ffffh \n\
or %0,0e0000h" : "=r" (tscache) : "0" (tscache)); \
nextop1; }
#undef N_OP_VAG2
#define N_OP_VAG2 \
{ \
asm(" sub edi,4"); \
asm(" mov eax,[edi]"); \
asm(" rol ebx,16"); \
asm(" mov bx,ax"); \
asm(" ror ebx,16"); \
nextop1; }

View File

@@ -1,4 +1,4 @@
#ifndef INTCALLDEFS_H
#define INTCALLDEFS_H 1
void cause_interruptcall(unsigned int atom_index);
void cause_interruptcall(register unsigned int atom_index);
#endif

View File

@@ -1,34 +0,0 @@
#ifndef KBDIF_H
#define KBDIF_H 1
/* $Id: kbdif.h,v 1.2 1999/01/03 02:06:06 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/************************************************************************/
/* */
/* (C) Copyright 1990, 1990, 1991, 1992, 1993, 1994, 1995 Venue. */
/* All Rights Reserved. */
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include <sys/types.h> /* for u_char */
/* The Keyboard structure. */
typedef struct {
u_char KeyMap[0x80];
#ifdef DOS
u_char lastbyte;
void (*prev_handler)();
#endif /* DOS */
void (* sync_device)(); /* Make reality and emulator coincide with each other */
void (* enter_device)();
void (* exit_device)();
void (* device_event)();
void (* before_raid)();
void (* after_raid)();
int lispkeycode;
#ifdef DOS
int device_active;
int device_locked;
#endif /* DOS */
} KbdInterfaceRec, *KbdInterface;
#endif /* KBDIF_H */

View File

@@ -1,7 +1,7 @@
#ifndef KEYEVENTDEFS_H
#define KEYEVENTDEFS_H 1
#include <sys/types.h>
void process_io_events(void);
void getsignaldata(int sig);
void kb_trans(u_short keycode, u_short upflg);
void taking_mouse_down(void);
void copy_cursor(int newx, int newy);

View File

@@ -13,24 +13,23 @@
/************************************************************************/
#ifdef LOCK_X_UPDATES
#define XLOCK do { XLocked++; } while (0)
#define XUNLOCK(dsp) \
do { \
if (XLocked == 1 && XNeedSignal) \
#define XLOCK { XLocked++; /* printf("L"); fflush(stdout);*/}
#define XUNLOCK \
{ XLocked--;/* printf("U"); fflush(stdout);*/ \
if (XNeedSignal) \
{ \
XNeedSignal = 0; \
getXsignaldata(dsp); \
}; \
XLocked--; \
} while (0)
kill(getpid(), SIGPOLL); \
}; \
}
#else
#define XLOCK
#define XUNLOCK
#endif /* LOCK_X_UPDATES */
#include <signal.h>
extern volatile sig_atomic_t XLocked;
extern volatile sig_atomic_t XNeedSignal;
extern int XLocked;
extern int XNeedSignal;
/* this is !0 if we're locked; it should be 0 or larger always */
#endif

View File

@@ -2,6 +2,6 @@
#define LINEBLT8DEFS_H 1
#include <sys/types.h> /* for u_char */
#include "lispemul.h" /* for LispPTR, DLword */
void lineBlt8(DLword *srcbase, int offset, u_char *destl, int width,
void lineBlt8(DLword *srcbase, register int offset, register u_char *destl, register int width,
u_char color0, u_char color1, LispPTR sourcetype, LispPTR operation);
#endif

View File

@@ -2,7 +2,7 @@
#define LISP2CDEFS_H 1
#include "lispemul.h" /* for LispPTR */
int LispStringP(LispPTR object);
int LispStringSimpleLength(LispPTR lispstring);
int LispStringLength(LispPTR lispstring);
void LispStringToCStr(LispPTR lispstring, char *cstring);
int LispIntToCInt(LispPTR lispint);
LispPTR CIntToLispInt(int cint);

View File

@@ -9,9 +9,7 @@
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include "version.h"
#include "lispmap.h" // for S_POSITIVE
#include "version.h" /* for BIGVM, BIGATOMS, UNSIGNED, UNALIGNED_FETCH_OK */
#ifndef BYTESWAP
/*** Normal byte-order type decls */
@@ -84,17 +82,17 @@ typedef struct interrupt_state_2 { /* alternate view of the interrupt state */
} INTSTAT2;
struct state {
DLword *ivar;
DLword *pvar;
DLword *csp;
ByteCode *currentpc;
struct fnhead *currentfunc;
DLword *endofstack;
UNSIGNED irqcheck;
UNSIGNED irqend;
LispPTR tosvalue;
LispPTR scratch_cstk;
int errorexit;
DLword *ivar; /* + 0 */
DLword *pvar; /* + 4 */
DLword *csp; /* + 8 */
LispPTR tosvalue; /* + 12 */
ByteCode *currentpc; /* + 16 */
struct fnhead *currentfunc; /* + 20*/
DLword *endofstack; /* + 24*/
UNSIGNED irqcheck; /* + 28 */
UNSIGNED irqend; /* + 32 */
LispPTR scratch_cstk; /* + 34 */
int errorexit; /* + 38 */
};
/***** Get_DLword(ptr) ptr is char* ***/
@@ -228,17 +226,17 @@ typedef struct interrupt_state_2 { /* alternate view of the interrupt state */
} INTSTAT2;
struct state {
DLword *ivar;
DLword *pvar;
DLword *csp;
ByteCode *currentpc;
struct fnhead *currentfunc;
DLword *endofstack;
UNSIGNED irqcheck;
UNSIGNED irqend;
LispPTR tosvalue;
LispPTR scratch_cstk;
int errorexit;
DLword *ivar; /* + 0 */
DLword *pvar; /* + 4 */
DLword *csp; /* + 8 */
LispPTR tosvalue; /* + 12 */
ByteCode *currentpc; /* + 16 */
struct fnhead *currentfunc; /* + 20*/
DLword *endofstack; /* + 24*/
UNSIGNED irqcheck; /* + 28 */
UNSIGNED irqend; /* + 32 */
LispPTR scratch_cstk; /* + 34 */
int errorexit; /* + 38 */
};
/* Fetching 2 bytes to make a word -- always do it the hard way */
@@ -446,21 +444,20 @@ DOSTACKOVERFLOW(argnum,bytenum) if it needs hardreturn-cleanup
/* so that it picks up where it left off after the interrupt. */
/* */
/* Call Interface where neg number indicates an error return */
/* but the function returns a LispPTR and casts back to int */
/* */
/************************************************************************/
#define ERROR_EXIT(tos) \
do { \
TopOfStack = (LispPTR)tos; \
TopOfStack = tos; \
Error_Exit = 1; \
return ((LispPTR)-1); \
return (-1); \
} while (0)
#define TIMER_EXIT(tos) \
do { \
TopOfStack = (LispPTR)tos; \
TopOfStack = tos; \
Error_Exit = 1; \
return ((LispPTR)-2); \
return (-2); \
} while (0)
#define WARN(message, operation) \

View File

@@ -154,7 +154,7 @@
#define SNEG_SIZE 0x10000
/* for characters */
#define S_CHARACTER 0x70000
#define S_CHAR 0x70000
/* for HTMAIN */
#define HTMAIN_HI 22
@@ -307,7 +307,7 @@
#define SNEG_SIZE 0x10000
/* for characters */
#define S_CHARACTER 0x70000
#define S_CHAR 0x70000
#ifdef BIGVM
/* for HTMAIN */

View File

@@ -1,47 +0,0 @@
#ifndef LISPVER1_H
#define LISPVER1_H 1
/* $Id: lispver1.h,v 1.2 1999/01/03 02:06:08 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/* DOS version of LispVersionToUnixVersion */
#define LispVersionToUnixVersion(pathname, ver) \
{ \
\
char *cp; \
char *vp; \
char ver_buf[VERSIONLEN]; \
\
cp = pathname; \
vp = NULL; \
while (*cp) \
{ \
switch (*cp) \
{ \
\
case ';': \
*cp = 0; \
cp++; \
vp = cp; \
break; \
\
case '\'': \
if (*(cp + 1) != 0) cp += 2; \
else cp++; \
break; \
\
default: \
cp++; \
break; \
} \
} \
\
if (vp) \
{ \
NumericStringP(vp, YES, NO); \
NO: *vp = 0; \
YES: \
if ((*vp)) ver = strtol(vp, (char **)NULL, 10); \
else ver = -1; \
} \
else ver = -1; \
}
#endif /* LISPVER1_H */

View File

@@ -6,9 +6,9 @@
#define LispVersionToUnixVersion(pathname){ \
\
char *lv_cp; \
char *lv_vp; \
unsigned lv_ver; \
register char *lv_cp; \
register char *lv_vp; \
register int lv_ver; \
char lv_ver_buf[VERSIONLEN]; \
\
lv_cp = pathname; \
@@ -48,12 +48,12 @@
/* \
* Convert the remaining field to digit. \
*/ \
lv_ver = strtoul(lv_vp + 1, (char **)NULL, 10); \
if (lv_ver == 0) { \
lv_ver = atoi(lv_vp + 1); \
if (lv_ver == 0) { \
/* versionless */ \
*lv_vp = 0; \
} else { \
sprintf(lv_ver_buf, ".~%u~", lv_ver); \
sprintf(lv_ver_buf, ".~%d~", lv_ver); \
*lv_vp = 0; \
strcat(pathname, lv_ver_buf); \
} \
@@ -61,7 +61,7 @@
\
NO: \
strcpy(lv_ver_buf, lv_vp + 1); \
strcat(lv_ver_buf, "~"); \
strcat(lv_ver_buf, "~"); \
*lv_vp++ = '.'; \
*lv_vp++ = '~'; \
*lv_vp = 0; \

View File

@@ -4,12 +4,12 @@
#include "stack.h" /* for FX, StackWord, Bframe */
int do_stackoverflow(int incallp);
DLword *freestackblock(DLword n, StackWord *start68k, int align);
void decusecount68k(FX *frame68k);
void decusecount68k(register FX *frame68k);
void flip_cursorbar(int n);
void blt(DLword *dest68k, DLword *source68k, int nw);
void blt(register DLword *dest68k, register DLword *source68k, int nw);
void stack_check(StackWord *start68k);
void walk_stack(StackWord *start68k);
int quick_stack_check(void);
void quick_stack_check(void);
void check_FX(FX *fx68k);
void check_BF(Bframe *bf68k);
int check_stack_rooms(FX *fx68k);

View File

@@ -45,17 +45,15 @@ extern DLword *Lisp_world; /* To access LispSysout area */
/* For getfileinfo. For WDATE&RDATE */
/* 29969152 == (timer.c)LISP_UNIX_TIME_DIFF */
#define StrNCpyFromCToLisp(lispbuf, cbuf ,len) { \
char *lf_sptr = (cbuf); \
char *lf_dptr = (lispbuf); \
for(size_t lf_i=0;lf_i<(len);lf_i++)\
#define StrNCpyFromCToLisp(lispbuf, cbuf ,len) {int lf_i; \
char *lf_sptr,*lf_dptr; \
for(lf_i=0,lf_sptr=(cbuf),lf_dptr =(lispbuf);lf_i<(len);lf_i++)\
GETBYTE(lf_dptr++) = *lf_sptr++; \
}
#define StrNCpyFromLispToC(cbuf , lispbuf, len) { \
char *lf_sptr = (lispbuf); \
char *lf_dptr = (cbuf); \
for(size_t lf_i=0;lf_i<(len);lf_i++)\
#define StrNCpyFromLispToC(cbuf , lispbuf, len) {int lf_i; \
char *lf_sptr,*lf_dptr; \
for(lf_i=0,lf_sptr=(lispbuf),lf_dptr =(cbuf);lf_i<(len);lf_i++)\
*lf_dptr++ = GETBYTE(lf_sptr++); \
}
@@ -85,24 +83,23 @@ extern DLword *Lisp_world; /* To access LispSysout area */
OneDArray *lf_arrayp; \
char *lf_base, *lf_dp; \
short *lf_sbase; \
size_t lf_length; \
lf_arrayp = (OneDArray *)NativeAligned4FromLAddr(Lisp); \
int lf_i, lf_length; \
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(Lisp)); \
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
switch(lf_arrayp->typenumber) \
{ \
case THIN_CHAR_TYPENUMBER: \
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
lf_base = ((char *)(Addr68k_from_LADDR(lf_arrayp->base))) \
+ ((int)(lf_arrayp->offset)); \
strncpy(C, lf_base, lf_length); \
(C)[lf_length] = '\0'; \
break; \
\
case FAT_CHAR_TYPENUMBER: \
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
lf_sbase = ((short *)(Addr68k_from_LADDR(lf_arrayp->base))) \
+ ((int)(lf_arrayp->offset)); \
lf_dp = C; \
for(size_t lf_i=0;lf_i<(lf_length);lf_i++) \
*lf_dp++ = (char)(*lf_sbase++); \
for(lf_i=0,lf_dp=C;lf_i<(lf_length);lf_i++) \
*lf_dp++ = (char)(*lf_sbase++); \
*lf_dp = '\0'; \
break; \
default: \
@@ -115,23 +112,22 @@ extern DLword *Lisp_world; /* To access LispSysout area */
OneDArray *lf_arrayp; \
char *lf_base, *lf_dp; \
short *lf_sbase; \
size_t lf_length; \
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(Lisp)); \
int lf_ii, lf_length; \
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(Lisp)); \
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
switch(lf_arrayp->typenumber) \
{ \
case THIN_CHAR_TYPENUMBER: \
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
lf_base = ((char *)(Addr68k_from_LADDR(lf_arrayp->base))) \
+ ((int)(lf_arrayp->offset)); \
StrNCpyFromLispToC(C , lf_base , lf_length ); \
(C)[lf_length] = '\0'; \
break; \
\
case FAT_CHAR_TYPENUMBER: \
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
lf_sbase = ((short *)(Addr68k_from_LADDR(lf_arrayp->base))) \
+ ((int)(lf_arrayp->offset)); \
lf_dp = C; \
for(size_t lf_ii=0;lf_ii<(lf_length);lf_ii++,lf_sbase++) \
for(lf_ii=0,lf_dp=C;lf_ii<(lf_length);lf_ii++,lf_sbase++) \
*lf_dp++ = (char)(GETWORD(lf_sbase)); \
*lf_dp = '\0'; \
break; \
@@ -156,7 +152,7 @@ extern DLword *Lisp_world; /* To access LispSysout area */
#define LispStringLength(LispString, Length, FatP) \
{ \
OneDArray *lf_arrayp; \
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(LispString)); \
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(LispString)); \
switch(lf_arrayp->typenumber) \
{ \
case THIN_CHAR_TYPENUMBER: \
@@ -186,8 +182,8 @@ extern DLword *Lisp_world; /* To access LispSysout area */
#define STRING_BASE(lstringp, cstringp) \
{ \
LispPTR *lf_naddress; \
lf_naddress = (LispPTR *)(NativeAligned4FromLAddr(lstringp)); \
(cstringp) = (char *)(NativeAligned2FromLAddr(((OneDArray *)lf_naddress)->base)); \
lf_naddress = (LispPTR *)(Addr68k_from_LADDR(lstringp)); \
(cstringp) = (char *)(Addr68k_from_LADDR(((OneDArray *)lf_naddress)->base)); \
}
#ifndef min
@@ -196,7 +192,7 @@ extern DLword *Lisp_world; /* To access LispSysout area */
#define LispNumToCInt(Lisp) \
( (((Lisp) & SEGMASK) == S_POSITIVE) ? \
((Lisp) & 0xFFFF) : (*((int *)(NativeAligned4FromLAddr(Lisp)))) )
((Lisp) & 0xFFFF) : (*((int *)(Addr68k_from_LADDR(Lisp)))) )
#define UPLOWDIFF 0x20
@@ -316,16 +312,8 @@ extern DLword *Lisp_world; /* To access LispSysout area */
* They might be lost in the course of the conversion.
*
*/
#ifdef DOS
/* DOS version of LispVersionToUnixVersion */
/* * * * * This is done this way because DOS can't handle the non-DOS version -- */
/* * * * * it gave "Too many characters in a character constant" errors! */
#include "lispver1.h"
#else /* DOS */
/* NON-DOS version of the macro LispVersionToUnixVersion */
#include "lispver2.h"
#endif /* DOS */
/*
@@ -389,9 +377,9 @@ extern DLword *Lisp_world; /* To access LispSysout area */
*(start - 1) = ';'; \
*start = '\0'; \
*end = '\0'; \
/* call strtoul() to eliminate leading 0s. */ \
ver_no = strtoul(start + 1, (char **)NULL, 10); \
sprintf(ver_buf, "%u", ver_no); \
/* call ato i to eliminate leading 0s. */ \
ver_no = atoi(start + 1); \
sprintf(ver_buf, "%d", ver_no); \
strcat(pathname, ver_buf); \
goto CONT; \
\
@@ -498,20 +486,16 @@ extern DLword *Lisp_world; /* To access LispSysout area */
#define MAXVERSION 999999999
#define LASTVERSIONARRAY ((unsigned) -1)
#define LASTVERSIONARRAY (-1)
#define VERSIONARRAYLENGTH 200
#define NoFileP(varray) \
(((varray)->version_no == LASTVERSIONARRAY)? 1 : 0)
#ifdef DOS
#define OnlyVersionlessP(varray) 0
#else
#define OnlyVersionlessP(varray) \
#define OnlyVersionlessP(varray) \
(((varray)->version_no == 0 && ((varray) + 1)->version_no == LASTVERSIONARRAY) ? \
1 : 0)
#endif /* DOS */
/* An argument of AddDotNoExtension must be LispVersion convention */
/* Like "foo/fee.fee;3" or "/foo/foo;3" */
@@ -626,13 +610,6 @@ extern int errno;
/* DRIVESEP = OS-specific drive separator character. */
/* (only used with DOS as of 3/93) */
/********************************************************/
#ifdef DOS
#define DIRSEP '\\'
#define DIRSEPSTR "\\"
#define DRIVESEP ':'
#define UNIXDIRSEP '/'
#define MAXNAMLEN _MAX_PATH
#else
#define DIRSEPSTR "/"
#define DIRSEP '/'
#define UNIXDIRSEP '/'
@@ -640,6 +617,5 @@ extern int errno;
#if !defined(MAXNAMLEN)
#define MAXNAMLEN NAME_MAX
#endif
#endif
#endif /* LOCFILE_H */

View File

@@ -1,12 +1,12 @@
#ifndef LOOPSOPSDEFS_H
#define LOOPSOPSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR lcfuncall(unsigned int atom_index, int argnum, int bytenum);
LispPTR lcfuncall(register unsigned int atom_index, register int argnum, register int bytenum);
LispPTR LCinit(void);
LispPTR LCFetchMethod(LispPTR class, LispPTR selector);
LispPTR LCFetchMethodOrHelp(LispPTR object, LispPTR selector);
LispPTR LCFindVarIndex(LispPTR iv, LispPTR object);
LispPTR LCGetIVValue(LispPTR object, LispPTR iv);
LispPTR LCPutIVValue(LispPTR object, LispPTR iv, LispPTR val);
LispPTR lcfuncall(unsigned int atom_index, int argnum, int bytenum);
LispPTR LCFetchMethod(register LispPTR class, register LispPTR selector);
LispPTR LCFetchMethodOrHelp(register LispPTR object, register LispPTR selector);
LispPTR LCFindVarIndex(register LispPTR iv, register LispPTR object);
LispPTR LCGetIVValue(register LispPTR object, register LispPTR iv);
LispPTR LCPutIVValue(register LispPTR object, register LispPTR iv, register LispPTR val);
LispPTR lcfuncall(register unsigned int atom_index, register int argnum, register int bytenum);
#endif

View File

@@ -1,8 +1,8 @@
#ifndef LOWLEV1DEFS_H
#define LOWLEV1DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_putbitsnfd(LispPTR base, LispPTR data, int word_offset, int beta);
LispPTR N_OP_getbitsnfd(int base_addr, int word_offset, int beta);
LispPTR N_OP_putbasen(LispPTR base, LispPTR tos, int n);
LispPTR N_OP_putbaseptrn(LispPTR base, LispPTR tos, int n);
LispPTR N_OP_putbitsnfd(register LispPTR base, register LispPTR data, int word_offset, register int beta);
LispPTR N_OP_getbitsnfd(int base_addr, register int word_offset, int beta);
LispPTR N_OP_putbasen(register LispPTR base, register LispPTR tos, int n);
LispPTR N_OP_putbaseptrn(register LispPTR base, register LispPTR tos, int n);
#endif

View File

@@ -1,7 +1,7 @@
#ifndef LOWLEV2DEFS_H
#define LOWLEV2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_addbase(LispPTR base, LispPTR offset);
LispPTR N_OP_getbasebyte(LispPTR base_addr, LispPTR byteoffset);
LispPTR N_OP_putbasebyte(LispPTR base_addr, LispPTR byteoffset, LispPTR tos);
LispPTR N_OP_addbase(register int base, register int offset);
LispPTR N_OP_getbasebyte(register LispPTR base_addr, register int byteoffset);
LispPTR N_OP_putbasebyte(register LispPTR base_addr, register int byteoffset, register int tos);
#endif

View File

@@ -31,6 +31,7 @@
#include "lispemul.h" /* for LispPTR, DLword */
#include "miscstat.h" /* for MISCSTAT */
extern DLword *Atomspace; /* ATOMSPACE */
extern DLword *Stackspace; /* STACKSPACE*/
extern DLword *Plistspace; /* PLISTSPACE */
extern DLword *DTDspace; /* DTDSPACE */
@@ -40,6 +41,8 @@
extern DLword *AtomSpace; /* New atoms, initial set */
extern DLword *Defspace; /* DEFSPACE */
extern DLword *Valspace; /* VALSPACE */
extern DLword *Spospspace; /* POSITIVE Smallp */
extern DLword *Snegspace; /* NEGATIVE Smallp */
/* For Virtual Mem Management */
#ifdef BIGVM
@@ -79,6 +82,7 @@ extern DLword *UFNTable ;
/* FLEX STORAGES */
extern DLword *Arrayspace; /* Start of ARRAYSPACE */
extern DLword *MDS_space_bottom; /* Start of MDS (pre -2) */
extern DLword *PnCharspace ; /* Space for PN char codes (Thin only) */

View File

@@ -18,7 +18,6 @@
*/
/**********************************************************************/
#include "version.h" /* for BIGVM, BIGATOMS */
#include <stdint.h> /* for int32_t */
#include "lispemul.h" /* for LispPTR, DLword */
/************************************************************************/
@@ -239,8 +238,8 @@ typedef struct oned_array {
unsigned int extendablep : 1;
unsigned int typenumber : 8 ;
DLword offset;
int32_t fillpointer ;
int32_t totalsize ; } OneDArray;
LispPTR fillpointer ;
LispPTR totalsize ; } OneDArray;
typedef struct oned_array NEWSTRINGP;
@@ -257,10 +256,10 @@ typedef struct general_array {
unsigned int extendablep : 1;
unsigned int typenumber : 8 ;
unsigned int nil2:16;
int32_t Dim0;
int32_t totalsize;
int32_t Dim1 ;
int32_t Dim2 ; } LispArray;
LispPTR Dim0;
LispPTR totalsize;
LispPTR Dim1 ;
LispPTR Dim2 ; } LispArray;
typedef struct compiled_closure {
unsigned int nil1 : 4 ;
@@ -435,8 +434,8 @@ typedef struct oned_array {
unsigned int bitp :1 ;
unsigned int indirectp : 1; /* as used arrayheader */
unsigned int readonlyp :1 ;
int32_t fillpointer ;
int32_t totalsize ; } OneDArray;
LispPTR fillpointer ;
LispPTR totalsize ; } OneDArray;
typedef struct oned_array NEWSTRINGP;
@@ -454,10 +453,10 @@ typedef struct general_array {
unsigned int bitp :1 ;
unsigned int indirectp : 1; /* as used arrayheader */
unsigned int readonlyp :1 ;
int32_t Dim0;
int32_t totalsize;
int32_t Dim1 ;
int32_t Dim2 ; } LispArray;
LispPTR Dim0;
LispPTR totalsize;
LispPTR Dim1 ;
LispPTR Dim2 ; } LispArray;
typedef struct compiled_closure {
unsigned int def_ptr : 28; /* function */
@@ -631,7 +630,6 @@ typedef struct
/* This MACRO is similar to LISTP */
#define Listp(address) (GetTypeNumber(address) == TYPE_LISTP)
#define Numberp(address) (GetTypeEntry(address) & TT_NUMBERP)
/******************************************/
/* Lisp's PATHNAME datatype */

View File

@@ -1,7 +1,7 @@
#ifndef LSTHANDLDEFS_H
#define LSTHANDLDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_fmemb(LispPTR item, LispPTR tos);
LispPTR fmemb(LispPTR item, LispPTR list);
LispPTR N_OP_listget(LispPTR plist, LispPTR tos);
LispPTR N_OP_fmemb(register LispPTR item, register LispPTR tos);
LispPTR fmemb(register LispPTR item, register LispPTR list);
LispPTR N_OP_listget(register LispPTR plist, register LispPTR tos);
#endif

View File

@@ -59,13 +59,6 @@
# define MAIKO_OS_DETECTED 1
#endif
#ifdef amigaos3
# define MAIKO_OS_AMIGAOS3 1
# define MAIKO_OS_NAME "AmigaOS 3"
# define MAIKO_OS_UNIX_LIKE 1
# define MAIKO_OS_DETECTED 1
#endif
/* __SVR4: Defined by clang, gcc, and Sun Studio.
* __SVR4__ was only defined by Sun Studio. */
#if defined(__sun) && defined(__SVR4)
@@ -144,13 +137,6 @@
# define MAIKO_ARCH_DETECTED 1
#endif
#ifdef __mc68000
# define MAIKO_ARCH_M68000 1
# define MAIKO_ARCH_NAME "Motorola68K"
# define MAIKO_ARCH_WORD_BITS 32
# define MAIKO_ARCH_DETECTED 1
#endif
/* Modern GNU C, Clang, Sun Studio provide __BYTE_ORDER__
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
*/

View File

@@ -1,5 +1,6 @@
#ifndef MAINDEFS_H
#define MAINDEFS_H 1
int makepathname(char *src, char *dst);
void start_lisp(void);
void print_info_lines(void);
#endif

View File

@@ -39,11 +39,6 @@ extern volatile sig_atomic_t FP_error;
#define FPCLEAR FP_error = 0;
#define FPTEST(result) FP_error
#elif defined(DOS)
#include <i32.h>
#define FPCLEAR
#define FPTEST(result) (_getrealerror() & ( I87_ZERO_DIVIDE | I87_OVERFLOW | I87_UNDERFLOW))
#else
#include <math.h>
#define FPCLEAR

View File

@@ -3,7 +3,8 @@
#include "lispemul.h" /* for LispPTR, DLword */
DLword compute_hash(const char *char_base, DLword offset, DLword length);
DLword compute_lisp_hash(const char *char_base, DLword offset, DLword length, DLword fatp);
LispPTR compare_chars(const char *char1, const char *char2, DLword length);
LispPTR compare_lisp_chars(const char *char1, const char *char2, DLword length, DLword fat1, DLword fat2);
LispPTR make_atom(const char *char_base, DLword offset, DLword length);
LispPTR compare_chars(register const char *char1, register const char *char2, register DLword length);
LispPTR compare_lisp_chars(register const char *char1, register const char *char2, register DLword length, DLword fat1, DLword fat2);
LispPTR make_atom(const char *char_base, DLword offset, DLword length, short int non_numericp);
LispPTR parse_number(const char *char_base, short int length);
#endif

View File

@@ -1,6 +1,7 @@
#ifndef MKCELLDEFS_H
#define MKCELLDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
LispPTR N_OP_createcell(LispPTR tos);
LispPTR N_OP_createcell(register LispPTR tos);
DLword *createcell68k(unsigned int type);
LispPTR Create_n_Set_Cell(unsigned int type, LispPTR value);
#endif

View File

@@ -501,7 +501,7 @@ typedef union mnwevenT
/* to a Medley window structure. */
/* The result of the calculation is a C pointer. */
/***************************************************/
#define Cptr(LADDR) NativeAligned4FromLAddr(LADDR)
#define Cptr(LADDR) Addr68k_from_LADDR(LADDR)
#define WIfFromMw(win) (((MedleyWindow)Cptr(win))->NativeIf)
#define ScrnFromMw(win) ((MedleyScreenRec *)Cptr(((MedleyWindow)Cptr(win))->SCREEN))
#define DspstreamFromMw(win) ((Stream *)Cptr(((MedleyWindow)Cptr(win))->DSP))

View File

@@ -4,6 +4,6 @@
#include "stack.h" /* for FX2 */
LispPTR make_value_list(int argcount, LispPTR *argarray);
void simulate_unbind(FX2 *frame, int unbind_count, FX2 *returner);
LispPTR values(int arg_count, LispPTR *args);
LispPTR values_list(int arg_count, LispPTR *args);
LispPTR values(int arg_count, register LispPTR *args);
LispPTR values_list(int arg_count, register LispPTR *args);
#endif

122
inc/my.h
View File

@@ -16,15 +16,18 @@
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include "version.h" // for BIGVM
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
#include "arith.h" // for N_ARITH_SWITCH, N_GETNUMBER
#include "gcdata.h" // for ADDREF, DELREF
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
#include "lspglob.h"
#include "lsptypes.h" // for GETBYTE, GETWORD, GetTypeNumber, TYPE_FLOATP
#include "mkcelldefs.h" // for createcell68k
#include "adr68k.h" /* for Addr68k_from_LADDR */
#include "lispemul.h" /* for LispPTR, DLword */
#include "lispmap.h" /* for S_NEGATIVE, S_POSITIVE */
#include "lsptypes.h" /* for GETWORD */
#define S_CHARACTER 0x70000
#ifdef BIGVM
#define IsNumber(address) ((GETWORD(MDStypetbl +(((address) & 0x0fffff00)>>9))) & 0x1000)
#else
#define IsNumber(address) ((GETWORD(MDStypetbl +(((address) & 0x0ffff00)>>9))) & 0x1000)
#endif
/************************************************************************/
/* */
@@ -45,10 +48,10 @@
default: \
switch (GetTypeNumber(arg)) { \
case TYPE_FLOATP: \
(dest) = *((float *)NativeAligned4FromLAddr(arg)); \
(dest) = *((float *)Addr68k_from_LADDR(arg)); \
break; \
case TYPE_FIXP: \
(dest) = (float)(*((int *)NativeAligned4FromLAddr(arg))); \
(dest) = (float)(*((int *)Addr68k_from_LADDR(arg)));\
break; \
default: ERROR_EXIT(tos); \
} \
@@ -62,118 +65,107 @@
(dest) = (arg) & 0xFFFF; \
else { \
if (GetTypeNumber(arg) != TYPE_FIXP) ERROR_EXIT(tos); \
if (((dest) = *((int *)NativeAligned4FromLAddr(arg))) & 0x80000000) \
if (((dest) = *((int *)Addr68k_from_LADDR(arg))) & 0x80000000) \
ERROR_EXIT(tos); \
} \
}
static inline LispPTR
aref_switch(unsigned type, LispPTR tos, LispPTR baseL, int index)
{
int result;
aref_switch(int type, LispPTR tos, LispPTR baseL, int index)
{
LispPTR result;
DLword *wordp;
switch (type)
{
case 38: /* pointer : 32 bits */
return(*(((LispPTR *)NativeAligned4FromLAddr(baseL)) + index));
case 20: /* signed : 16 bits */
result = (GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF;
return(*(((LispPTR *)Addr68k_from_LADDR(baseL)) + index));
case 20: /* signed : 16 bits */
result = (GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF;
if (result & 0x8000) return(result | S_NEGATIVE);
else return(result | S_POSITIVE);
case 67: /* Character : 8 bits */
return(S_CHARACTER | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF));
case 22: /* signed : 32 bits */
result = *(((int *)NativeAligned4FromLAddr(baseL)) + index);
N_ARITH_SWITCH(result);
case 0: /* unsigned : 1 bit per element */
return(S_POSITIVE | (((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + (index >> 3))) >> (7 - (index & 7))) & 1));
case 3: /* unsigned : 8 bits per element */
return(S_POSITIVE | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF));
case 4: /* unsigned : 16 bits per element */
return(S_POSITIVE | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF));
case 54: /* Float : 32 bits */
{
float *cellp = (float *)createcell68k(TYPE_FLOATP);
*cellp = *(float *)(NativeAligned4FromLAddr(baseL) + index);
return (LAddrFromNative(cellp));
}
case 68: /* Character : 16 bits */
return(S_CHARACTER | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF));
case 86: /* XPointer : 32 bits */
return(*(((LispPTR *)NativeAligned4FromLAddr(baseL)) + index));
default: /* Illegal or Unimplemented */
ERROR_EXIT(tos);
}/* end switch typenumber */
else return(result | S_POSITIVE);
case 67: /* Character : 8 bits */
return(S_CHARACTER | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF));
case 22: /* signed : 32 bits */
result = *(((LispPTR *)Addr68k_from_LADDR(baseL)) + index);
N_ARITH_SWITCH(result);
case 0: /* unsigned : 1 bit per element */
return(S_POSITIVE | (((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + (index >> 3))) >> (7 - (index & 7))) & 1));
case 3: /* unsigned : 8 bits per element */
return(S_POSITIVE | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF));
case 4: /* unsigned : 16 bits per element */
return(S_POSITIVE | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF));
case 54: /* Float : 32 bits */
wordp = createcell68k(TYPE_FLOATP);
*((LispPTR *)wordp) = *(((LispPTR *)Addr68k_from_LADDR(baseL)) + index);
return(LADDR_from_68k(wordp));
case 68: /* Character : 16 bits */
return(S_CHARACTER | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF));
case 86: /* XPointer : 32 bits */
return(*(((LispPTR *)Addr68k_from_LADDR(baseL)) + index));
default: /* Illegal or Unimplemented */
ERROR_EXIT(tos);
}/* end switch typenumber */
}
#define aset_switch(type, tos) \
{ \
switch (type) { \
case 38: /* pointer : 32 bits */ \
GCLOOKUP(*(((int *)NativeAligned4FromLAddr(base)) + index), DELREF); \
GCLOOKUP(*(((int *)Addr68k_from_LADDR(base)) + index), DELREF); \
GCLOOKUP(data, ADDREF); \
*(((int *)NativeAligned4FromLAddr(base)) + index) = data; \
*(((int *)Addr68k_from_LADDR(base)) + index) = data; \
return(data); \
case 20: /* signed : 16 bits */ \
new = data & 0xFFFF; \
if ((((data & SEGMASK) == S_POSITIVE) && ((data & 0x8000) == 0)) ||\
(((data & SEGMASK) == S_NEGATIVE) && (data & 0x8000))) \
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
else ERROR_EXIT(tos); \
return(data); \
case 67: /* Character : 8 bits */ \
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
new = data & 0xFFFF; \
if (new > 0xFF) ERROR_EXIT(tos); \
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index) = new; \
GETBYTE(((char *)Addr68k_from_LADDR(base)) + index) = new; \
return(data); \
case 22: /* signed : 32 bits */ \
N_GETNUMBER(data, new, doufn); \
*(((int *)NativeAligned4FromLAddr(base)) + index) = new; \
*(((int *)Addr68k_from_LADDR(base)) + index) = new; \
return(data); \
case 0: /* unsigned : 1 bit per element */ \
N_GetPos(data, new, tos); \
if (new > 1) ERROR_EXIT(tos); \
if (new) { \
new = (1 << (7 - (index & 7))); \
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + (index >> 3)) |= new; \
GETBYTE(((char *)Addr68k_from_LADDR(base)) + (index >> 3)) |= new; \
} \
else { \
new = 0xFF - (1 << (7 - (index & 7))); \
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + (index >> 3)) &= new; \
GETBYTE(((char *)Addr68k_from_LADDR(base)) + (index >> 3)) &= new; \
} \
return(data); \
case 3: /* unsigned : 8 bits per element */ \
N_GetPos(data, new, tos); \
if (new > 0xFF) ERROR_EXIT(tos); \
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index) = new; \
GETBYTE(((char *)Addr68k_from_LADDR(base)) + index) = new; \
return(data); \
case 4: /* unsigned : 16 bits per element */ \
N_GetPos(data, new, tos); \
if (new > 0xFFFF) ERROR_EXIT(tos); \
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
return(data); \
case 54: /* Float : 32 bits */ \
if (GetTypeNumber(data) != TYPE_FLOATP) ERROR_EXIT(tos); \
*(((int *)NativeAligned4FromLAddr(base)) + index) = *((int *)NativeAligned4FromLAddr(data)); \
*(((int *)Addr68k_from_LADDR(base)) + index) = *((int *)Addr68k_from_LADDR(data)); \
return(data); \
case 68: /* Character : 16 bits */ \
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
new = data & 0xFFFF; \
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
return(data); \
case 86: /* XPointer : 32 bits */ \
*(((int *)NativeAligned4FromLAddr(base)) + index) = data; \
*(((int *)Addr68k_from_LADDR(base)) + index) = data; \
return(data); \
default: /* Illegal or Unimplemented */ \
ERROR_EXIT(tos); \

View File

@@ -15,7 +15,6 @@
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include "osmsgdefs.h" // for flush_pty
#define OSMESSAGE_PRINT(print_exp) \
{ \

Some files were not shown because too many files have changed in this diff Show More