mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-19 08:05:12 +00:00
Compare commits
236 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc390c511f | ||
|
|
fcc62953d8 | ||
|
|
33ba044dc1 | ||
|
|
387be9d2b6 | ||
|
|
5565c9db8b | ||
|
|
ad9487a89b | ||
|
|
fdef5e6dde | ||
|
|
ebd7a197f2 | ||
|
|
6a7e018a0c | ||
|
|
7a28ba5731 | ||
|
|
c4ad41fcb7 | ||
|
|
fda6153d5b | ||
|
|
419ff4a549 | ||
|
|
695f559af8 | ||
|
|
a24f10a995 | ||
|
|
6944c1289b | ||
|
|
b8873485c7 | ||
|
|
1a98f0783e | ||
|
|
77894f993c | ||
|
|
83cd45d8dc | ||
|
|
8b746780cd | ||
|
|
269e5d8235 | ||
|
|
cc6e8b6986 | ||
|
|
b7b364359b | ||
|
|
e84703c3bd | ||
|
|
5fbc3d0480 | ||
|
|
97e811e3de | ||
|
|
f6aa8f1dcd | ||
|
|
1b90398cfc | ||
|
|
b758597f96 | ||
|
|
4b603a8a31 | ||
|
|
d6a5e5298a | ||
|
|
483506234b | ||
|
|
f3592648b6 | ||
|
|
d266f4d987 | ||
|
|
05f49a3556 | ||
|
|
2a42cd8e52 | ||
|
|
dab77421a2 | ||
|
|
5143aa25b0 | ||
|
|
56b6cfaa19 | ||
|
|
3786630f33 | ||
|
|
63bfea5adf | ||
|
|
c2ee07f609 | ||
|
|
a3b064b2b7 | ||
|
|
bba1dd660f | ||
|
|
f701bb40ac | ||
|
|
9941356250 | ||
|
|
e843dfbd76 | ||
|
|
7ea30a40cc | ||
|
|
a38ae21908 | ||
|
|
f543d56260 | ||
|
|
bf8c1ae277 | ||
|
|
7e819fbb69 | ||
|
|
166d54e938 | ||
|
|
94a41d2a5b | ||
|
|
2c4ccf54c3 | ||
|
|
903a7f64fc | ||
|
|
a9dcff6fd6 | ||
|
|
049568b0f8 | ||
|
|
d4226c20f2 | ||
|
|
889adcaa35 | ||
|
|
a448bd0329 | ||
|
|
02fa9a6b23 | ||
|
|
1790919750 | ||
|
|
5a3729886e | ||
|
|
9eba057b94 | ||
|
|
4806d98270 | ||
|
|
1af3803fca | ||
|
|
6c5b8391b7 | ||
|
|
09bf2988be | ||
|
|
059d750c75 | ||
|
|
f0079b1e73 | ||
|
|
dad4a8cc79 | ||
|
|
822a03a95b | ||
|
|
b7ee0eb34f | ||
|
|
dbdd7c2dc2 | ||
|
|
6a4ed88f37 | ||
|
|
9239fb3c29 | ||
|
|
78f0d3c511 | ||
|
|
4dc9429b19 | ||
|
|
55a7a47598 | ||
|
|
34fc725758 | ||
|
|
3ee8530dc1 | ||
|
|
49a6891283 | ||
|
|
7d760f64cf | ||
|
|
68137d6251 | ||
|
|
8e34c274c0 | ||
|
|
695828a600 | ||
|
|
10f53dfb93 | ||
|
|
584a719f8d | ||
|
|
be9eb33ca0 | ||
|
|
acc4d387a1 | ||
|
|
7965bfe131 | ||
|
|
d28f05f79d | ||
|
|
ed77b2fb7b | ||
|
|
7dc889249b | ||
|
|
ee777103ad | ||
|
|
76e1503249 | ||
|
|
7377613aab | ||
|
|
5fcd1ced65 | ||
|
|
e6d981632e | ||
|
|
a2c908fc32 | ||
|
|
9df1ea251a | ||
|
|
cde0be42f0 | ||
|
|
29f2a78a2f | ||
|
|
61d6cdbcc9 | ||
|
|
ead2a6771c | ||
|
|
5a3425e426 | ||
|
|
010329f29d | ||
|
|
8a0804831e | ||
|
|
eae42d1a6d | ||
|
|
ed5e504b06 | ||
|
|
215a22ea9f | ||
|
|
5202c71a95 | ||
|
|
2b270e6697 | ||
|
|
59d3446c6a | ||
|
|
0c505f9576 | ||
|
|
51fffe5827 | ||
|
|
d35b964393 | ||
|
|
58f6f68c7e | ||
|
|
873d4927ce | ||
|
|
5c0349cc69 | ||
|
|
d509224797 | ||
|
|
f8f7b2ace9 | ||
|
|
89c01ad00a | ||
|
|
3075cc93bb | ||
|
|
4a02a1a24d | ||
|
|
813d2aa2b5 | ||
|
|
1fe71e5b84 | ||
|
|
8d804ad5cd | ||
|
|
ad045ce356 | ||
|
|
c49eb4a4ce | ||
|
|
1c5881fad4 | ||
|
|
77ad9204af | ||
|
|
89c3041339 | ||
|
|
142b5679cf | ||
|
|
0e7dc75fd9 | ||
|
|
41e7a15b1e | ||
|
|
5a7cfcbbe7 | ||
|
|
9e2b3eb882 | ||
|
|
543f7985a2 | ||
|
|
c07ad9fe8e | ||
|
|
fff53ba224 | ||
|
|
d842b284ac | ||
|
|
64b47841d8 | ||
|
|
d91de66322 | ||
|
|
e72dd332a3 | ||
|
|
f7fd547360 | ||
|
|
b94cb8809b | ||
|
|
6010df35fe | ||
|
|
601d6e9142 | ||
|
|
3d9f090e70 | ||
|
|
4bd1f4b49a | ||
|
|
681f3b2592 | ||
|
|
c3f79872f1 | ||
|
|
a15de4df10 | ||
|
|
430da79e73 | ||
|
|
259658fa2c | ||
|
|
317f081409 | ||
|
|
5fa05ac3d7 | ||
|
|
9a10f63fe6 | ||
|
|
77957d421a | ||
|
|
e81345218a | ||
|
|
b27bd2fbab | ||
|
|
b5f51d58f1 | ||
|
|
60af445afa | ||
|
|
a18f09d788 | ||
|
|
2bf7047709 | ||
|
|
90b967c8d3 | ||
|
|
b005501427 | ||
|
|
20046b265b | ||
|
|
e6a974a2a7 | ||
|
|
8ea2c76110 | ||
|
|
3e7c71c0c0 | ||
|
|
f2a3715930 | ||
|
|
f15d8eca09 | ||
|
|
008ce703e7 | ||
|
|
fa08a08648 | ||
|
|
bb0b011f90 | ||
|
|
6bccbfbcf3 | ||
|
|
e3af3b03b9 | ||
|
|
880747f2dc | ||
|
|
c7fd28a438 | ||
|
|
e1efc860c4 | ||
|
|
26fe840edf | ||
|
|
212a0fa9c6 | ||
|
|
65bbcb7d9d | ||
|
|
987cf4c7c6 | ||
|
|
c46fcce307 | ||
|
|
de5ea2110f | ||
|
|
6c241f1eaa | ||
|
|
19688bc314 | ||
|
|
c39b751f42 | ||
|
|
75c668f1cd | ||
|
|
a25368714f | ||
|
|
3cdbccd0c7 | ||
|
|
4d2bf13347 | ||
|
|
f7e40d1ed5 | ||
|
|
9bb5a4298c | ||
|
|
533c935e72 | ||
|
|
6fedd97d21 | ||
|
|
a70b18d444 | ||
|
|
c7adb3c4ba | ||
|
|
b1545e4ccc | ||
|
|
4f79f55c20 | ||
|
|
85c4ebf0ac | ||
|
|
7284e19b32 | ||
|
|
0de1b1438b | ||
|
|
740f012254 | ||
|
|
377a6f3f47 | ||
|
|
c07618f55c | ||
|
|
dbbb59b30b | ||
|
|
e957e331c4 | ||
|
|
934a86fbb5 | ||
|
|
28ea238807 | ||
|
|
81c36341ef | ||
|
|
6cad51735f | ||
|
|
c33386ef44 | ||
|
|
588e804a2f | ||
|
|
c56cbb2a91 | ||
|
|
ef31b3fe0b | ||
|
|
ea8d31f590 | ||
|
|
093fb9a3d5 | ||
|
|
b53620852a | ||
|
|
13163c6772 | ||
|
|
9e179e66f2 | ||
|
|
084d69c6e8 | ||
|
|
40e18e6da0 | ||
|
|
9ed46e6b69 | ||
|
|
934b15b63b | ||
|
|
2de44247b5 | ||
|
|
ef6a6554ac | ||
|
|
1c47bf5df0 | ||
|
|
f42671022f | ||
|
|
2122f095e8 | ||
|
|
91fe7d51f9 |
23
.github/workflows/build.yml
vendored
23
.github/workflows/build.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-10.15, ubuntu-18.04]
|
os: [macos-11, ubuntu-22.04, ubuntu-18.04]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install X11 dependencies on MacOS
|
- name: Install X11 dependencies on MacOS
|
||||||
@@ -21,20 +21,23 @@ jobs:
|
|||||||
working-directory: bin
|
working-directory: bin
|
||||||
run: ./makeright x
|
run: ./makeright x
|
||||||
|
|
||||||
build-pi:
|
#
|
||||||
runs-on: [self-hosted, linux, ARM]
|
# Commented out because the RPi is not online at this time (6 July 2021)
|
||||||
if: ${{ github.repository == 'Interlisp/maiko' }}
|
#
|
||||||
steps:
|
# build-pi:
|
||||||
- uses: actions/checkout@v2
|
# runs-on: [self-hosted, linux, ARM]
|
||||||
- name: Build
|
# if: ${{ github.repository == 'Interlisp/maiko' }}
|
||||||
working-directory: bin
|
# steps:
|
||||||
run: ./makeright x
|
# - uses: actions/checkout@v2
|
||||||
|
# - name: Build
|
||||||
|
# working-directory: bin
|
||||||
|
# run: ./makeright x
|
||||||
|
|
||||||
build-cmake:
|
build-cmake:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-10.15, ubuntu-20.04, ubuntu-18.04]
|
os: [macos-11, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04]
|
||||||
env:
|
env:
|
||||||
BUILD_TYPE: Release
|
BUILD_TYPE: Release
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
357
.github/workflows/buildReleaseInclDocker.yml
vendored
Normal file
357
.github/workflows/buildReleaseInclDocker.yml
vendored
Normal file
@@ -0,0 +1,357 @@
|
|||||||
|
#*******************************************************************************
|
||||||
|
# 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
3
.gitignore
vendored
@@ -5,6 +5,9 @@
|
|||||||
\#*#
|
\#*#
|
||||||
.DS_Store
|
.DS_Store
|
||||||
# build directories
|
# build directories
|
||||||
|
build/**
|
||||||
|
*.m68k-x/**
|
||||||
|
*.m68k/**
|
||||||
*.386-x/**
|
*.386-x/**
|
||||||
*.386/**
|
*.386/**
|
||||||
*.ppc-x/**
|
*.ppc-x/**
|
||||||
|
|||||||
@@ -16,6 +16,19 @@ IF(CMAKE_C_COMPILER_ID MATCHES "SunPro")
|
|||||||
SET(CMAKE_C_FLAGS "-fno-strict-aliasing ${CMAKE_C_FLAGS}")
|
SET(CMAKE_C_FLAGS "-fno-strict-aliasing ${CMAKE_C_FLAGS}")
|
||||||
ENDIF()
|
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)
|
INCLUDE(CheckLibraryExists)
|
||||||
CHECK_LIBRARY_EXISTS(m fmod "" NEED_LIB_M)
|
CHECK_LIBRARY_EXISTS(m fmod "" NEED_LIB_M)
|
||||||
IF(NEED_LIB_M)
|
IF(NEED_LIB_M)
|
||||||
@@ -108,15 +121,8 @@ SET(BAD_SRCS
|
|||||||
|
|
||||||
SET(MAIKO_SRCS
|
SET(MAIKO_SRCS
|
||||||
src/allocmds.c
|
src/allocmds.c
|
||||||
src/arith2.c
|
src/arithops.c
|
||||||
src/arith3.c
|
src/arrayops.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/asmbbt.c
|
||||||
src/bbtsub.c
|
src/bbtsub.c
|
||||||
src/bin.c
|
src/bin.c
|
||||||
@@ -210,16 +216,9 @@ SET(MAIKO_HDRS
|
|||||||
inc/address.h
|
inc/address.h
|
||||||
inc/adr68k.h
|
inc/adr68k.h
|
||||||
inc/allocmdsdefs.h
|
inc/allocmdsdefs.h
|
||||||
inc/arith2defs.h
|
inc/arithopsdefs.h
|
||||||
inc/arith3defs.h
|
|
||||||
inc/arith4defs.h
|
|
||||||
inc/arith.h
|
inc/arith.h
|
||||||
inc/array2defs.h
|
inc/arrayopsdefs.h
|
||||||
inc/array3defs.h
|
|
||||||
inc/array4defs.h
|
|
||||||
inc/array5defs.h
|
|
||||||
inc/array6defs.h
|
|
||||||
inc/arraydefs.h
|
|
||||||
inc/array.h
|
inc/array.h
|
||||||
inc/bb.h
|
inc/bb.h
|
||||||
inc/bbtsubdefs.h
|
inc/bbtsubdefs.h
|
||||||
@@ -366,6 +365,7 @@ SET(MAIKO_HDRS
|
|||||||
inc/unixfork.h
|
inc/unixfork.h
|
||||||
inc/unwinddefs.h
|
inc/unwinddefs.h
|
||||||
inc/uraiddefs.h
|
inc/uraiddefs.h
|
||||||
|
inc/uraidextdefs.h
|
||||||
inc/usrsubrdefs.h
|
inc/usrsubrdefs.h
|
||||||
inc/uutilsdefs.h
|
inc/uutilsdefs.h
|
||||||
inc/vars3defs.h
|
inc/vars3defs.h
|
||||||
@@ -377,7 +377,7 @@ SET(MAIKO_HDRS
|
|||||||
)
|
)
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(gen-vdate
|
ADD_CUSTOM_TARGET(gen-vdate
|
||||||
COMMAND mkvdate > vdate.c
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/mkvdate > vdate.c
|
||||||
BYPRODUCTS vdate.c
|
BYPRODUCTS vdate.c
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -409,10 +409,6 @@ IF(MAIKO_DISPLAY_X11)
|
|||||||
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
|
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
|
||||||
ENDIF()
|
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)
|
ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)
|
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)
|
||||||
|
|||||||
55
Dockerfile
Normal file
55
Dockerfile
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#*******************************************************************************
|
||||||
|
#
|
||||||
|
# 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
|
||||||
@@ -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).
|
For an overview, see [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction).
|
||||||
|
|
||||||
See [the Medley repository](https://github.org/Interlisp/medley) for
|
See [the Medley repository](https://github.com/Interlisp/medley) for
|
||||||
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
|
* [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)
|
* [Discussions](https://github.com/Interlisp/medley/discussions) (Q&A, announcements, etc)
|
||||||
* [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md)
|
* [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md)
|
||||||
|
|||||||
@@ -124,9 +124,19 @@ BIGATOMS True if this emulator will support 3-byte symbols, instead of
|
|||||||
NEWBITBLT True if we want to use assembler BITBLT code, rather than
|
NEWBITBLT True if we want to use assembler BITBLT code, rather than
|
||||||
have code created inline by macro calls.
|
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
|
bitbltsub.c:#ifdef GETBASE
|
||||||
testdisplay.c:#ifdef NOTUSED
|
testdisplay.c:#ifdef NOTUSED
|
||||||
uraid.c:#ifdef ETHERINT
|
uraid.c:#ifdef ETHERINT
|
||||||
bitblt.c:#ifndef COLOR
|
bitblt.c:#ifndef COLOR
|
||||||
bitbltsub.c:#ifndef prropstyle
|
|
||||||
lispmap.h:#ifdef MEDLEY
|
lispmap.h:#ifdef MEDLEY
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
os=${LDEARCH:-`./config.guess`}
|
os=${LDEARCH:-`./config.guess`}
|
||||||
# o/s switch block
|
# o/s switch block
|
||||||
case "$os" in
|
case "$os" in
|
||||||
|
m68k-*) echo m68k ;;
|
||||||
sparc-*) echo sparc ;;
|
sparc-*) echo sparc ;;
|
||||||
alpha-*) echo alpha ;;
|
alpha-*) echo alpha ;;
|
||||||
i*86-*-*) echo 386 ;;
|
i*86-*-*) echo 386 ;;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
|||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
||||||
-DRELEASE=351 -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
-DRELEASE=351 # -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
|||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O1 -g
|
OPTFLAGS = -O1 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=201 # was 351
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
|
|||||||
@@ -13,12 +13,12 @@ LDFLAGS = -g graphics.lib binmode.lib mouse.lib
|
|||||||
|
|
||||||
RM = del
|
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 arith2.c lowlev2.c subr0374.c arith3.c doscomm.c hardrtn.c lsthandl.c sxhash.c arith4.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
|
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 arith2.obj lowlev2.obj subr0374.obj arith3.obj doscomm.obj hardrtn.obj lsthandl.obj sxhash.obj arith4.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)
|
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 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
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -202,9 +202,9 @@ subr.obj : ../src/subr.c
|
|||||||
$(CC) @copts ../src/subr.c -I ../inc -c $@
|
$(CC) @copts ../src/subr.c -I ../inc -c $@
|
||||||
del copts
|
del copts
|
||||||
|
|
||||||
arith2.obj : ../src/arith2.c
|
arithops.obj : ../src/arithops.c
|
||||||
@ echo $(CFLAGS) > copts
|
@ echo $(CFLAGS) > copts
|
||||||
$(CC) @copts ../src/arith2.c -I ../inc -c $@
|
$(CC) @copts ../src/arithops.c -I ../inc -c $@
|
||||||
del copts
|
del copts
|
||||||
|
|
||||||
lowlev2.obj : ../src/lowlev2.c
|
lowlev2.obj : ../src/lowlev2.c
|
||||||
@@ -217,11 +217,6 @@ subr0374.obj : ../src/subr0374.c
|
|||||||
$(CC) @copts ../src/subr0374.c -I ../inc -c $@
|
$(CC) @copts ../src/subr0374.c -I ../inc -c $@
|
||||||
del copts
|
del copts
|
||||||
|
|
||||||
arith3.obj : ../src/arith3.c
|
|
||||||
@ echo $(CFLAGS) > copts
|
|
||||||
$(CC) @copts ../src/arith3.c -I ../inc -c $@
|
|
||||||
del copts
|
|
||||||
|
|
||||||
doscomm.obj : ../src/doscomm.c
|
doscomm.obj : ../src/doscomm.c
|
||||||
@ echo $(CFLAGS) > copts
|
@ echo $(CFLAGS) > copts
|
||||||
$(CC) @copts ../src/doscomm.c -I ../inc -c $@
|
$(CC) @copts ../src/doscomm.c -I ../inc -c $@
|
||||||
@@ -242,11 +237,6 @@ sxhash.obj : ../src/sxhash.c
|
|||||||
$(CC) @copts ../src/sxhash.c -I ../inc -c $@
|
$(CC) @copts ../src/sxhash.c -I ../inc -c $@
|
||||||
del copts
|
del copts
|
||||||
|
|
||||||
arith4.obj : ../src/arith4.c
|
|
||||||
@ echo $(CFLAGS) > copts
|
|
||||||
$(CC) @copts ../src/arith4.c -I ../inc -c $@
|
|
||||||
del copts
|
|
||||||
|
|
||||||
draw.obj : ../src/draw.c
|
draw.obj : ../src/draw.c
|
||||||
@ echo $(CFLAGS) > copts
|
@ echo $(CFLAGS) > copts
|
||||||
$(CC) @copts ../src/draw.c -I ../inc -c $@
|
$(CC) @copts ../src/draw.c -I ../inc -c $@
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ XFILES = $(OBJECTDIR)xmkicon.o \
|
|||||||
XFLAGS = -I/usr/local/include -DXWINDOW
|
XFLAGS = -I/usr/local/include -DXWINDOW
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O1 -gdwarf-2
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
|
|||||||
27
bin/makefile-freebsd.aarch64-x
Normal file
27
bin/makefile-freebsd.aarch64-x
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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
|
||||||
27
bin/makefile-freebsd.x86_64-x
Normal file
27
bin/makefile-freebsd.x86_64-x
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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
|
||||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
|||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=201 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
|
|||||||
27
bin/makefile-init-freebsd.386
Normal file
27
bin/makefile-init-freebsd.386
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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
|
||||||
27
bin/makefile-init-freebsd.aarch64
Normal file
27
bin/makefile-init-freebsd.aarch64
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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
|
||||||
27
bin/makefile-init-freebsd.x86_64
Normal file
27
bin/makefile-init-freebsd.x86_64
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# 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
|
||||||
@@ -41,7 +41,7 @@ OPTFLAGS = -g3 -O0
|
|||||||
|
|
||||||
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
||||||
|
|
||||||
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
|
MACHINEFLAGS = -DOS5 -DUSE_DLPI
|
||||||
|
|
||||||
# The LDEINIT wants to have NOVERSION set, so we don't hang up on
|
# The LDEINIT wants to have NOVERSION set, so we don't hang up on
|
||||||
# any change-over in versions.
|
# any change-over in versions.
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
|||||||
DFLAGS = $(XFLAGS) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
-DOS5 \
|
-DOS5 \
|
||||||
-DLOCK_X_UPDATES \
|
|
||||||
-DRELEASE=351
|
-DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
|||||||
DFLAGS = $(XFLAGS) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
-DOS5 -DUSE_DLPI \
|
-DOS5 -DUSE_DLPI \
|
||||||
-DLOCK_X_UPDATES \
|
|
||||||
-I$(OPENWINHOME)/include \
|
-I$(OPENWINHOME)/include \
|
||||||
-DRELEASE=210
|
-DRELEASE=210
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ OPTFLAGS = -O2 -g3
|
|||||||
|
|
||||||
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
||||||
|
|
||||||
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
|
MACHINEFLAGS = -DOS5 -DUSE_DLPI
|
||||||
|
|
||||||
DFLAGS = $(XFLAGS) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
|||||||
DFLAGS = $(XFLAGS) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
-DOS5 \
|
-DOS5 \
|
||||||
-DLOCK_X_UPDATES \
|
|
||||||
-DUSE_DLPI \
|
-DUSE_DLPI \
|
||||||
-DRELEASE=351
|
-DRELEASE=351
|
||||||
|
|
||||||
|
|||||||
@@ -38,15 +38,8 @@ REQUIRED-INCS = $(INCDIR)version.h $(INCDIR)maiko/platform.h
|
|||||||
CFLAGS = $(OPTFLAGS) $(DFLAGS)
|
CFLAGS = $(OPTFLAGS) $(DFLAGS)
|
||||||
RFLAGS = -c $(CFLAGS) -I$(INCDIR) -I$(INCLUDEDIR)
|
RFLAGS = -c $(CFLAGS) -I$(INCDIR) -I$(INCLUDEDIR)
|
||||||
|
|
||||||
OFILES = $(OBJECTDIR)arith2.o \
|
OFILES = $(OBJECTDIR)arithops.o \
|
||||||
$(OBJECTDIR)arith3.o \
|
$(OBJECTDIR)arrayops.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)bin.o \
|
||||||
$(OBJECTDIR)binds.o \
|
$(OBJECTDIR)binds.o \
|
||||||
$(OBJECTDIR)bitblt.o \
|
$(OBJECTDIR)bitblt.o \
|
||||||
@@ -160,9 +153,6 @@ $(OSARCHDIR)$(LDENAME): $(LIBFILES) $(EXTFILES) $(OBJECTDIR)vdate.o
|
|||||||
$(OSARCHDIR)ldeether: $(OBJECTDIR)ldeether.o $(DLPIFILES)
|
$(OSARCHDIR)ldeether: $(OBJECTDIR)ldeether.o $(DLPIFILES)
|
||||||
$(CC) $(OBJECTDIR)ldeether.o $(DLPIFILES) $(LDEETHERLDFLAGS) -o $(OSARCHDIR)ldeether
|
$(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)
|
$(OSARCHDIR)tstsout: $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(REQUIRED-INCS)
|
||||||
$(CC) $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(LDFLAGS) -lc -lm -o $(OSARCHDIR)tstsout
|
$(CC) $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(LDFLAGS) -lc -lm -o $(OSARCHDIR)tstsout
|
||||||
|
|
||||||
@@ -171,9 +161,9 @@ $(OSARCHDIR)setsout: $(OBJECTDIR)setsout.o $(REQUIRED-INCS)
|
|||||||
|
|
||||||
#### Component files ######################################################
|
#### Component files ######################################################
|
||||||
|
|
||||||
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) $(OSARCHDIR)mkvdate
|
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) mkvdate
|
||||||
$(RM) $(OBJECTDIR)vdate.c
|
$(RM) $(OBJECTDIR)vdate.c
|
||||||
$(OSARCHDIR)mkvdate > $(OBJECTDIR)vdate.c
|
$(BINDIR)mkvdate > $(OBJECTDIR)vdate.c
|
||||||
$(CC) $(RFLAGS) $(OBJECTDIR)vdate.c -o $(OBJECTDIR)vdate.o
|
$(CC) $(RFLAGS) $(OBJECTDIR)vdate.c -o $(OBJECTDIR)vdate.o
|
||||||
|
|
||||||
$(OBJECTDIR)tstsout.o: $(SRCDIR)tstsout.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)tstsout.o: $(SRCDIR)tstsout.c $(REQUIRED-INCS) \
|
||||||
@@ -197,9 +187,6 @@ $(OBJECTDIR)ldeboot.o: $(SRCDIR)ldeboot.c $(REQUIRED-INCS) \
|
|||||||
$(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
|
$(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)ldeether.c -o $(OBJECTDIR)ldeether.o
|
$(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) \
|
$(OBJECTDIR)main.o: $(SRCDIR)main.c $(REQUIRED-INCS) \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)dbprint.h \
|
$(INCDIR)lispemul.h $(INCDIR)dbprint.h \
|
||||||
$(INCDIR)emlglob.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h \
|
$(INCDIR)emlglob.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h \
|
||||||
@@ -218,7 +205,7 @@ $(OBJECTDIR)dbgtool.o: $(SRCDIR)dbgtool.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
$(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)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
|
||||||
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)kprintdefs.h \
|
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)kprintdefs.h \
|
||||||
$(INCDIR)testtooldefs.h
|
$(INCDIR)testtooldefs.h $(INCDIR)uraidextdefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)dbgtool.c -o $(OBJECTDIR)dbgtool.o
|
$(CC) $(RFLAGS) $(SRCDIR)dbgtool.c -o $(OBJECTDIR)dbgtool.o
|
||||||
|
|
||||||
$(OBJECTDIR)dlpi.o: $(SRCDIR)dlpi.c \
|
$(OBJECTDIR)dlpi.o: $(SRCDIR)dlpi.c \
|
||||||
@@ -239,7 +226,7 @@ $(OBJECTDIR)testtool.o: $(SRCDIR)testtool.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
|
$(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)debug.h $(INCDIR)dbprint.h $(INCDIR)tosfns.h $(INCDIR)testtooldefs.h \
|
||||||
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)gcarraydefs.h \
|
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)gcarraydefs.h \
|
||||||
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h
|
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h $(INCDIR)uraidextdefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)testtool.c -o $(OBJECTDIR)testtool.o
|
$(CC) $(RFLAGS) $(SRCDIR)testtool.c -o $(OBJECTDIR)testtool.o
|
||||||
|
|
||||||
$(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
|
||||||
@@ -251,48 +238,40 @@ $(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)timerdefs.h
|
$(INCDIR)timerdefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)allocmds.c -o $(OBJECTDIR)allocmds.o
|
$(CC) $(RFLAGS) $(SRCDIR)allocmds.c -o $(OBJECTDIR)allocmds.o
|
||||||
|
|
||||||
$(OBJECTDIR)arith2.o: $(SRCDIR)arith2.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)arithops.o: $(SRCDIR)arithops.c $(REQUIRED-INCS) \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
$(INCDIR)adr68k.h \
|
||||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
$(INCDIR)arith.h \
|
||||||
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)medleyfp.h $(INCDIR)arith.h \
|
$(INCDIR)commondefs.h \
|
||||||
$(INCDIR)arith2defs.h $(INCDIR)fpdefs.h $(INCDIR)mkcelldefs.h
|
$(INCDIR)lispemul.h \
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)arith2.c -o $(OBJECTDIR)arith2.o
|
$(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)arith3.o: $(SRCDIR)arith3.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)arrayops.o: $(SRCDIR)arrayops.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)arrayopsdefs.h \
|
||||||
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
|
$(INCDIR)lispemul.h \
|
||||||
$(INCDIR)arith.h $(INCDIR)arith3defs.h $(INCDIR)mkcelldefs.h
|
$(INCDIR)lispmap.h \
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)arith3.c -o $(OBJECTDIR)arith3.o
|
$(INCDIR)emlglob.h \
|
||||||
|
$(INCDIR)lspglob.h \
|
||||||
$(OBJECTDIR)arith4.o: $(SRCDIR)arith4.c $(REQUIRED-INCS) \
|
$(INCDIR)ifpage.h \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
$(INCDIR)iopage.h \
|
||||||
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
|
$(INCDIR)miscstat.h \
|
||||||
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
|
$(INCDIR)lsptypes.h \
|
||||||
$(INCDIR)medleyfp.h $(INCDIR)arith.h $(INCDIR)arith4defs.h $(INCDIR)fpdefs.h \
|
$(INCDIR)my.h \
|
||||||
$(INCDIR)mkcelldefs.h
|
$(INCDIR)arith.h \
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)arith4.c -o $(OBJECTDIR)arith4.o
|
$(INCDIR)commondefs.h \
|
||||||
|
$(INCDIR)mkcelldefs.h \
|
||||||
$(OBJECTDIR)array.o: $(SRCDIR)array.c $(REQUIRED-INCS) \
|
$(INCDIR)gcdata.h \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
$(INCDIR)gchtfinddefs.h
|
||||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
$(CC) $(RFLAGS) $(SRCDIR)arrayops.c -o $(OBJECTDIR)arrayops.o
|
||||||
$(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) \
|
$(OBJECTDIR)bin.o: $(SRCDIR)bin.c $(REQUIRED-INCS) \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||||
@@ -388,7 +367,7 @@ $(OBJECTDIR)common.o: $(SRCDIR)common.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||||
$(INCDIR)adr68k.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.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)miscstat.h $(INCDIR)emlglob.h $(INCDIR)stack.h $(INCDIR)dbprint.h \
|
||||||
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h
|
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h $(INCDIR)uraidextdefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)common.c -o $(OBJECTDIR)common.o
|
$(CC) $(RFLAGS) $(SRCDIR)common.c -o $(OBJECTDIR)common.o
|
||||||
|
|
||||||
$(OBJECTDIR)conspage.o: $(SRCDIR)conspage.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)conspage.o: $(SRCDIR)conspage.c $(REQUIRED-INCS) \
|
||||||
@@ -813,7 +792,7 @@ $(OBJECTDIR)subr.o: $(SRCDIR)subr.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)gcrdefs.h $(INCDIR)inetdefs.h $(INCDIR)kbdsubrsdefs.h \
|
$(INCDIR)gcrdefs.h $(INCDIR)inetdefs.h $(INCDIR)kbdsubrsdefs.h \
|
||||||
$(INCDIR)mkcelldefs.h $(INCDIR)osmsgdefs.h $(INCDIR)rpcdefs.h \
|
$(INCDIR)mkcelldefs.h $(INCDIR)osmsgdefs.h $(INCDIR)rpcdefs.h \
|
||||||
$(INCDIR)storagedefs.h $(INCDIR)timerdefs.h $(INCDIR)ufsdefs.h \
|
$(INCDIR)storagedefs.h $(INCDIR)timerdefs.h $(INCDIR)ufsdefs.h \
|
||||||
$(INCDIR)unixcommdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
|
$(INCDIR)unixcommdefs.h $(INCDIR)uraidextdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)subr.c -o $(OBJECTDIR)subr.o
|
$(CC) $(RFLAGS) $(SRCDIR)subr.c -o $(OBJECTDIR)subr.o
|
||||||
|
|
||||||
$(OBJECTDIR)miscn.o: $(SRCDIR)miscn.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)miscn.o: $(SRCDIR)miscn.c $(REQUIRED-INCS) \
|
||||||
@@ -886,7 +865,7 @@ $(OBJECTDIR)uraid.o: $(SRCDIR)uraid.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)initkbddefs.h \
|
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)initkbddefs.h \
|
||||||
$(INCDIR)kprintdefs.h $(INCDIR)llstkdefs.h $(INCDIR)mkatomdefs.h \
|
$(INCDIR)kprintdefs.h $(INCDIR)llstkdefs.h $(INCDIR)mkatomdefs.h \
|
||||||
$(INCDIR)returndefs.h $(INCDIR)testtooldefs.h $(INCDIR)timerdefs.h \
|
$(INCDIR)returndefs.h $(INCDIR)testtooldefs.h $(INCDIR)timerdefs.h \
|
||||||
$(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
|
$(INCDIR)uraidextdefs.h $(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)uraid.c -o $(OBJECTDIR)uraid.o
|
$(CC) $(RFLAGS) $(SRCDIR)uraid.c -o $(OBJECTDIR)uraid.o
|
||||||
|
|
||||||
$(OBJECTDIR)rpc.o: $(SRCDIR)rpc.c $(REQUIRED-INCS) \
|
$(OBJECTDIR)rpc.o: $(SRCDIR)rpc.c $(REQUIRED-INCS) \
|
||||||
@@ -920,29 +899,6 @@ $(OBJECTDIR)vmemsave.o: $(SRCDIR)vmemsave.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)ufsdefs.h
|
$(INCDIR)ufsdefs.h
|
||||||
$(CC) $(RFLAGS) $(SRCDIR)vmemsave.c -o $(OBJECTDIR)vmemsave.o
|
$(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) \
|
$(OBJECTDIR)sxhash.o: $(SRCDIR)sxhash.c $(REQUIRED-INCS) \
|
||||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
||||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
|
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
|
||||||
@@ -962,10 +918,8 @@ $(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(REQUIRED-INCS) \
|
|||||||
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
$(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)initatms.h $(INCDIR)gcdata.h $(INCDIR)arith.h $(INCDIR)stream.h \
|
||||||
$(INCDIR)tos1defs.h $(INCDIR)tosret.h $(INCDIR)tosfns.h $(INCDIR)inlineC.h \
|
$(INCDIR)tos1defs.h $(INCDIR)tosret.h $(INCDIR)tosfns.h $(INCDIR)inlineC.h \
|
||||||
$(INCDIR)xcdefs.h $(INCDIR)arith2defs.h $(INCDIR)arith3defs.h \
|
$(INCDIR)xcdefs.h $(INCDIR)arithopsdefs.h $(INCDIR)arrayopsdefs.h \
|
||||||
$(INCDIR)arith4defs.h $(INCDIR)arraydefs.h $(INCDIR)array2defs.h \
|
$(INCDIR)bitbltdefs.h $(INCDIR)bltdefs.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)byteswapdefs.h $(INCDIR)car-cdrdefs.h $(INCDIR)commondefs.h \
|
||||||
$(INCDIR)conspagedefs.h $(INCDIR)drawdefs.h $(INCDIR)eqfdefs.h \
|
$(INCDIR)conspagedefs.h $(INCDIR)drawdefs.h $(INCDIR)eqfdefs.h \
|
||||||
$(INCDIR)findkeydefs.h $(INCDIR)fpdefs.h $(INCDIR)fvardefs.h \
|
$(INCDIR)findkeydefs.h $(INCDIR)fpdefs.h $(INCDIR)fvardefs.h \
|
||||||
|
|||||||
6
bin/mkvdate
Executable file
6
bin/mkvdate
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cat <<EOF
|
||||||
|
#include <time.h>
|
||||||
|
extern const time_t MDate;
|
||||||
|
const time_t MDate = $(date +%s);
|
||||||
|
EOF
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
os=`./config.guess`
|
os=${LDEARCH:-`./config.guess`}
|
||||||
case "$os" in
|
case "$os" in
|
||||||
|
m68k-*-amigaos) echo amigaos ;;
|
||||||
sparc-sun-sunos*) echo sunos4 ;;
|
sparc-sun-sunos*) echo sunos4 ;;
|
||||||
sparc-sun-solaris1*) echo sunos4 ;;
|
sparc-sun-solaris1*) echo sunos4 ;;
|
||||||
*-*-solaris2*) echo sunos5 ;;
|
*-*-solaris2*) echo sunos5 ;;
|
||||||
|
|||||||
44
bin/release-one
Executable file
44
bin/release-one
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/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
|
||||||
36
bin/start-release
Executable file
36
bin/start-release
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/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 "
|
||||||
|
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
#define VERTICAL 0
|
#define VERTICAL 0
|
||||||
#define HORIZONTAL 1
|
#define HORIZONTAL 1
|
||||||
|
|
||||||
#define PERCENT_OF_SCREEN 95
|
|
||||||
#define SCROLL_PITCH 30
|
#define SCROLL_PITCH 30
|
||||||
|
|
||||||
typedef struct _MyEvent
|
typedef struct _MyEvent
|
||||||
@@ -77,7 +76,7 @@ typedef struct
|
|||||||
, White_Pixel ); \
|
, White_Pixel ); \
|
||||||
XLOCK; \
|
XLOCK; \
|
||||||
XFlush( display ); \
|
XFlush( display ); \
|
||||||
XUNLOCK; \
|
XUNLOCK( display ); \
|
||||||
(child_win)->parent = parent_win; \
|
(child_win)->parent = parent_win; \
|
||||||
if( (child_win)->after_create ) \
|
if( (child_win)->after_create ) \
|
||||||
((child_win)->after_create)(parent_win,child_win);\
|
((child_win)->after_create)(parent_win,child_win);\
|
||||||
@@ -96,7 +95,7 @@ typedef struct
|
|||||||
, (window)->width \
|
, (window)->width \
|
||||||
, (window)->height ); \
|
, (window)->height ); \
|
||||||
XFlush( display ); \
|
XFlush( display ); \
|
||||||
XUNLOCK; \
|
XUNLOCK( display ); \
|
||||||
if( (window)->after_resize ) \
|
if( (window)->after_resize ) \
|
||||||
((window)->after_resize)( window ); \
|
((window)->after_resize)( window ); \
|
||||||
} \
|
} \
|
||||||
@@ -106,7 +105,7 @@ typedef struct
|
|||||||
XLOCK; \
|
XLOCK; \
|
||||||
XDefineCursor( display, (window)->win, *(mycursor) ); \
|
XDefineCursor( display, (window)->win, *(mycursor) ); \
|
||||||
XFlush( display ); \
|
XFlush( display ); \
|
||||||
XUNLOCK; \
|
XUNLOCK( display ); \
|
||||||
(window)->cursor = mycursor; \
|
(window)->cursor = mycursor; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
64
inc/adr68k.h
64
inc/adr68k.h
@@ -9,8 +9,6 @@
|
|||||||
* Hiroshi Hayata
|
* Hiroshi Hayata
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */
|
/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */
|
||||||
@@ -20,8 +18,6 @@
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
/*
|
/*
|
||||||
Func name : adr68k.h
|
Func name : adr68k.h
|
||||||
@@ -32,8 +28,64 @@
|
|||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
|
#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 */
|
/* translate 68k ptr to Lisp DLword address */
|
||||||
#define LADDR_from_68k(ptr68k) ((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Lisp_world) >>1))
|
#define LADDR_from_68k(ptr68k) ((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Lisp_world) >>1))
|
||||||
|
|
||||||
@@ -49,10 +101,6 @@
|
|||||||
|
|
||||||
/* translate LispPage to 68k address */
|
/* translate LispPage to 68k address */
|
||||||
#define Addr68k_from_LPAGE(Lisp_page) (Addr68k_from_LADDR(((Lisp_page) << 8) ))
|
#define Addr68k_from_LPAGE(Lisp_page) (Addr68k_from_LADDR(((Lisp_page) << 8) ))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Stack Offset Macros */
|
/* Stack Offset Macros */
|
||||||
|
|
||||||
#define StkOffset_from_68K(ptr68k)\
|
#define StkOffset_from_68K(ptr68k)\
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifndef ALLOCMDSDEFS_H
|
#ifndef ALLOCMDSDEFS_H
|
||||||
#define ALLOCMDSDEFS_H 1
|
#define ALLOCMDSDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
LispPTR initmdspage(register LispPTR *base, register DLword size, register LispPTR prev);
|
LispPTR initmdspage(LispPTR *base, DLword size, LispPTR prev);
|
||||||
LispPTR *alloc_mdspage(register short int type);
|
LispPTR *alloc_mdspage(short int type);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
169
inc/arith.h
169
inc/arith.h
@@ -9,51 +9,79 @@
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
|
#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 MAX_SMALL 65535 /* == 0x0000FFFF */
|
||||||
#define MIN_SMALL (-65536) /* == 0xFFFF0000 */
|
#define MIN_SMALL (-65536) /* == 0xFFFF0000 */
|
||||||
|
|
||||||
#define MAX_FIXP 2147483647 /* == 0x7FFFFFFF */
|
#define MAX_FIXP 2147483647 /* == 0x7FFFFFFF */
|
||||||
#define MIN_FIXP (-2147483648) /* == 0x80000000 */
|
#define MIN_FIXP (-2147483648) /* == 0x80000000 */
|
||||||
|
|
||||||
#define GetSmalldata(x) \
|
/**
|
||||||
(((SEGMASK & (x)) == S_POSITIVE) \
|
* extract an integer value from a smallp
|
||||||
? (0xFFFF & (x)) \
|
*/
|
||||||
: (((SEGMASK & (x)) == S_NEGATIVE) ? (0xFFFF0000 | (x)) : error("Not smallp address")))
|
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 GetSmallp(x) \
|
/**
|
||||||
((0xFFFF0000 & (x)) ? (((0xFFFF0000 & (x)) == 0xFFFF0000) ? (S_NEGATIVE | (0xFFFF & (x))) \
|
* construct a smallp from an integer value
|
||||||
: error("Not Smallp data")) \
|
*/
|
||||||
: (S_POSITIVE | (0xFFFF & (x))))
|
|
||||||
|
|
||||||
#define FIXP_VALUE(dest) *((int *)Addr68k_from_LADDR(dest))
|
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 FLOATP_VALUE(dest) *((float *)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 N_GETNUMBER(sour, dest, label) \
|
#define N_GETNUMBER(sour, dest, label) \
|
||||||
do { \
|
do { \
|
||||||
(dest) = (sour); /* access memory once */ \
|
switch (SEGMASK & (sour)) { \
|
||||||
switch (SEGMASK & (dest)) { \
|
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
|
||||||
case S_POSITIVE: (dest) = 0xFFFF & (dest); break; \
|
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
|
||||||
case S_NEGATIVE: (dest) = 0xFFFF0000 | (dest); break; \
|
|
||||||
default: \
|
default: \
|
||||||
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
|
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
|
||||||
if (GetTypeNumber(dest) != TYPE_FIXP) goto label; \
|
if (GetTypeNumber(sour) != TYPE_FIXP) goto label; \
|
||||||
(dest) = FIXP_VALUE(dest); \
|
(dest) = FIXP_VALUE(sour); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define N_IGETNUMBER(sour, dest, label) \
|
#define N_IGETNUMBER(sour, dest, label) \
|
||||||
do { \
|
do { \
|
||||||
(dest) = (sour); /* access memory once */ \
|
switch (SEGMASK & (sour)) { \
|
||||||
switch (SEGMASK & (dest)) { \
|
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
|
||||||
case S_POSITIVE: (dest) = 0xFFFF & (dest); break; \
|
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
|
||||||
case S_NEGATIVE: (dest) = 0xFFFF0000 | (dest); break; \
|
|
||||||
default: \
|
default: \
|
||||||
switch (GetTypeNumber(dest)) { \
|
switch (GetTypeNumber(sour)) { \
|
||||||
case TYPE_FIXP: (dest) = FIXP_VALUE(dest); break; \
|
case TYPE_FIXP: (dest) = FIXP_VALUE(sour); break; \
|
||||||
case TYPE_FLOATP: { \
|
case TYPE_FLOATP: { \
|
||||||
register float temp; \
|
float temp; \
|
||||||
temp = FLOATP_VALUE(dest); \
|
temp = FLOATP_VALUE(sour); \
|
||||||
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
|
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
|
||||||
if ((temp > ((float)0x7fffffff)) || (temp < ((float)0x80000000))) goto label; \
|
if ((temp > ((float)0x7fffffff)) || (temp < ((float)0x80000000))) goto label; \
|
||||||
(dest) = (int)temp; \
|
(dest) = (int)temp; \
|
||||||
@@ -66,100 +94,33 @@
|
|||||||
|
|
||||||
#define ARITH_SWITCH(arg, result) \
|
#define ARITH_SWITCH(arg, result) \
|
||||||
do { \
|
do { \
|
||||||
switch ((int)(arg) & 0xFFFF0000) { \
|
switch ((arg) & (int)0xFFFF0000) { \
|
||||||
case 0: (result) = (S_POSITIVE | (int)(arg)); break; \
|
case 0: (result) = (S_POSITIVE | (int)(arg)); break; \
|
||||||
case 0xFFFF0000: (result) = (S_NEGATIVE | (0xFFFF & (int)(arg))); break; \
|
case (int)0xFFFF0000: (result) = (S_NEGATIVE | (0xFFFF & (arg))); break; \
|
||||||
default: { \
|
default: { \
|
||||||
register LispPTR *wordp; \
|
int *fixpp; \
|
||||||
/* arg is FIXP, call createcell */ \
|
/* arg is FIXP, call createcell */ \
|
||||||
wordp = (LispPTR *)createcell68k(TYPE_FIXP); \
|
fixpp = (int *)createcell68k(TYPE_FIXP); \
|
||||||
*((int *)wordp) = (int)(arg); \
|
*((int *)fixpp) = (int)(arg); \
|
||||||
(result) = (LADDR_from_68k(wordp)); \
|
(result) = (LAddrFromNative(fixpp)); \
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} 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) \
|
#define N_ARITH_SWITCH(arg) \
|
||||||
do { \
|
do { \
|
||||||
switch ((arg) & 0xFFFF0000) { \
|
switch ((arg) & (int)0xFFFF0000) { \
|
||||||
case 0: return (S_POSITIVE | (arg)); \
|
case 0: return (LispPTR) (S_POSITIVE | (arg)); \
|
||||||
case 0xFFFF0000: return (S_NEGATIVE | (0xFFFF & (arg))); \
|
case (int)0xFFFF0000: return (LispPTR)(S_NEGATIVE | (0xFFFF & (arg))); \
|
||||||
default: { \
|
default: { \
|
||||||
register LispPTR *fixpp; \
|
int *fixpp; \
|
||||||
/* arg is FIXP, call createcell */ \
|
/* arg is FIXP, call createcell */ \
|
||||||
fixpp = (LispPTR *)createcell68k(TYPE_FIXP); \
|
fixpp = (int *)createcell68k(TYPE_FIXP); \
|
||||||
*((int *)fixpp) = arg; \
|
*fixpp = arg; \
|
||||||
return (LADDR_from_68k(fixpp)); \
|
return (LAddrFromNative(fixpp)); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} 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 */
|
#endif /* ARITH_H */
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#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
|
|
||||||
23
inc/arithopsdefs.h
Normal file
23
inc/arithopsdefs.h
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#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
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#ifndef ARRAY3DEFS_H
|
|
||||||
#define ARRAY3DEFS_H 1
|
|
||||||
#include "lispemul.h" /* for LispPTR */
|
|
||||||
LispPTR N_OP_aref1(register LispPTR arrayarg, register LispPTR inx);
|
|
||||||
#endif
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#ifndef ARRAY5DEFS_H
|
|
||||||
#define ARRAY5DEFS_H 1
|
|
||||||
#include "lispemul.h" /* for LispPTR */
|
|
||||||
LispPTR N_OP_aref2(LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
|
|
||||||
#endif
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#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
|
|
||||||
10
inc/arrayopsdefs.h
Normal file
10
inc/arrayopsdefs.h
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#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
|
||||||
26
inc/bb.h
26
inc/bb.h
@@ -389,7 +389,7 @@
|
|||||||
do_partial_transfer \
|
do_partial_transfer \
|
||||||
dst32addr++; \
|
dst32addr++; \
|
||||||
switch (op) \
|
switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner { DestGetsF(=) } break; \
|
case op_repl_src: ForInner { DestGetsF(=) } break; \
|
||||||
case op_fn_and: ForInner { DestGetsF(&=) } break; \
|
case op_fn_and: ForInner { DestGetsF(&=) } break; \
|
||||||
case op_fn_or: ForInner { DestGetsF(|=) } break; \
|
case op_fn_or: ForInner { DestGetsF(|=) } break; \
|
||||||
@@ -416,14 +416,14 @@
|
|||||||
if (aligned_loop) \
|
if (aligned_loop) \
|
||||||
{ \
|
{ \
|
||||||
if (src_comp) switch (op) \
|
if (src_comp) switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {*dst32addr++ = ~*src32addr++;} break; \
|
case op_repl_src: ForInner {*dst32addr++ = ~*src32addr++;} break; \
|
||||||
case op_fn_and: ForInner {*dst32addr++ &= ~*src32addr++;} break; \
|
case op_fn_and: ForInner {*dst32addr++ &= ~*src32addr++;} break; \
|
||||||
case op_fn_or: ForInner {*dst32addr++ |= ~*src32addr++;} break; \
|
case op_fn_or: ForInner {*dst32addr++ |= ~*src32addr++;} break; \
|
||||||
case op_fn_xor: ForInner {*dst32addr++ ^= ~*src32addr++;} break; \
|
case op_fn_xor: ForInner {*dst32addr++ ^= ~*src32addr++;} break; \
|
||||||
} \
|
} \
|
||||||
else switch (op) \
|
else switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {*dst32addr++ = *src32addr++;} break; \
|
case op_repl_src: ForInner {*dst32addr++ = *src32addr++;} break; \
|
||||||
case op_fn_and: ForInner {*dst32addr++ &= *src32addr++;} break; \
|
case op_fn_and: ForInner {*dst32addr++ &= *src32addr++;} break; \
|
||||||
case op_fn_or: ForInner {*dst32addr++ |= *src32addr++;} break; \
|
case op_fn_or: ForInner {*dst32addr++ |= *src32addr++;} break; \
|
||||||
@@ -433,14 +433,14 @@
|
|||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
if (src_comp) switch (op) \
|
if (src_comp) switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {GetSrcCF DestGetsF(=) } break; \
|
case op_repl_src: ForInner {GetSrcCF DestGetsF(=) } break; \
|
||||||
case op_fn_and: ForInner {GetSrcCF DestGetsF(&=) } break; \
|
case op_fn_and: ForInner {GetSrcCF DestGetsF(&=) } break; \
|
||||||
case op_fn_or: ForInner {GetSrcCF DestGetsF(|=) } break; \
|
case op_fn_or: ForInner {GetSrcCF DestGetsF(|=) } break; \
|
||||||
case op_fn_xor: ForInner {GetSrcCF DestGetsF(^=) } break; \
|
case op_fn_xor: ForInner {GetSrcCF DestGetsF(^=) } break; \
|
||||||
} \
|
} \
|
||||||
else switch (op) \
|
else switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {GetSrcF DestGetsF(=) } break; \
|
case op_repl_src: ForInner {GetSrcF DestGetsF(=) } break; \
|
||||||
case op_fn_and: ForInner {GetSrcF DestGetsF(&=) } break; \
|
case op_fn_and: ForInner {GetSrcF DestGetsF(&=) } break; \
|
||||||
case op_fn_or: ForInner {GetSrcF DestGetsF(|=) } break; \
|
case op_fn_or: ForInner {GetSrcF DestGetsF(|=) } break; \
|
||||||
@@ -470,14 +470,14 @@
|
|||||||
if (aligned_loop) \
|
if (aligned_loop) \
|
||||||
{ \
|
{ \
|
||||||
if (src_comp) switch (op) \
|
if (src_comp) switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {*dst32addr-- = ~*src32addr--;} break; \
|
case op_repl_src: ForInner {*dst32addr-- = ~*src32addr--;} break; \
|
||||||
case op_fn_and: ForInner {*dst32addr-- &= ~*src32addr--;} break; \
|
case op_fn_and: ForInner {*dst32addr-- &= ~*src32addr--;} break; \
|
||||||
case op_fn_or: ForInner {*dst32addr-- |= ~*src32addr--;} break; \
|
case op_fn_or: ForInner {*dst32addr-- |= ~*src32addr--;} break; \
|
||||||
case op_fn_xor: ForInner {*dst32addr-- ^= ~*src32addr--;} break; \
|
case op_fn_xor: ForInner {*dst32addr-- ^= ~*src32addr--;} break; \
|
||||||
} \
|
} \
|
||||||
else switch (op) \
|
else switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {*dst32addr-- = *src32addr--;} break; \
|
case op_repl_src: ForInner {*dst32addr-- = *src32addr--;} break; \
|
||||||
case op_fn_and: ForInner {*dst32addr-- &= *src32addr--;} break; \
|
case op_fn_and: ForInner {*dst32addr-- &= *src32addr--;} break; \
|
||||||
case op_fn_or: ForInner {*dst32addr-- |= *src32addr--;} break; \
|
case op_fn_or: ForInner {*dst32addr-- |= *src32addr--;} break; \
|
||||||
@@ -487,14 +487,14 @@
|
|||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
if (src_comp) switch (op) \
|
if (src_comp) switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {GetSrcCB DestGetsB(=) } break; \
|
case op_repl_src: ForInner {GetSrcCB DestGetsB(=) } break; \
|
||||||
case op_fn_and: ForInner {GetSrcCB DestGetsB(&=) } break; \
|
case op_fn_and: ForInner {GetSrcCB DestGetsB(&=) } break; \
|
||||||
case op_fn_or: ForInner {GetSrcCB DestGetsB(|=) } break; \
|
case op_fn_or: ForInner {GetSrcCB DestGetsB(|=) } break; \
|
||||||
case op_fn_xor: ForInner {GetSrcCB DestGetsB(^=) } break; \
|
case op_fn_xor: ForInner {GetSrcCB DestGetsB(^=) } break; \
|
||||||
} \
|
} \
|
||||||
else switch (op) \
|
else switch (op) \
|
||||||
{ register int cnt; \
|
{ int cnt; \
|
||||||
case op_repl_src: ForInner {GetSrcB DestGetsB(=) } break; \
|
case op_repl_src: ForInner {GetSrcB DestGetsB(=) } break; \
|
||||||
case op_fn_and: ForInner {GetSrcB DestGetsB(&=) } break; \
|
case op_fn_and: ForInner {GetSrcB DestGetsB(&=) } break; \
|
||||||
case op_fn_or: 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 */
|
/* However, YOU must set up the control variables that are used */
|
||||||
/* as "arguments" to the bitblt code: */
|
/* as "arguments" to the bitblt code: */
|
||||||
/* */
|
/* */
|
||||||
/* register DLword *srcbase, *dstbase; */
|
/* DLword *srcbase, *dstbase; */
|
||||||
/* int sx, dx, w, h, srcbpl, dstbpl, backwardflg; */
|
/* int sx, dx, w, h, srcbpl, dstbpl, backwardflg; */
|
||||||
/* int src_comp, op, gray, num_gray, curr_gray_line; */
|
/* int src_comp, op, gray, num_gray, curr_gray_line; */
|
||||||
/* */
|
/* */
|
||||||
@@ -713,9 +713,9 @@ int abc, dst32rbit, src32rbit, fwd; \
|
|||||||
unsigned int *OrigSrcAddr, *OrigDstAddr; \
|
unsigned int *OrigSrcAddr, *OrigDstAddr; \
|
||||||
int bb_fast; \
|
int bb_fast; \
|
||||||
unsigned int preloop_mask, postloop_mask, sdw_mask; \
|
unsigned int preloop_mask, postloop_mask, sdw_mask; \
|
||||||
register unsigned int *dst32addr, *src32addr; \
|
unsigned int *dst32addr, *src32addr; \
|
||||||
register unsigned int shS, savedS, newS; \
|
unsigned int shS, savedS, newS; \
|
||||||
register int srcRshift;
|
int srcRshift;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,36 +1,19 @@
|
|||||||
#ifndef BBTSUBDEFS_H
|
#ifndef BBTSUBDEFS_H
|
||||||
#define BBTSUBDEFS_H 1
|
#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.) *****/
|
|
||||||
|
|
||||||
/********************************************************/
|
/********************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* prropstyle is DEFINED when we want to use */
|
/* Don Charnley's bitblt code */
|
||||||
/* 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 */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
|
|
||||||
#if defined(SUNDISPLAY) && \
|
|
||||||
!defined(NOPIXRECT) && \
|
|
||||||
!defined(NEWBITBLT)
|
|
||||||
#define prropstyle 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void bitbltsub(LispPTR *argv);
|
void bitbltsub(LispPTR *argv);
|
||||||
LispPTR n_new_cursorin(DLword *baseaddr, int dx, int dy, int w, int h);
|
LispPTR n_new_cursorin(DLword *baseaddr, int dx, int dy, int w, int h);
|
||||||
LispPTR bitblt_bitmap(LispPTR *args);
|
LispPTR bitblt_bitmap(LispPTR *args);
|
||||||
LispPTR bitshade_bitmap(LispPTR *args);
|
LispPTR bitshade_bitmap(LispPTR *args);
|
||||||
#ifndef prropstyle
|
|
||||||
void bltchar(LispPTR *args);
|
void bltchar(LispPTR *args);
|
||||||
void newbltchar(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 ccfuncall(unsigned int atom_index, int argnum, int bytenum);
|
||||||
void tedit_bltchar(LispPTR *args);
|
void tedit_bltchar(LispPTR *args);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#ifndef BINDEFS_H
|
#ifndef BINDEFS_H
|
||||||
#define BINDEFS_H 1
|
#define BINDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_bin(register int tos);
|
LispPTR N_OP_bin(LispPTR tos);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef BINDSDEFS_H
|
#ifndef BINDSDEFS_H
|
||||||
#define BINDSDEFS_H 1
|
#define BINDSDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR *N_OP_bind(register LispPTR *stack_pointer, register LispPTR tos, int byte1, int byte2);
|
LispPTR *N_OP_bind(LispPTR *stack_pointer, LispPTR tos, int byte1, int byte2);
|
||||||
LispPTR *N_OP_unbind(register LispPTR *stack_pointer);
|
LispPTR *N_OP_unbind(LispPTR *stack_pointer);
|
||||||
LispPTR *N_OP_dunbind(register LispPTR *stack_pointer, register LispPTR tos);
|
LispPTR *N_OP_dunbind(LispPTR *stack_pointer, LispPTR tos);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -54,13 +54,6 @@ extern int DisplayRasterWidth;
|
|||||||
#define ShowCursor { (currentdsp->mouse_visible)(IOPage68K->dlmousex, \
|
#define ShowCursor { (currentdsp->mouse_visible)(IOPage68K->dlmousex, \
|
||||||
IOPage68K->dlmousey); }
|
IOPage68K->dlmousey); }
|
||||||
|
|
||||||
#elif defined(SUNDISPLAY) && defined(OLD_CURSOR)
|
|
||||||
extern struct winlock DisplayLockArea;
|
|
||||||
#define HideCursor \
|
|
||||||
ioctl( LispWindowFd, WINLOCKSCREEN, &DisplayLockArea)
|
|
||||||
|
|
||||||
#define ShowCursor \
|
|
||||||
ioctl( LispWindowFd, WINUNLOCKSCREEN, &DisplayLockArea)
|
|
||||||
#else
|
#else
|
||||||
extern DLword *EmCursorX68K,*EmCursorY68K;
|
extern DLword *EmCursorX68K,*EmCursorY68K;
|
||||||
#define HideCursor { taking_mouse_down();}
|
#define HideCursor { taking_mouse_down();}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef BITBLTDEFS_H
|
#ifndef BITBLTDEFS_H
|
||||||
#define BITBLTDEFS_H 1
|
#define BITBLTDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl,int tos);
|
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos);
|
||||||
int cursorin(DLword addrhi, DLword addrlo, int w, int h, int backward);
|
int cursorin(DLword addrhi, DLword addrlo, int w, int h, int backward);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifndef BLTDEFS_H
|
#ifndef BLTDEFS_H
|
||||||
#define BLTDEFS_H 1
|
#define BLTDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, register LispPTR wordcount);
|
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, LispPTR wordcount);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ static inline unsigned int swapx(unsigned int word) {
|
|||||||
/* */
|
/* */
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
static inline unsigned short byte_swap_word(unsigned short word) {
|
static inline unsigned short byte_swap_word(unsigned short word) {
|
||||||
return (((word >> 8) & 0xff) | ((word & 0xff) << 8));
|
return ((word >> 8) | (unsigned short)((word & 0xff) << 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
void byte_swap_page(unsigned short *page, int wordcount);
|
void byte_swap_page(unsigned short *page, int wordcount);
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
#define CAR_CDRDEFS_H 1
|
#define CAR_CDRDEFS_H 1
|
||||||
#include "cell.h" /* for ConsCell */
|
#include "cell.h" /* for ConsCell */
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR car(register LispPTR datum);
|
LispPTR car(LispPTR datum);
|
||||||
LispPTR cdr(register LispPTR datum);
|
LispPTR cdr(LispPTR datum);
|
||||||
LispPTR rplaca(register LispPTR x, register LispPTR y);
|
LispPTR rplaca(LispPTR x, LispPTR y);
|
||||||
LispPTR rplacd(LispPTR x, register LispPTR y);
|
LispPTR rplacd(LispPTR x, LispPTR y);
|
||||||
LispPTR N_OP_car(register LispPTR tos);
|
LispPTR N_OP_car(LispPTR tos);
|
||||||
LispPTR N_OP_cdr(register LispPTR tos);
|
LispPTR N_OP_cdr(LispPTR tos);
|
||||||
LispPTR N_OP_rplaca(register LispPTR tosm1, register LispPTR tos);
|
LispPTR N_OP_rplaca(LispPTR tosm1, LispPTR tos);
|
||||||
LispPTR N_OP_rplacd(register LispPTR tosm1, register LispPTR tos);
|
LispPTR N_OP_rplacd(LispPTR tosm1, LispPTR tos);
|
||||||
ConsCell *find_close_prior_cell(struct conspage *page, LispPTR oldcell);
|
ConsCell *find_close_prior_cell(struct conspage *page, LispPTR oldcell);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
33
inc/cell.h
Executable file → Normal file
33
inc/cell.h
Executable file → Normal file
@@ -9,6 +9,8 @@
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
/*
|
/*
|
||||||
File Name : cell.h
|
File Name : cell.h
|
||||||
@@ -20,8 +22,8 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
#include "adr68k.h" /* for NativeAligned4FromLPage, NativeAligned4FromLAddr */
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "version.h" /* for BIGVM, NEWCDRCODING, BIGATOMS */
|
|
||||||
|
|
||||||
/* CONS CELL (LISTP) definitions moved to lispemulater.h */
|
/* CONS CELL (LISTP) definitions moved to lispemulater.h */
|
||||||
|
|
||||||
@@ -100,13 +102,13 @@ struct conspage {
|
|||||||
/* Following MACROs for Conspage */
|
/* Following MACROs for Conspage */
|
||||||
|
|
||||||
/* lisp_ptr is LISP pointer, returns 68k ptr points struct conspage obj */
|
/* lisp_ptr is LISP pointer, returns 68k ptr points struct conspage obj */
|
||||||
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)Addr68k_from_LPAGE(POINTER_PAGEBASE(lisp_ptr))
|
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)NativeAligned4FromLPage(POINTER_PAGEBASE(lisp_ptr))
|
||||||
|
|
||||||
#define GetNewCell_68k(conspage68k) \
|
#define GetNewCell_68k(conspage68k) \
|
||||||
(ConsCell *)(((DLword *)(conspage68k)) + (unsigned)((conspage68k)->next_cell))
|
(ConsCell *)(((DLword *)(conspage68k)) + (unsigned)((conspage68k)->next_cell))
|
||||||
|
|
||||||
/* page : LISP page */
|
/* page : LISP page */
|
||||||
#define GetCONSCount(page) (((struct conspage *)Addr68k_from_LPAGE(page))->count)
|
#define GetCONSCount(page) (((struct conspage *)NativeAligned4FromLPage(page))->count)
|
||||||
|
|
||||||
#ifndef BYTESWAP
|
#ifndef BYTESWAP
|
||||||
/* For chaining together free cons cells on a page */
|
/* For chaining together free cons cells on a page */
|
||||||
@@ -376,20 +378,16 @@ struct cadr_cell {
|
|||||||
#else
|
#else
|
||||||
/* Good for old LITATOMS and new NEW-ATOMs */
|
/* Good for old LITATOMS and new NEW-ATOMs */
|
||||||
#define GetDEFCELL68k(index) \
|
#define GetDEFCELL68k(index) \
|
||||||
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET) \
|
((((index) & SEGMASK) != 0) ? GetDEFCELLnew(index) : GetDEFCELLlitatom(index))
|
||||||
: GetDEFCELLlitatom(index))
|
|
||||||
|
|
||||||
#define GetVALCELL68k(index) \
|
#define GetVALCELL68k(index) \
|
||||||
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET) \
|
((((index) & SEGMASK) != 0) ? GetVALCELLnew(index) : GetVALCELLlitatom(index))
|
||||||
: GetVALCELLlitatom(index))
|
|
||||||
|
|
||||||
#define GetPnameCell(index) \
|
#define GetPnameCell(index) \
|
||||||
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET) \
|
((((index) & SEGMASK) != 0) ? GetPnameCellnew(index) : GetPnameCelllitatom(index))
|
||||||
: GetPnameCelllitatom(index))
|
|
||||||
|
|
||||||
#define GetPropCell(index) \
|
#define GetPropCell(index) \
|
||||||
((((index) & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET) \
|
((((index) & SEGMASK) != 0) ? GetPropCellnew(index) : GetPropCelllitatom(index))
|
||||||
: GetPropCelllitatom(index))
|
|
||||||
|
|
||||||
/* Good only for old-style LITATOMS */
|
/* Good only for old-style LITATOMS */
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
@@ -405,10 +403,13 @@ struct cadr_cell {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Good only for new-style NEW-ATOMs */
|
/* Good only for new-style NEW-ATOMs */
|
||||||
#define GetDEFCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET)
|
/* Note: the _OFFSET values are in units of DLword so need to be adjusted before doing pointer
|
||||||
#define GetVALCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET)
|
* arithmetic since we now have native pointers to cells not DLwords
|
||||||
#define GetPnameCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET)
|
*/
|
||||||
#define GetPropCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET)
|
#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))
|
||||||
|
|
||||||
#endif /* BIGATOMS */
|
#endif /* BIGATOMS */
|
||||||
|
|
||||||
@@ -416,7 +417,7 @@ struct cadr_cell {
|
|||||||
|
|
||||||
#define S_N_CHECKANDCADR(sour, dest, tos) \
|
#define S_N_CHECKANDCADR(sour, dest, tos) \
|
||||||
{ \
|
{ \
|
||||||
register LispPTR parm = sour; \
|
LispPTR parm = sour; \
|
||||||
if (GetTypeNumber(parm) != TYPE_LISTP) { \
|
if (GetTypeNumber(parm) != TYPE_LISTP) { \
|
||||||
ERROR_EXIT(tos); \
|
ERROR_EXIT(tos); \
|
||||||
} else \
|
} else \
|
||||||
|
|||||||
@@ -3,6 +3,4 @@
|
|||||||
void stab(void);
|
void stab(void);
|
||||||
void warn(const char *s);
|
void warn(const char *s);
|
||||||
int error(const char *s);
|
int error(const char *s);
|
||||||
int stackcheck(void);
|
|
||||||
void stackoverflow(void);
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
#define CONSPAGEDEFS_H 1
|
#define CONSPAGEDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
struct conspage *next_conspage(void);
|
struct conspage *next_conspage(void);
|
||||||
LispPTR N_OP_cons(register int cons_car, register int cons_cdr);
|
LispPTR N_OP_cons(int cons_car, int cons_cdr);
|
||||||
LispPTR cons(LispPTR cons_car, LispPTR cons_cdr);
|
LispPTR cons(LispPTR cons_car, LispPTR cons_cdr);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ extern int flushing;
|
|||||||
#define DBPRINT(X) do {printf X ; if (flushing) fflush(stdout); } while(0)
|
#define DBPRINT(X) do {printf X ; if (flushing) fflush(stdout); } while(0)
|
||||||
#define DEBUGGER(X) X
|
#define DEBUGGER(X) X
|
||||||
#else
|
#else
|
||||||
#define DBPRINT(X) do {} while(0)
|
#define DBPRINT(X) if (0) do {printf X ; } while(0)
|
||||||
#define DEBUGGER(X)
|
#define DEBUGGER(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ extern int flushing;
|
|||||||
#define TRACER(X) X
|
#define TRACER(X) X
|
||||||
#else /* TRACE */
|
#else /* TRACE */
|
||||||
|
|
||||||
#define TPRINT(X) do { } while (0)
|
#define TPRINT(X) if (0) do { printf X; } while (0)
|
||||||
#define TRACER(X)
|
#define TRACER(X)
|
||||||
#endif /* TRACE */
|
#endif /* TRACE */
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ extern int flushing;
|
|||||||
#define OPTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
#define OPTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
||||||
#define OPTRACER(X) X
|
#define OPTRACER(X) X
|
||||||
#else
|
#else
|
||||||
#define OPTPRINT(X) do { } while (0)
|
#define OPTPRINT(X) if (0) do { printf X; } while (0)
|
||||||
#define OPTRACER(X)
|
#define OPTRACER(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ extern int flushing;
|
|||||||
#define FNTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
#define FNTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
||||||
#define FNTRACER(X) X
|
#define FNTRACER(X) X
|
||||||
#else
|
#else
|
||||||
#define FNTPRINT(X) do { } while (0)
|
#define FNTPRINT(X) if (0) do { printf X; } while (0)
|
||||||
#define FNTRACER(X)
|
#define FNTRACER(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ extern int flushing;
|
|||||||
#define FNCHKPRINT(X) do { printf X ; if (flushing) fflush(stdout); } while (0)
|
#define FNCHKPRINT(X) do { printf X ; if (flushing) fflush(stdout); } while (0)
|
||||||
#define FNCHECKER(X) X
|
#define FNCHECKER(X) X
|
||||||
#else
|
#else
|
||||||
#define FNCHKPRINT(X) do { } while (0)
|
#define FNCHKPRINT(X) if (0) do { printf X; } while (0)
|
||||||
#define FNCHECKER(X)
|
#define FNCHECKER(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
11
inc/devif.h
11
inc/devif.h
@@ -264,11 +264,12 @@ typedef struct
|
|||||||
|
|
||||||
|
|
||||||
#ifdef XWINDOW
|
#ifdef XWINDOW
|
||||||
#define DefineCursor(display, window, mycursor) { \
|
#define DefineCursor(dsp, window, mycursor) \
|
||||||
XLOCK;\
|
do { \
|
||||||
XDefineCursor( display, window, *(mycursor) );\
|
XLOCK; \
|
||||||
XUNLOCK;\
|
XDefineCursor((dsp)->display_id, window, *(mycursor) ); \
|
||||||
}
|
XUNLOCK(dsp); \
|
||||||
|
} while (0)
|
||||||
#endif /* XWINDOW */
|
#endif /* XWINDOW */
|
||||||
|
|
||||||
#define OUTER_SB_WIDTH(dsp) ((dsp)->ScrollBarWidth + 2*((dsp)->InternalBorderWidth))
|
#define OUTER_SB_WIDTH(dsp) ((dsp)->ScrollBarWidth + 2*((dsp)->InternalBorderWidth))
|
||||||
|
|||||||
@@ -1,6 +1,65 @@
|
|||||||
#ifndef DIRDEFS_H
|
#ifndef DIRDEFS_H
|
||||||
#define DIRDEFS_H 1
|
#define DIRDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#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
|
#ifdef DOS
|
||||||
int make_old_version(char *old, char *file);
|
int make_old_version(char *old, char *file);
|
||||||
#endif
|
#endif
|
||||||
@@ -8,7 +67,7 @@ int make_old_version(char *old, char *file);
|
|||||||
void print_finfo(FINFO *fp);
|
void print_finfo(FINFO *fp);
|
||||||
#endif
|
#endif
|
||||||
int init_finfo(void);
|
int init_finfo(void);
|
||||||
LispPTR COM_gen_files(register LispPTR *args);
|
LispPTR COM_gen_files(LispPTR *args);
|
||||||
LispPTR COM_next_file(register LispPTR *args);
|
LispPTR COM_next_file(LispPTR *args);
|
||||||
LispPTR COM_finish_finfo(register LispPTR *args);
|
LispPTR COM_finish_finfo(LispPTR *args);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
#include "lispemul.h" /* for DLword */
|
#include "lispemul.h" /* for DLword */
|
||||||
#include "version.h" /* for UNSIGNED */
|
|
||||||
|
|
||||||
#define BCPLDISPLAY stdout
|
#define BCPLDISPLAY stdout
|
||||||
|
|
||||||
@@ -74,13 +73,4 @@ extern DLword *DisplayRegion68k;
|
|||||||
#undef DISPLAYBUFFER
|
#undef DISPLAYBUFFER
|
||||||
#endif /* XWINDOW */
|
#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
|
#endif
|
||||||
|
|||||||
@@ -6,20 +6,20 @@ void separate_host(char *lfname, char *host, char *drive);
|
|||||||
#else
|
#else
|
||||||
void separate_host(char *lfname, char *host);
|
void separate_host(char *lfname, char *host);
|
||||||
#endif
|
#endif
|
||||||
LispPTR COM_openfile(register LispPTR *args);
|
LispPTR COM_openfile(LispPTR *args);
|
||||||
LispPTR COM_closefile(register LispPTR *args);
|
LispPTR COM_closefile(LispPTR *args);
|
||||||
LispPTR DSK_getfilename(register LispPTR *args);
|
LispPTR DSK_getfilename(LispPTR *args);
|
||||||
LispPTR DSK_deletefile(register LispPTR *args);
|
LispPTR DSK_deletefile(LispPTR *args);
|
||||||
LispPTR DSK_renamefile(register LispPTR *args);
|
LispPTR DSK_renamefile(LispPTR *args);
|
||||||
LispPTR DSK_directorynamep(register LispPTR *args);
|
LispPTR DSK_directorynamep(LispPTR *args);
|
||||||
LispPTR COM_getfileinfo(register LispPTR *args);
|
LispPTR COM_getfileinfo(LispPTR *args);
|
||||||
LispPTR COM_setfileinfo(register LispPTR *args);
|
LispPTR COM_setfileinfo(LispPTR *args);
|
||||||
LispPTR COM_readpage(register LispPTR *args);
|
LispPTR COM_readpage(LispPTR *args);
|
||||||
LispPTR COM_writepage(register LispPTR *args);
|
LispPTR COM_writepage(LispPTR *args);
|
||||||
LispPTR COM_truncatefile(register LispPTR *args);
|
LispPTR COM_truncatefile(LispPTR *args);
|
||||||
LispPTR COM_changedir(register LispPTR *args);
|
LispPTR COM_changedir(LispPTR *args);
|
||||||
LispPTR COM_getfreeblock(register LispPTR *args);
|
LispPTR COM_getfreeblock(LispPTR *args);
|
||||||
void separate_version(char *name, char *ver, int checkp);
|
void separate_version(char *name, char *ver, int checkp);
|
||||||
int unpack_filename(char *file, char *dir, char *name, char *ver, int checkp);
|
int unpack_filename(char *file, char *dir, char *name, char *ver, int checkp);
|
||||||
int true_name(register char *path);
|
int true_name(char *path);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ void DSP_dspbout(LispPTR *args);
|
|||||||
void DSP_showdisplay(LispPTR *args);
|
void DSP_showdisplay(LispPTR *args);
|
||||||
LispPTR DSP_VideoColor(LispPTR *args);
|
LispPTR DSP_VideoColor(LispPTR *args);
|
||||||
void DSP_Cursor(LispPTR *args, int argnum);
|
void DSP_Cursor(LispPTR *args, int argnum);
|
||||||
void DSP_SetMousePos(register LispPTR *args);
|
void DSP_SetMousePos(LispPTR *args);
|
||||||
LispPTR DSP_ScreenWidth(LispPTR *args);
|
LispPTR DSP_ScreenWidth(LispPTR *args);
|
||||||
LispPTR DSP_ScreenHight(LispPTR *args);
|
LispPTR DSP_ScreenHight(LispPTR *args);
|
||||||
void flip_cursor(void);
|
void flip_cursor(void);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#ifndef EQFDEFS_H
|
#ifndef EQFDEFS_H
|
||||||
#define EQFDEFS_H 1
|
#define EQFDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_clequal(register int arg1, register int arg2);
|
LispPTR N_OP_clequal(LispPTR arg1, LispPTR arg2);
|
||||||
LispPTR N_OP_eqlop(register int arg1, register int arg2);
|
LispPTR N_OP_eqlop(LispPTR arg1, LispPTR arg2);
|
||||||
LispPTR N_OP_equal(register int arg1, register int arg2);
|
LispPTR N_OP_equal(LispPTR arg1, LispPTR arg2);
|
||||||
LispPTR N_OP_eqq(register int arg1, register int arg2);
|
LispPTR N_OP_eqq(LispPTR arg1, LispPTR arg2);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -13,5 +13,5 @@ int *ether_debug(void);
|
|||||||
LispPTR check_ether(void);
|
LispPTR check_ether(void);
|
||||||
void init_ifpage_ether(void);
|
void init_ifpage_ether(void);
|
||||||
void init_ether(void);
|
void init_ether(void);
|
||||||
LispPTR check_sum(register LispPTR *args);
|
LispPTR check_sum(LispPTR *args);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#ifndef FINDKEYDEFS_H
|
#ifndef FINDKEYDEFS_H
|
||||||
#define FINDKEYDEFS_H 1
|
#define FINDKEYDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_findkey(register LispPTR tos, register int byte);
|
LispPTR N_OP_findkey(LispPTR tos, int byte);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
#define FVARDEFS_H 1
|
#define FVARDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "stack.h" /* for fnhead, frameex1 */
|
#include "stack.h" /* for fnhead, frameex1 */
|
||||||
LispPTR N_OP_fvarn(register int n);
|
LispPTR N_OP_fvarn(int n);
|
||||||
LispPTR N_OP_stkscan(LispPTR tos);
|
LispPTR N_OP_stkscan(LispPTR tos);
|
||||||
LispPTR N_OP_fvar_(register LispPTR tos, register int n);
|
LispPTR N_OP_fvar_(LispPTR tos, int n);
|
||||||
void nnewframe(register struct frameex1 *newpfra2, register DLword *achain, register int name);
|
void nnewframe(struct frameex1 *newpfra2, DLword *achain, int name);
|
||||||
void nfvlookup(struct frameex1 *apframe1, register DLword *achain, register struct fnhead *apfnhead1);
|
void nfvlookup(struct frameex1 *apframe1, DLword *achain, struct fnhead *apfnhead1);
|
||||||
LispPTR native_newframe(int slot);
|
LispPTR native_newframe(int slot);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "version.h" /* for USHORT */
|
#include "version.h" /* for USHORT */
|
||||||
|
#include "gchtfinddefs.h"
|
||||||
|
|
||||||
#define ADDREF 0 /* for gclookup routine. */
|
#define ADDREF 0 /* for gclookup routine. */
|
||||||
#define DELREF 1 /* for gclookup routine. */
|
#define DELREF 1 /* for gclookup routine. */
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifndef GCSCANDEFS_H
|
#ifndef GCSCANDEFS_H
|
||||||
#define GCSCANDEFS_H 1
|
#define GCSCANDEFS_H 1
|
||||||
#include "lispemul.h" /* for DLword */
|
#include "lispemul.h" /* for DLword */
|
||||||
DLword gcscan1(register int probe);
|
DLword gcscan1(int probe);
|
||||||
DLword gcscan2(register int probe);
|
DLword gcscan2(int probe);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#ifndef GVAR2DEFS_H
|
#ifndef GVAR2DEFS_H
|
||||||
#define GVAR2DEFS_H 1
|
#define GVAR2DEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_gvar_(register LispPTR tos, unsigned int atom_index);
|
LispPTR N_OP_gvar_(LispPTR tos, unsigned int atom_index);
|
||||||
LispPTR N_OP_rplptr(register LispPTR tos_m_1, register LispPTR tos, unsigned int alpha);
|
LispPTR N_OP_rplptr(LispPTR tos_m_1, LispPTR tos, unsigned int alpha);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ void display_before_exit(void);
|
|||||||
void flush_display_buffer(void);
|
void flush_display_buffer(void);
|
||||||
void flush_display_region(int x, int y, int w, int h);
|
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 byte_swapped_displayregion(int x, int y, int w, int h);
|
||||||
void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h);
|
void flush_display_lineregion(UNSIGNED x, DLword *ybase, int w, int h);
|
||||||
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h);
|
void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, int w, int h);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
175
inc/inlineC.h
175
inc/inlineC.h
@@ -101,9 +101,9 @@
|
|||||||
#define OPCAR \
|
#define OPCAR \
|
||||||
do { \
|
do { \
|
||||||
if (Listp(TOPOFSTACK)) { \
|
if (Listp(TOPOFSTACK)) { \
|
||||||
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
|
ConsCell *DATUM68K = (ConsCell *)NativeAligned4FromLAddr(TOPOFSTACK); \
|
||||||
if (DATUM68K->cdr_code == CDR_INDIRECT) { \
|
if (DATUM68K->cdr_code == CDR_INDIRECT) { \
|
||||||
TOPOFSTACK = ((LispPTR)((ConsCell *)Addr68k_from_LADDR(DATUM68K->car_field))->car_field); \
|
TOPOFSTACK = ((LispPTR)((ConsCell *)NativeAligned4FromLAddr(DATUM68K->car_field))->car_field); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} else { \
|
} else { \
|
||||||
TOPOFSTACK = ((LispPTR)DATUM68K->car_field); \
|
TOPOFSTACK = ((LispPTR)DATUM68K->car_field); \
|
||||||
@@ -122,8 +122,8 @@
|
|||||||
#define OPCDR \
|
#define OPCDR \
|
||||||
do { \
|
do { \
|
||||||
if (Listp(TOPOFSTACK)) { \
|
if (Listp(TOPOFSTACK)) { \
|
||||||
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
|
ConsCell *DATUM68K = (ConsCell *)(NativeAligned4FromLAddr(TOPOFSTACK)); \
|
||||||
register int CDRCODEX = DATUM68K->cdr_code; \
|
int CDRCODEX = DATUM68K->cdr_code; \
|
||||||
if (CDRCODEX == CDR_NIL) { \
|
if (CDRCODEX == CDR_NIL) { \
|
||||||
/* cdr-nil */ \
|
/* cdr-nil */ \
|
||||||
TOPOFSTACK = (NIL_PTR); \
|
TOPOFSTACK = (NIL_PTR); \
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
} else { \
|
} else { \
|
||||||
/* cdr-differentpage */ \
|
/* cdr-differentpage */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
((ConsCell *)(Addr68k_from_LADDR((TOPOFSTACK) + (CDRCODEX << 1))))->car_field; \
|
((ConsCell *)(NativeAligned4FromLAddr((TOPOFSTACK) + (CDRCODEX << 1))))->car_field; \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} \
|
} \
|
||||||
} else if (TOPOFSTACK == NIL_PTR) { \
|
} else if (TOPOFSTACK == NIL_PTR) { \
|
||||||
@@ -152,8 +152,8 @@
|
|||||||
#define OPCDR \
|
#define OPCDR \
|
||||||
do { \
|
do { \
|
||||||
if (Listp(TOPOFSTACK)) { \
|
if (Listp(TOPOFSTACK)) { \
|
||||||
register ConsCell *DATUM68K = (ConsCell *)(Addr68k_from_LADDR(TOPOFSTACK)); \
|
ConsCell *DATUM68K = (ConsCell *)(NativeAligned4FromLAddr(TOPOFSTACK)); \
|
||||||
register int CDRCODEX = DATUM68K->cdr_code; \
|
int CDRCODEX = DATUM68K->cdr_code; \
|
||||||
if (CDRCODEX == CDR_NIL) { \
|
if (CDRCODEX == CDR_NIL) { \
|
||||||
/* cdr-nil */ \
|
/* cdr-nil */ \
|
||||||
TOPOFSTACK = (NIL_PTR); \
|
TOPOFSTACK = (NIL_PTR); \
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
} else { \
|
} else { \
|
||||||
/* cdr-differentpage */ \
|
/* cdr-differentpage */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
((ConsCell *)(Addr68k_from_LADDR(POINTER_PAGEBASE(TOPOFSTACK) + (CDRCODEX << 1)))) \
|
((ConsCell *)(NativeAligned4FromLAddr(POINTER_PAGEBASE(TOPOFSTACK) + (CDRCODEX << 1)))) \
|
||||||
->car_field; \
|
->car_field; \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} \
|
} \
|
||||||
@@ -239,19 +239,19 @@
|
|||||||
#define GETBASE_N(N) \
|
#define GETBASE_N(N) \
|
||||||
do { \
|
do { \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
(S_POSITIVE | GETWORD((DLword *)Addr68k_from_LADDR((POINTERMASK & TOPOFSTACK) + (N)))); \
|
(S_POSITIVE | GETWORD((DLword *)NativeAligned2FromLAddr((POINTERMASK & TOPOFSTACK) + (N)))); \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define GETBASEPTR_N(N) \
|
#define GETBASEPTR_N(N) \
|
||||||
do { \
|
do { \
|
||||||
TOPOFSTACK = (POINTERMASK & *((LispPTR *)Addr68k_from_LADDR((POINTERMASK & TOPOFSTACK) + (N)))); \
|
TOPOFSTACK = (POINTERMASK & *((LispPTR *)NativeAligned4FromLAddr((POINTERMASK & TOPOFSTACK) + (N)))); \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define PUTBASEBYTE \
|
#define PUTBASEBYTE \
|
||||||
do { \
|
do { \
|
||||||
register int byteoffset; \
|
LispPTR byteoffset; \
|
||||||
register char *p_data; \
|
char *p_data; \
|
||||||
if (((SEGMASK & TOPOFSTACK) != S_POSITIVE) || ((unsigned short)TOPOFSTACK >= 256)) \
|
if (((SEGMASK & TOPOFSTACK) != S_POSITIVE) || ((unsigned short)TOPOFSTACK >= 256)) \
|
||||||
goto op_ufn; \
|
goto op_ufn; \
|
||||||
byteoffset = GET_TOS_1; \
|
byteoffset = GET_TOS_1; \
|
||||||
@@ -261,12 +261,12 @@
|
|||||||
default: \
|
default: \
|
||||||
goto op_ufn; \
|
goto op_ufn; \
|
||||||
/*** if( GetTypeNumber(byteoffset) == TYPE_FIXP ) \
|
/*** if( GetTypeNumber(byteoffset) == TYPE_FIXP ) \
|
||||||
byteoffset = *((int *)Addr68k_from_LADDR(byteoffset)); \
|
byteoffset = *((int *)NativeAligned4FromLAddr(byteoffset)); \
|
||||||
else \
|
else \
|
||||||
goto op_ufn; ***/ \
|
goto op_ufn; ***/ \
|
||||||
} \
|
} \
|
||||||
--CSTKPTRL; \
|
--CSTKPTRL; \
|
||||||
p_data = (char *)Addr68k_from_LADDR(POINTERMASK & (POP_TOS_1)) + byteoffset; \
|
p_data = (char *)NativeAligned2FromLAddr(POINTERMASK & (POP_TOS_1)) + byteoffset; \
|
||||||
GETBYTE(p_data) = 0xFF & TOPOFSTACK; \
|
GETBYTE(p_data) = 0xFF & TOPOFSTACK; \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} while (0)
|
} while (0)
|
||||||
@@ -278,31 +278,30 @@
|
|||||||
case S_NEGATIVE: TOPOFSTACK |= 0xFFFF0000; break; \
|
case S_NEGATIVE: TOPOFSTACK |= 0xFFFF0000; break; \
|
||||||
default: \
|
default: \
|
||||||
if (GetTypeNumber(TOPOFSTACK) == TYPE_FIXP) \
|
if (GetTypeNumber(TOPOFSTACK) == TYPE_FIXP) \
|
||||||
TOPOFSTACK = *((int *)Addr68k_from_LADDR(TOPOFSTACK)); \
|
TOPOFSTACK = *NativeAligned4FromLAddr(TOPOFSTACK); \
|
||||||
else \
|
else \
|
||||||
goto op_ufn; \
|
goto op_ufn; \
|
||||||
} \
|
} \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = S_POSITIVE | (0xFF & \
|
||||||
(0xFF & (GETBYTE((char *)Addr68k_from_LADDR((POINTERMASK & (POP_TOS_1))) + TOPOFSTACK))) | \
|
(GETBYTE((char *)NativeAligned2FromLAddr((POINTERMASK & (POP_TOS_1))) + TOPOFSTACK))); \
|
||||||
S_POSITIVE; \
|
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define PUTBASEPTR_N(n) \
|
#define PUTBASEPTR_N(n) \
|
||||||
do { \
|
do { \
|
||||||
register int base; \
|
LispPTR base; \
|
||||||
base = POINTERMASK & POP_TOS_1; \
|
base = POINTERMASK & POP_TOS_1; \
|
||||||
*((LispPTR *)Addr68k_from_LADDR(base + (n))) = TOPOFSTACK; \
|
*((LispPTR *)NativeAligned4FromLAddr(base + (n))) = TOPOFSTACK; \
|
||||||
TOPOFSTACK = base; \
|
TOPOFSTACK = base; \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define PUTBASE_N(n) \
|
#define PUTBASE_N(n) \
|
||||||
do { \
|
do { \
|
||||||
register int base; \
|
LispPTR base; \
|
||||||
if (GetHiWord(TOPOFSTACK) != (S_POSITIVE >> 16)) goto op_ufn; \
|
if (GetHiWord(TOPOFSTACK) != (S_POSITIVE >> 16)) goto op_ufn; \
|
||||||
base = POINTERMASK & POP_TOS_1; \
|
base = POINTERMASK & POP_TOS_1; \
|
||||||
GETWORD((DLword *)Addr68k_from_LADDR(base + (n))) = GetLoWord(TOPOFSTACK); \
|
GETWORD((DLword *)NativeAligned2FromLAddr(base + (n))) = GetLoWord(TOPOFSTACK); \
|
||||||
TOPOFSTACK = base; \
|
TOPOFSTACK = base; \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
@@ -337,9 +336,9 @@
|
|||||||
#elif defined(BIGVM)
|
#elif defined(BIGVM)
|
||||||
#define GVAR(x) \
|
#define GVAR(x) \
|
||||||
do { \
|
do { \
|
||||||
register int tx = x; \
|
LispPTR tx = x; \
|
||||||
if (tx & SEGMASK) { \
|
if (tx & SEGMASK) { \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR((tx) + NEWATOM_VALUE_OFFSET))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr((tx) + NEWATOM_VALUE_OFFSET))); \
|
||||||
} else \
|
} else \
|
||||||
PUSH(GetLongWord((LispPTR *)AtomSpace + (tx * 5) + NEWATOM_VALUE_PTROFF)); \
|
PUSH(GetLongWord((LispPTR *)AtomSpace + (tx * 5) + NEWATOM_VALUE_PTROFF)); \
|
||||||
\
|
\
|
||||||
@@ -348,9 +347,9 @@
|
|||||||
#else
|
#else
|
||||||
#define GVAR(x) \
|
#define GVAR(x) \
|
||||||
do { \
|
do { \
|
||||||
register int tx = x; \
|
LispPTR tx = x; \
|
||||||
if (tx & SEGMASK) { \
|
if (tx & SEGMASK) { \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR((tx) + NEWATOM_VALUE_OFFSET))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr((tx) + NEWATOM_VALUE_OFFSET))); \
|
||||||
} else \
|
} else \
|
||||||
PUSH(GetLongWord(Valspace + ((tx) << 1))); \
|
PUSH(GetLongWord(Valspace + ((tx) << 1))); \
|
||||||
\
|
\
|
||||||
@@ -366,7 +365,7 @@
|
|||||||
|
|
||||||
#define SWAP \
|
#define SWAP \
|
||||||
do { \
|
do { \
|
||||||
register LispPTR temp; \
|
LispPTR temp; \
|
||||||
temp = GET_TOS_1; \
|
temp = GET_TOS_1; \
|
||||||
GET_TOS_1 = TOPOFSTACK; \
|
GET_TOS_1 = TOPOFSTACK; \
|
||||||
TOPOFSTACK = temp; \
|
TOPOFSTACK = temp; \
|
||||||
@@ -421,15 +420,15 @@
|
|||||||
|
|
||||||
#define BIN \
|
#define BIN \
|
||||||
do { \
|
do { \
|
||||||
register Stream *stream68k; /* stream instance on TOS */ \
|
Stream *stream68k; /* stream instance on TOS */ \
|
||||||
register char *buff68k; /* pointer to BUFF */ \
|
char *buff68k; /* pointer to BUFF */ \
|
||||||
\
|
\
|
||||||
if (GetTypeNumber(TOPOFSTACK) == TYPE_STREAM) { \
|
if (GetTypeNumber(TOPOFSTACK) == TYPE_STREAM) { \
|
||||||
stream68k = (Stream *)Addr68k_from_LADDR(TOPOFSTACK); \
|
stream68k = (Stream *)NativeAligned4FromLAddr(TOPOFSTACK); \
|
||||||
if ((!stream68k->BINABLE) || (stream68k->COFFSET >= stream68k->CBUFSIZE)) goto op_ufn; \
|
if ((!stream68k->BINABLE) || (stream68k->COFFSET >= stream68k->CBUFSIZE)) goto op_ufn; \
|
||||||
\
|
\
|
||||||
/* get BUFFER instance */ \
|
/* get BUFFER instance */ \
|
||||||
buff68k = (char *)Addr68k_from_LADDR(stream68k->CBUFPTR); \
|
buff68k = (char *)NativeAligned2FromLAddr(stream68k->CBUFPTR); \
|
||||||
\
|
\
|
||||||
/* get BYTE data and set it to TOS */ \
|
/* get BYTE data and set it to TOS */ \
|
||||||
TOPOFSTACK = (S_POSITIVE | (Get_BYTE(buff68k + (stream68k->COFFSET)++))); \
|
TOPOFSTACK = (S_POSITIVE | (Get_BYTE(buff68k + (stream68k->COFFSET)++))); \
|
||||||
@@ -496,11 +495,11 @@
|
|||||||
|
|
||||||
#define BIND \
|
#define BIND \
|
||||||
do { \
|
do { \
|
||||||
register int byte = Get_BYTE_PCMAC1; \
|
LispPTR byte = Get_BYTE_PCMAC1; \
|
||||||
register unsigned n1; \
|
unsigned n1; \
|
||||||
register unsigned n2; \
|
unsigned n2; \
|
||||||
register LispPTR *ppvar; \
|
LispPTR *ppvar; \
|
||||||
register int i; \
|
int i; \
|
||||||
n1 = byte >> 4; \
|
n1 = byte >> 4; \
|
||||||
n2 = byte & 0xf; \
|
n2 = byte & 0xf; \
|
||||||
ppvar = (LispPTR *)PVAR + 1 + Get_BYTE_PCMAC2; \
|
ppvar = (LispPTR *)PVAR + 1 + Get_BYTE_PCMAC2; \
|
||||||
@@ -517,10 +516,10 @@
|
|||||||
|
|
||||||
#define UNBIND \
|
#define UNBIND \
|
||||||
do { \
|
do { \
|
||||||
register int num; \
|
int num; \
|
||||||
register LispPTR *ppvar; \
|
LispPTR *ppvar; \
|
||||||
register int i; \
|
int i; \
|
||||||
register LispPTR value; \
|
LispPTR value; \
|
||||||
for (; (((int)*--CSTKPTRL) >= 0);) \
|
for (; (((int)*--CSTKPTRL) >= 0);) \
|
||||||
; \
|
; \
|
||||||
value = *CSTKPTR; \
|
value = *CSTKPTR; \
|
||||||
@@ -532,10 +531,10 @@
|
|||||||
|
|
||||||
#define DUNBIND \
|
#define DUNBIND \
|
||||||
do { \
|
do { \
|
||||||
register int num; \
|
int num; \
|
||||||
register LispPTR *ppvar; \
|
LispPTR *ppvar; \
|
||||||
register int i; \
|
int i; \
|
||||||
register LispPTR value; \
|
LispPTR value; \
|
||||||
if ((int)TOPOFSTACK < 0) { \
|
if ((int)TOPOFSTACK < 0) { \
|
||||||
num = (~TOPOFSTACK) >> 16; \
|
num = (~TOPOFSTACK) >> 16; \
|
||||||
if (num != 0) { \
|
if (num != 0) { \
|
||||||
@@ -567,9 +566,9 @@
|
|||||||
|
|
||||||
#define GETBITS_N_M(a, b) \
|
#define GETBITS_N_M(a, b) \
|
||||||
do { \
|
do { \
|
||||||
register int temp, bb = b; \
|
int temp, bb = b; \
|
||||||
temp = 0xF & bb; \
|
temp = 0xF & bb; \
|
||||||
TOPOFSTACK = S_POSITIVE | (((GETWORD(Addr68k_from_LADDR(POINTERMASK & (TOPOFSTACK + (a))))) >> \
|
TOPOFSTACK = S_POSITIVE | (((GETWORD(NativeAligned2FromLAddr(POINTERMASK & (TOPOFSTACK + (a))))) >> \
|
||||||
(16 - ((0xF & (bb >> 4)) + temp + 1))) & \
|
(16 - ((0xF & (bb >> 4)) + temp + 1))) & \
|
||||||
n_mask_array[temp]); \
|
n_mask_array[temp]); \
|
||||||
nextop3; \
|
nextop3; \
|
||||||
@@ -577,13 +576,13 @@
|
|||||||
|
|
||||||
#define PUTBITS_N_M(a, b) \
|
#define PUTBITS_N_M(a, b) \
|
||||||
do { \
|
do { \
|
||||||
int base; \
|
LispPTR base; \
|
||||||
register int bb = b; \
|
int bb = b; \
|
||||||
register DLword *pword; \
|
DLword *pword; \
|
||||||
register int shift_size, field_size, fmask; \
|
int shift_size, field_size, fmask; \
|
||||||
if ((SEGMASK & TOPOFSTACK) != S_POSITIVE) { goto op_ufn; }; \
|
if ((SEGMASK & TOPOFSTACK) != S_POSITIVE) { goto op_ufn; }; \
|
||||||
base = POINTERMASK & POP_TOS_1; \
|
base = POINTERMASK & POP_TOS_1; \
|
||||||
pword = (DLword *)Addr68k_from_LADDR(base + (a)); \
|
pword = NativeAligned2FromLAddr(base + (a)); \
|
||||||
field_size = 0xF & bb; \
|
field_size = 0xF & bb; \
|
||||||
shift_size = 15 - (0xF & (bb >> 4)) - field_size; \
|
shift_size = 15 - (0xF & (bb >> 4)) - field_size; \
|
||||||
fmask = n_mask_array[field_size] << shift_size; \
|
fmask = n_mask_array[field_size] << shift_size; \
|
||||||
@@ -606,7 +605,7 @@
|
|||||||
|
|
||||||
#define MYARGCOUNT \
|
#define MYARGCOUNT \
|
||||||
do { \
|
do { \
|
||||||
register UNSIGNED arg_num; \
|
UNSIGNED arg_num; \
|
||||||
if ((CURRENTFX->alink & 1) == 0) \
|
if ((CURRENTFX->alink & 1) == 0) \
|
||||||
arg_num = (UNSIGNED)((LispPTR *)(CURRENTFX)-1); \
|
arg_num = (UNSIGNED)((LispPTR *)(CURRENTFX)-1); \
|
||||||
else \
|
else \
|
||||||
@@ -671,7 +670,7 @@
|
|||||||
|
|
||||||
#define CLARITHEQUAL \
|
#define CLARITHEQUAL \
|
||||||
do { \
|
do { \
|
||||||
register int arg2; \
|
LispPTR arg2; \
|
||||||
SV; \
|
SV; \
|
||||||
arg2 = POP_TOS_1; \
|
arg2 = POP_TOS_1; \
|
||||||
if ((TOPOFSTACK & SEGMASK) == S_POSITIVE) { \
|
if ((TOPOFSTACK & SEGMASK) == S_POSITIVE) { \
|
||||||
@@ -687,18 +686,16 @@
|
|||||||
N_OP_POPPED_CALL_2(N_OP_eqq, arg2); \
|
N_OP_POPPED_CALL_2(N_OP_eqq, arg2); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define S_CHARACTER 0x70000
|
|
||||||
|
|
||||||
#define AREF1 \
|
#define AREF1 \
|
||||||
do { \
|
do { \
|
||||||
LispPTR arrayarg; \
|
LispPTR arrayarg; \
|
||||||
register LispPTR baseL; \
|
LispPTR baseL; \
|
||||||
register int index; \
|
int index; \
|
||||||
register OneDArray *arrayblk; \
|
OneDArray *arrayblk; \
|
||||||
SV; \
|
SV; \
|
||||||
arrayarg = POP_TOS_1; \
|
arrayarg = POP_TOS_1; \
|
||||||
if (GetTypeNumber(arrayarg) != TYPE_ONED_ARRAY) goto aref_ufn; \
|
if (GetTypeNumber(arrayarg) != TYPE_ONED_ARRAY) goto aref_ufn; \
|
||||||
arrayblk = (OneDArray *)Addr68k_from_LADDR(arrayarg); \
|
arrayblk = (OneDArray *)NativeAligned4FromLAddr(arrayarg); \
|
||||||
if ((TOPOFSTACK & SEGMASK) != S_POSITIVE) goto aref_ufn; \
|
if ((TOPOFSTACK & SEGMASK) != S_POSITIVE) goto aref_ufn; \
|
||||||
index = TOPOFSTACK & 0xFFFF; \
|
index = TOPOFSTACK & 0xFFFF; \
|
||||||
if (index >= arrayblk->totalsize) goto aref_ufn; \
|
if (index >= arrayblk->totalsize) goto aref_ufn; \
|
||||||
@@ -706,10 +703,10 @@
|
|||||||
baseL = arrayblk->base; \
|
baseL = arrayblk->base; \
|
||||||
switch (arrayblk->typenumber) { \
|
switch (arrayblk->typenumber) { \
|
||||||
case 38: /* pointer : 32 bits */ \
|
case 38: /* pointer : 32 bits */ \
|
||||||
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
|
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 20: /* signed : 16 bits */ \
|
case 20: /* signed : 16 bits */ \
|
||||||
TOPOFSTACK = (GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF; \
|
TOPOFSTACK = (GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF; \
|
||||||
if (TOPOFSTACK & 0x8000) \
|
if (TOPOFSTACK & 0x8000) \
|
||||||
TOPOFSTACK |= S_NEGATIVE; \
|
TOPOFSTACK |= S_NEGATIVE; \
|
||||||
else \
|
else \
|
||||||
@@ -717,47 +714,47 @@
|
|||||||
nextop1; \
|
nextop1; \
|
||||||
case 67: /* Character : 8 bits */ \
|
case 67: /* Character : 8 bits */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
S_CHARACTER | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF); \
|
S_CHARACTER | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 22: /* signed : 32 bits */ \
|
case 22: /* signed : 32 bits */ \
|
||||||
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
|
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
|
||||||
switch (TOPOFSTACK & 0xFFFF0000) { \
|
switch (TOPOFSTACK & 0xFFFF0000) { \
|
||||||
case 0: TOPOFSTACK |= S_POSITIVE; break; \
|
case 0: TOPOFSTACK |= S_POSITIVE; break; \
|
||||||
case (unsigned)0xFFFF0000: TOPOFSTACK &= S_NEGATIVE; break; \
|
case (unsigned)0xFFFF0000: TOPOFSTACK &= S_NEGATIVE; break; \
|
||||||
default: { \
|
default: { \
|
||||||
register DLword *wordp; \
|
LispPTR *cellp; \
|
||||||
wordp = createcell68k(TYPE_FIXP); \
|
cellp = (LispPTR *)createcell68k(TYPE_FIXP); \
|
||||||
*((int *)wordp) = TOPOFSTACK; \
|
*cellp = TOPOFSTACK; \
|
||||||
TOPOFSTACK = (LispPTR)LADDR_from_68k(wordp); \
|
TOPOFSTACK = (LispPTR)LAddrFromNative(cellp); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 0: /* unsigned : 1 bit per element */ \
|
case 0: /* unsigned : 1 bit per element */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
S_POSITIVE | (((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + (index >> 3))) >> \
|
S_POSITIVE | (((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + (index >> 3))) >> \
|
||||||
(7 - (index & 7))) & \
|
(7 - (index & 7))) & \
|
||||||
1); \
|
1); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 3: /* unsigned : 8 bits per element */ \
|
case 3: /* unsigned : 8 bits per element */ \
|
||||||
TOPOFSTACK = S_POSITIVE | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF); \
|
TOPOFSTACK = S_POSITIVE | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 4: /* unsigned : 16 bits per element */ \
|
case 4: /* unsigned : 16 bits per element */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
S_POSITIVE | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF); \
|
S_POSITIVE | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 54: /* Float : 32 bits */ { \
|
case 54: /* Float : 32 bits */ { \
|
||||||
register DLword *wordp; \
|
LispPTR *cellp; \
|
||||||
wordp = createcell68k(TYPE_FLOATP); \
|
cellp = (LispPTR *)createcell68k(TYPE_FLOATP); \
|
||||||
*((int *)wordp) = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
|
*cellp = *(NativeAligned4FromLAddr(baseL) + index); \
|
||||||
TOPOFSTACK = (LispPTR)LADDR_from_68k(wordp); \
|
TOPOFSTACK = (LispPTR)LAddrFromNative(cellp); \
|
||||||
} \
|
} \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 68: /* Character : 16 bits */ \
|
case 68: /* Character : 16 bits */ \
|
||||||
TOPOFSTACK = \
|
TOPOFSTACK = \
|
||||||
S_CHARACTER | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF); \
|
S_CHARACTER | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF);\
|
||||||
nextop1; \
|
nextop1; \
|
||||||
case 86: /* XPointer : 32 bits */ \
|
case 86: /* XPointer : 32 bits */ \
|
||||||
TOPOFSTACK = *(((int *)Addr68k_from_LADDR(baseL)) + index); \
|
TOPOFSTACK = *(NativeAligned4FromLAddr(baseL) + index); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
default: /* Illegal or Unimplemented */ goto aref_ufn; \
|
default: /* Illegal or Unimplemented */ goto aref_ufn; \
|
||||||
} /* end switch typenumber */ \
|
} /* end switch typenumber */ \
|
||||||
@@ -768,8 +765,8 @@
|
|||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
#define DTEST(n) \
|
#define DTEST(n) \
|
||||||
do { \
|
do { \
|
||||||
register int atom_index; \
|
int atom_index; \
|
||||||
register struct dtd *dtd68k; \
|
struct dtd *dtd68k; \
|
||||||
atom_index = n; \
|
atom_index = n; \
|
||||||
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); atom_index != dtd68k->dtd_name; \
|
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); atom_index != dtd68k->dtd_name; \
|
||||||
dtd68k = (struct dtd *)GetDTD(dtd68k->dtd_supertype)) { \
|
dtd68k = (struct dtd *)GetDTD(dtd68k->dtd_supertype)) { \
|
||||||
@@ -780,8 +777,8 @@
|
|||||||
#else /* BIGVM */
|
#else /* BIGVM */
|
||||||
#define DTEST(n) \
|
#define DTEST(n) \
|
||||||
do { \
|
do { \
|
||||||
register int atom_index; \
|
int atom_index; \
|
||||||
register struct dtd *dtd68k; \
|
struct dtd *dtd68k; \
|
||||||
atom_index = n; \
|
atom_index = n; \
|
||||||
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); \
|
for (dtd68k = (struct dtd *)GetDTD(GetTypeNumber(TOPOFSTACK)); \
|
||||||
atom_index != dtd68k->dtd_namelo + ((int)(dtd68k->dtd_namehi) << 16); \
|
atom_index != dtd68k->dtd_namelo + ((int)(dtd68k->dtd_namehi) << 16); \
|
||||||
@@ -794,26 +791,26 @@
|
|||||||
|
|
||||||
#define FVAR(n) \
|
#define FVAR(n) \
|
||||||
do { \
|
do { \
|
||||||
register LispPTR *chain; \
|
LispPTR *chain; \
|
||||||
chain = (LispPTR *)(PVar + (n)); \
|
chain = (LispPTR *)(PVar + (n)); \
|
||||||
if (WBITSPTR(chain)->LSB) { \
|
if (WBITSPTR(chain)->LSB) { \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(native_newframe((n) >> 1))))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(native_newframe((n) >> 1))))); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} /* if(((WBITS */ \
|
} /* if(((WBITS */ \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(*chain)))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(*chain)))); \
|
||||||
nextop1; \
|
nextop1; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define FVARX(n) \
|
#define FVARX(n) \
|
||||||
do { \
|
do { \
|
||||||
register int nn = n; \
|
int nn = n; \
|
||||||
register LispPTR *chain; \
|
LispPTR *chain; \
|
||||||
chain = (LispPTR *)(PVar + nn); \
|
chain = (LispPTR *)(PVar + nn); \
|
||||||
if (WBITSPTR(chain)->LSB) { \
|
if (WBITSPTR(chain)->LSB) { \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(native_newframe(nn >> 1))))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(native_newframe(nn >> 1))))); \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} /* if(((WBITS */ \
|
} /* if(((WBITS */ \
|
||||||
PUSH(GetLongWord(Addr68k_from_LADDR(POINTERMASK &swapx(*chain)))); \
|
PUSH(GetLongWord(NativeAligned4FromLAddr(POINTERMASK &swapx(*chain)))); \
|
||||||
nextop2; \
|
nextop2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
@@ -837,7 +834,7 @@
|
|||||||
#elif defined(BIGVM)
|
#elif defined(BIGVM)
|
||||||
#define ATOMCELL_N(n) \
|
#define ATOMCELL_N(n) \
|
||||||
do { \
|
do { \
|
||||||
register int nn = n; \
|
int nn = n; \
|
||||||
if (0 == ((unsigned int)(TOPOFSTACK &= POINTERMASK) & SEGMASK)) { \
|
if (0 == ((unsigned int)(TOPOFSTACK &= POINTERMASK) & SEGMASK)) { \
|
||||||
/* old-symbol case; just add cell-number arg */ \
|
/* old-symbol case; just add cell-number arg */ \
|
||||||
switch (nn) { \
|
switch (nn) { \
|
||||||
@@ -881,7 +878,7 @@
|
|||||||
|
|
||||||
#define ATOMCELL_N(n) \
|
#define ATOMCELL_N(n) \
|
||||||
do { \
|
do { \
|
||||||
register int nn = n; \
|
int nn = n; \
|
||||||
if (0 == ((unsigned int)TOPOFSTACK & SEGMASK)) { \
|
if (0 == ((unsigned int)TOPOFSTACK & SEGMASK)) { \
|
||||||
/* old-symbol case; just add cell-number arg */ \
|
/* old-symbol case; just add cell-number arg */ \
|
||||||
TOPOFSTACK = (nn << 16) + (TOPOFSTACK << 1); \
|
TOPOFSTACK = (nn << 16) + (TOPOFSTACK << 1); \
|
||||||
|
|||||||
30
inc/inlnPS2.h
Executable file → Normal file
30
inc/inlnPS2.h
Executable file → Normal file
@@ -39,8 +39,8 @@
|
|||||||
/* */
|
/* */
|
||||||
/* R E G I S T E R C O N V E N T I O N S */
|
/* R E G I S T E R C O N V E N T I O N S */
|
||||||
/* */
|
/* */
|
||||||
/* The following register conventions hold in the dispatch loop, */
|
/* The following conventions hold in the dispatch loop, */
|
||||||
/* and are set up by register ... asm("...") decls in xc.c: */
|
/* and are set up by ... asm("...") decls in xc.c: */
|
||||||
/* */
|
/* */
|
||||||
/* esi pccache - the current PC */
|
/* esi pccache - the current PC */
|
||||||
/* edi cspcache - the current lisp stack ptr. */
|
/* edi cspcache - the current lisp stack ptr. */
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* Register conventions within arithmetic functions in the files */
|
/* Register conventions within arithmetic functions in the files */
|
||||||
/* arith2.c - arith4.c, etc.: */
|
/* arithops.c, etc.: */
|
||||||
/* */
|
/* */
|
||||||
/* esi first argument to the function */
|
/* esi first argument to the function */
|
||||||
/* edi second 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 */
|
/* 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 register conventions. */
|
/* These functions don't rely on conventions. */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
extern inline const unsigned int Get_BYTE_PCMAC0fn (pccache)
|
extern inline const unsigned int Get_BYTE_PCMAC0fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("leal -1(%1),%0 \n\
|
asm("leal -1(%1),%0 \n\
|
||||||
xorl $3,%0 \n\
|
xorl $3,%0 \n\
|
||||||
movzbl (%0),%0 \n\
|
movzbl (%0),%0 \n\
|
||||||
@@ -99,7 +99,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_BYTE_PCMAC1fn (pccache)
|
extern inline const unsigned int Get_BYTE_PCMAC1fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("movl %1,%0 \n\
|
asm("movl %1,%0 \n\
|
||||||
xorl $3,%0 \n\
|
xorl $3,%0 \n\
|
||||||
movzbl (%0),%0 \n\
|
movzbl (%0),%0 \n\
|
||||||
@@ -110,7 +110,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_BYTE_PCMAC2fn (pccache)
|
extern inline const unsigned int Get_BYTE_PCMAC2fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("leal 1(%1),%0 \n\
|
asm("leal 1(%1),%0 \n\
|
||||||
xorl $3,%0 \n\
|
xorl $3,%0 \n\
|
||||||
movzbl (%0),%0 \n\
|
movzbl (%0),%0 \n\
|
||||||
@@ -121,7 +121,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_BYTE_PCMAC3fn (pccache)
|
extern inline const unsigned int Get_BYTE_PCMAC3fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("leal 2(%1),%0 \n\
|
asm("leal 2(%1),%0 \n\
|
||||||
xorl $3,%0 \n\
|
xorl $3,%0 \n\
|
||||||
movzbl (%0),%0 \n\
|
movzbl (%0),%0 \n\
|
||||||
@@ -144,7 +144,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_DLword_PCMAC0fn(pccache)
|
extern inline const unsigned int Get_DLword_PCMAC0fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("movl %1,%%edx \n\
|
asm("movl %1,%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -158,7 +158,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_DLword_PCMAC1fn(pccache)
|
extern inline const unsigned int Get_DLword_PCMAC1fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal 1(%1),%%edx \n\
|
asm("leal 1(%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -173,7 +173,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_DLword_PCMAC2fn(pccache)
|
extern inline const unsigned int Get_DLword_PCMAC2fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal 2(%1),%%edx \n\
|
asm("leal 2(%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -187,7 +187,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_DLword_PCMAC3fn(pccache)
|
extern inline const unsigned int Get_DLword_PCMAC3fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal 3(%1),%%edx \n\
|
asm("leal 3(%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -211,7 +211,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal -1(%1),%%edx \n\
|
asm("leal -1(%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -229,7 +229,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal (%1),%%edx \n\
|
asm("leal (%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
@@ -248,7 +248,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("leal 1(%1),%%edx \n\
|
asm("leal 1(%1),%%edx \n\
|
||||||
xorb $3,%%dl \n\
|
xorb $3,%%dl \n\
|
||||||
movzbl (%%edx),%%eax \n\
|
movzbl (%%edx),%%eax \n\
|
||||||
|
|||||||
18
inc/inlnSPARC.h
Executable file → Normal file
18
inc/inlnSPARC.h
Executable file → Normal file
@@ -26,7 +26,7 @@
|
|||||||
/*
|
/*
|
||||||
Get_BYTE(PCMAC+1); \
|
Get_BYTE(PCMAC+1); \
|
||||||
xc.c: #define PCMAC pccache
|
xc.c: #define PCMAC pccache
|
||||||
xc.c: register InstPtr pccache;
|
xc.c: InstPtr pccache;
|
||||||
xc.c: typedef ByteCode *InstPtr; CHANGED TO
|
xc.c: typedef ByteCode *InstPtr; CHANGED TO
|
||||||
xc.c: typedef BYTECODE *InstPtr;
|
xc.c: typedef BYTECODE *InstPtr;
|
||||||
lispemul.h: typedef char ByteCode;
|
lispemul.h: typedef char ByteCode;
|
||||||
@@ -51,15 +51,15 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
|
|||||||
|
|
||||||
#define BOX_INTO(result, dest){ \
|
#define BOX_INTO(result, dest){ \
|
||||||
if (NSMALLP_RANGE(result))/* dest = box_fixp(result);*/ \
|
if (NSMALLP_RANGE(result))/* dest = box_fixp(result);*/ \
|
||||||
{register LispPTR *wordp; \
|
{LispPTR *wordp; \
|
||||||
wordp = (LispPTR *) createcell68k(TYPE_FIXP); \
|
wordp = (LispPTR *) createcell68k(TYPE_FIXP); \
|
||||||
*((int *)wordp) = result; \
|
*((int *)wordp) = result; \
|
||||||
dest = (LADDR_from_68k(wordp)); } \
|
dest = (LAddrFromNative(wordp)); } \
|
||||||
else dest = (( (unsigned)result <<15) >>15) | S_POSITIVE;}
|
else dest = (( (unsigned)result <<15) >>15) | S_POSITIVE;}
|
||||||
|
|
||||||
|
|
||||||
#define ARITH_OP(op, exceptions, handler) \
|
#define ARITH_OP(op, exceptions, handler) \
|
||||||
{register int arg1, arg2, result; \
|
{int arg1, arg2, result; \
|
||||||
arg1 = GET_TOS_1; /* w/o side effect */ \
|
arg1 = GET_TOS_1; /* w/o side effect */ \
|
||||||
if(!NSMALLP(TOPOFSTACK) && !NSMALLP(arg1)) { \
|
if(!NSMALLP(TOPOFSTACK) && !NSMALLP(arg1)) { \
|
||||||
arg2 = UNBOX_SMALLP(TOPOFSTACK); \
|
arg2 = UNBOX_SMALLP(TOPOFSTACK); \
|
||||||
@@ -71,7 +71,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
|
|||||||
N_OP_CALL_2(handler); }
|
N_OP_CALL_2(handler); }
|
||||||
|
|
||||||
#define BINARY_OP(exp, exceptions) { \
|
#define BINARY_OP(exp, exceptions) { \
|
||||||
register int arg1, arg2, result; \
|
int arg1, arg2, result; \
|
||||||
arg1 = GET_TOS_1; /* w/o side effect */ \
|
arg1 = GET_TOS_1; /* w/o side effect */ \
|
||||||
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
||||||
UNBOX_ELSE_UFN(arg1, arg1); \
|
UNBOX_ELSE_UFN(arg1, arg1); \
|
||||||
@@ -84,7 +84,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
|
|||||||
#undef IGREATERP
|
#undef IGREATERP
|
||||||
|
|
||||||
#define GREATERP { \
|
#define GREATERP { \
|
||||||
register int arg1, arg2, result; \
|
int arg1, arg2, result; \
|
||||||
arg1 = GET_TOS_1; /* w/o side effect */ \
|
arg1 = GET_TOS_1; /* w/o side effect */ \
|
||||||
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
||||||
UNBOX_ELSE_UFN(arg1, arg1); \
|
UNBOX_ELSE_UFN(arg1, arg1); \
|
||||||
@@ -92,7 +92,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
|
|||||||
POP_TOS_1; nextop1;}
|
POP_TOS_1; nextop1;}
|
||||||
|
|
||||||
#define IGREATERP { \
|
#define IGREATERP { \
|
||||||
register int arg1, arg2, result; \
|
int arg1, arg2, result; \
|
||||||
arg1 = GET_TOS_1; /* w/o side effect */ \
|
arg1 = GET_TOS_1; /* w/o side effect */ \
|
||||||
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
||||||
UNBOX_ELSE_UFN(arg1, arg1); \
|
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 LOGXOR BINARY_OP(arg1 ^ arg2, 0)
|
||||||
|
|
||||||
#define UNARY_OP(exp, exceptions) { \
|
#define UNARY_OP(exp, exceptions) { \
|
||||||
register int arg, result; \
|
int arg, result; \
|
||||||
UNBOX_ELSE_UFN(TOPOFSTACK, arg); \
|
UNBOX_ELSE_UFN(TOPOFSTACK, arg); \
|
||||||
result = exp; \
|
result = exp; \
|
||||||
if (exceptions) goto op_ufn; \
|
if (exceptions) goto op_ufn; \
|
||||||
@@ -141,7 +141,7 @@ lispemul.h: typedef struct {unsigned code : 8;} BYTECODE;
|
|||||||
|
|
||||||
#undef ADDBASE
|
#undef ADDBASE
|
||||||
#define ADDBASE { \
|
#define ADDBASE { \
|
||||||
register int arg1, arg2; \
|
int arg1, arg2; \
|
||||||
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
UNBOX_ELSE_UFN(TOPOFSTACK, arg2); \
|
||||||
TOPOFSTACK = POP_TOS_1 + arg2; \
|
TOPOFSTACK = POP_TOS_1 + arg2; \
|
||||||
nextop1;}
|
nextop1;}
|
||||||
|
|||||||
30
inc/inlndos.h
Executable file → Normal file
30
inc/inlndos.h
Executable file → Normal file
@@ -39,8 +39,8 @@
|
|||||||
/* */
|
/* */
|
||||||
/* R E G I S T E R C O N V E N T I O N S */
|
/* R E G I S T E R C O N V E N T I O N S */
|
||||||
/* */
|
/* */
|
||||||
/* The following register conventions hold in the dispatch loop, */
|
/* The following conventions hold in the dispatch loop, */
|
||||||
/* and are set up by register ... asm("...") decls in xc.c: */
|
/* and are set up by ... asm("...") decls in xc.c: */
|
||||||
/* */
|
/* */
|
||||||
/* esi pccache - the current PC */
|
/* esi pccache - the current PC */
|
||||||
/* edi cspcache - the current lisp stack ptr. */
|
/* edi cspcache - the current lisp stack ptr. */
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* Register conventions within arithmetic functions in the files */
|
/* Register conventions within arithmetic functions in the files */
|
||||||
/* arith2.c - arith4.c, etc.: */
|
/* arithops.c etc.: */
|
||||||
/* */
|
/* */
|
||||||
/* esi first argument to the function */
|
/* esi first argument to the function */
|
||||||
/* edi second 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 */
|
/* 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 register conventions. */
|
/* These functions don't rely on conventions. */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
extern inline unsigned int Get_BYTE_PCMAC0fn (pccache)
|
extern inline unsigned int Get_BYTE_PCMAC0fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("lea %0,-1[%1] \n\
|
asm("lea %0,-1[%1] \n\
|
||||||
xor %0,3 \n\
|
xor %0,3 \n\
|
||||||
movzx %0,BYTE PTR [%0] \n\
|
movzx %0,BYTE PTR [%0] \n\
|
||||||
@@ -99,7 +99,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_BYTE_PCMAC1fn (pccache)
|
extern inline unsigned int Get_BYTE_PCMAC1fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("lea %0,[%1] \n\
|
asm("lea %0,[%1] \n\
|
||||||
xor %0,3 \n\
|
xor %0,3 \n\
|
||||||
movzx %0,BYTE PTR [%0] \n\
|
movzx %0,BYTE PTR [%0] \n\
|
||||||
@@ -110,7 +110,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_BYTE_PCMAC2fn (pccache)
|
extern inline unsigned int Get_BYTE_PCMAC2fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("lea %0,1[%1] \n\
|
asm("lea %0,1[%1] \n\
|
||||||
xor %0,3 \n\
|
xor %0,3 \n\
|
||||||
movzx %0,BYTE PTR [%0] \n\
|
movzx %0,BYTE PTR [%0] \n\
|
||||||
@@ -121,7 +121,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_BYTE_PCMAC3fn (pccache)
|
extern inline unsigned int Get_BYTE_PCMAC3fn (pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word;
|
unsigned int word;
|
||||||
asm("lea %0,2[%1] \n\
|
asm("lea %0,2[%1] \n\
|
||||||
xor %0,3 \n\
|
xor %0,3 \n\
|
||||||
movzx %0,BYTE PTR [%0] \n\
|
movzx %0,BYTE PTR [%0] \n\
|
||||||
@@ -144,7 +144,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_DLword_PCMAC0fn(pccache)
|
extern inline unsigned int Get_DLword_PCMAC0fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("mov edx,%1 \n\
|
asm("mov edx,%1 \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax, byte ptr [edx] \n\
|
movzx eax, byte ptr [edx] \n\
|
||||||
@@ -158,7 +158,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_DLword_PCMAC1fn(pccache)
|
extern inline unsigned int Get_DLword_PCMAC1fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,1[%1] \n\
|
asm("lea edx,1[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax, byte ptr [edx] \n\
|
movzx eax, byte ptr [edx] \n\
|
||||||
@@ -173,7 +173,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_DLword_PCMAC2fn(pccache)
|
extern inline unsigned int Get_DLword_PCMAC2fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,2[%1] \n\
|
asm("lea edx,2[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax, byte ptr [edx] \n\
|
movzx eax, byte ptr [edx] \n\
|
||||||
@@ -187,7 +187,7 @@ unsigned int pccache;
|
|||||||
extern inline unsigned int Get_DLword_PCMAC3fn(pccache)
|
extern inline unsigned int Get_DLword_PCMAC3fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,3[%1] \n\
|
asm("lea edx,3[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax, byte ptr [edx] \n\
|
movzx eax, byte ptr [edx] \n\
|
||||||
@@ -211,7 +211,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC0fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,-1[%1] \n\
|
asm("lea edx,-1[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax,byte ptr [edx] \n\
|
movzx eax,byte ptr [edx] \n\
|
||||||
@@ -229,7 +229,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC1fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,[%1] \n\
|
asm("lea edx,[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax,byte ptr [edx] \n\
|
movzx eax,byte ptr [edx] \n\
|
||||||
@@ -248,7 +248,7 @@ unsigned int pccache;
|
|||||||
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
|
extern inline const unsigned int Get_Pointer_PCMAC2fn(pccache)
|
||||||
unsigned int pccache;
|
unsigned int pccache;
|
||||||
{
|
{
|
||||||
register unsigned int word asm("ax");
|
unsigned int word asm("ax");
|
||||||
asm("lea edx,1[%1] \n\
|
asm("lea edx,1[%1] \n\
|
||||||
xor dl,3 \n\
|
xor dl,3 \n\
|
||||||
movzx eax,byte ptr [edx] \n\
|
movzx eax,byte ptr [edx] \n\
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#ifndef INTCALLDEFS_H
|
#ifndef INTCALLDEFS_H
|
||||||
#define INTCALLDEFS_H 1
|
#define INTCALLDEFS_H 1
|
||||||
void cause_interruptcall(register unsigned int atom_index);
|
void cause_interruptcall(unsigned int atom_index);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef KEYEVENTDEFS_H
|
#ifndef KEYEVENTDEFS_H
|
||||||
#define KEYEVENTDEFS_H 1
|
#define KEYEVENTDEFS_H 1
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
void getsignaldata(int sig);
|
void process_io_events(void);
|
||||||
void kb_trans(u_short keycode, u_short upflg);
|
void kb_trans(u_short keycode, u_short upflg);
|
||||||
void taking_mouse_down(void);
|
void taking_mouse_down(void);
|
||||||
void copy_cursor(int newx, int newy);
|
void copy_cursor(int newx, int newy);
|
||||||
|
|||||||
@@ -13,23 +13,24 @@
|
|||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
#ifdef LOCK_X_UPDATES
|
#ifdef LOCK_X_UPDATES
|
||||||
#define XLOCK { XLocked++; /* printf("L"); fflush(stdout);*/}
|
#define XLOCK do { XLocked++; } while (0)
|
||||||
#define XUNLOCK \
|
#define XUNLOCK(dsp) \
|
||||||
{ XLocked--;/* printf("U"); fflush(stdout);*/ \
|
do { \
|
||||||
if (XNeedSignal) \
|
if (XLocked == 1 && XNeedSignal) \
|
||||||
{ \
|
{ \
|
||||||
XNeedSignal = 0; \
|
XNeedSignal = 0; \
|
||||||
kill(getpid(), SIGPOLL); \
|
getXsignaldata(dsp); \
|
||||||
}; \
|
}; \
|
||||||
}
|
XLocked--; \
|
||||||
|
} while (0)
|
||||||
#else
|
#else
|
||||||
#define XLOCK
|
#define XLOCK
|
||||||
#define XUNLOCK
|
#define XUNLOCK
|
||||||
#endif /* LOCK_X_UPDATES */
|
#endif /* LOCK_X_UPDATES */
|
||||||
|
|
||||||
extern int XLocked;
|
#include <signal.h>
|
||||||
extern int XNeedSignal;
|
extern volatile sig_atomic_t XLocked;
|
||||||
/* this is !0 if we're locked; it should be 0 or larger always */
|
extern volatile sig_atomic_t XNeedSignal;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
#define LINEBLT8DEFS_H 1
|
#define LINEBLT8DEFS_H 1
|
||||||
#include <sys/types.h> /* for u_char */
|
#include <sys/types.h> /* for u_char */
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
void lineBlt8(DLword *srcbase, register int offset, register u_char *destl, register int width,
|
void lineBlt8(DLword *srcbase, int offset, u_char *destl, int width,
|
||||||
u_char color0, u_char color1, LispPTR sourcetype, LispPTR operation);
|
u_char color0, u_char color1, LispPTR sourcetype, LispPTR operation);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define LISP2CDEFS_H 1
|
#define LISP2CDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
int LispStringP(LispPTR object);
|
int LispStringP(LispPTR object);
|
||||||
int LispStringLength(LispPTR lispstring);
|
int LispStringSimpleLength(LispPTR lispstring);
|
||||||
void LispStringToCStr(LispPTR lispstring, char *cstring);
|
void LispStringToCStr(LispPTR lispstring, char *cstring);
|
||||||
int LispIntToCInt(LispPTR lispint);
|
int LispIntToCInt(LispPTR lispint);
|
||||||
LispPTR CIntToLispInt(int cint);
|
LispPTR CIntToLispInt(int cint);
|
||||||
|
|||||||
@@ -9,7 +9,9 @@
|
|||||||
/* Manufactured in the United States of America. */
|
/* Manufactured in the United States of America. */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
#include "version.h" /* for BIGVM, BIGATOMS, UNSIGNED, UNALIGNED_FETCH_OK */
|
#include "version.h"
|
||||||
|
|
||||||
|
#include "lispmap.h" // for S_POSITIVE
|
||||||
|
|
||||||
#ifndef BYTESWAP
|
#ifndef BYTESWAP
|
||||||
/*** Normal byte-order type decls */
|
/*** Normal byte-order type decls */
|
||||||
@@ -82,17 +84,17 @@ typedef struct interrupt_state_2 { /* alternate view of the interrupt state */
|
|||||||
} INTSTAT2;
|
} INTSTAT2;
|
||||||
|
|
||||||
struct state {
|
struct state {
|
||||||
DLword *ivar; /* + 0 */
|
DLword *ivar;
|
||||||
DLword *pvar; /* + 4 */
|
DLword *pvar;
|
||||||
DLword *csp; /* + 8 */
|
DLword *csp;
|
||||||
LispPTR tosvalue; /* + 12 */
|
ByteCode *currentpc;
|
||||||
ByteCode *currentpc; /* + 16 */
|
struct fnhead *currentfunc;
|
||||||
struct fnhead *currentfunc; /* + 20*/
|
DLword *endofstack;
|
||||||
DLword *endofstack; /* + 24*/
|
UNSIGNED irqcheck;
|
||||||
UNSIGNED irqcheck; /* + 28 */
|
UNSIGNED irqend;
|
||||||
UNSIGNED irqend; /* + 32 */
|
LispPTR tosvalue;
|
||||||
LispPTR scratch_cstk; /* + 34 */
|
LispPTR scratch_cstk;
|
||||||
int errorexit; /* + 38 */
|
int errorexit;
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Get_DLword(ptr) ptr is char* ***/
|
/***** Get_DLword(ptr) ptr is char* ***/
|
||||||
@@ -226,17 +228,17 @@ typedef struct interrupt_state_2 { /* alternate view of the interrupt state */
|
|||||||
} INTSTAT2;
|
} INTSTAT2;
|
||||||
|
|
||||||
struct state {
|
struct state {
|
||||||
DLword *ivar; /* + 0 */
|
DLword *ivar;
|
||||||
DLword *pvar; /* + 4 */
|
DLword *pvar;
|
||||||
DLword *csp; /* + 8 */
|
DLword *csp;
|
||||||
LispPTR tosvalue; /* + 12 */
|
ByteCode *currentpc;
|
||||||
ByteCode *currentpc; /* + 16 */
|
struct fnhead *currentfunc;
|
||||||
struct fnhead *currentfunc; /* + 20*/
|
DLword *endofstack;
|
||||||
DLword *endofstack; /* + 24*/
|
UNSIGNED irqcheck;
|
||||||
UNSIGNED irqcheck; /* + 28 */
|
UNSIGNED irqend;
|
||||||
UNSIGNED irqend; /* + 32 */
|
LispPTR tosvalue;
|
||||||
LispPTR scratch_cstk; /* + 34 */
|
LispPTR scratch_cstk;
|
||||||
int errorexit; /* + 38 */
|
int errorexit;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Fetching 2 bytes to make a word -- always do it the hard way */
|
/* Fetching 2 bytes to make a word -- always do it the hard way */
|
||||||
@@ -444,20 +446,21 @@ DOSTACKOVERFLOW(argnum,bytenum) if it needs hardreturn-cleanup
|
|||||||
/* so that it picks up where it left off after the interrupt. */
|
/* so that it picks up where it left off after the interrupt. */
|
||||||
/* */
|
/* */
|
||||||
/* Call Interface where neg number indicates an error return */
|
/* Call Interface where neg number indicates an error return */
|
||||||
|
/* but the function returns a LispPTR and casts back to int */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
#define ERROR_EXIT(tos) \
|
#define ERROR_EXIT(tos) \
|
||||||
do { \
|
do { \
|
||||||
TopOfStack = tos; \
|
TopOfStack = (LispPTR)tos; \
|
||||||
Error_Exit = 1; \
|
Error_Exit = 1; \
|
||||||
return (-1); \
|
return ((LispPTR)-1); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define TIMER_EXIT(tos) \
|
#define TIMER_EXIT(tos) \
|
||||||
do { \
|
do { \
|
||||||
TopOfStack = tos; \
|
TopOfStack = (LispPTR)tos; \
|
||||||
Error_Exit = 1; \
|
Error_Exit = 1; \
|
||||||
return (-2); \
|
return ((LispPTR)-2); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define WARN(message, operation) \
|
#define WARN(message, operation) \
|
||||||
|
|||||||
@@ -154,7 +154,7 @@
|
|||||||
#define SNEG_SIZE 0x10000
|
#define SNEG_SIZE 0x10000
|
||||||
|
|
||||||
/* for characters */
|
/* for characters */
|
||||||
#define S_CHAR 0x70000
|
#define S_CHARACTER 0x70000
|
||||||
|
|
||||||
/* for HTMAIN */
|
/* for HTMAIN */
|
||||||
#define HTMAIN_HI 22
|
#define HTMAIN_HI 22
|
||||||
@@ -307,7 +307,7 @@
|
|||||||
#define SNEG_SIZE 0x10000
|
#define SNEG_SIZE 0x10000
|
||||||
|
|
||||||
/* for characters */
|
/* for characters */
|
||||||
#define S_CHAR 0x70000
|
#define S_CHARACTER 0x70000
|
||||||
|
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
/* for HTMAIN */
|
/* for HTMAIN */
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
#define LispVersionToUnixVersion(pathname, ver) \
|
#define LispVersionToUnixVersion(pathname, ver) \
|
||||||
{ \
|
{ \
|
||||||
\
|
\
|
||||||
register char *cp; \
|
char *cp; \
|
||||||
register char *vp; \
|
char *vp; \
|
||||||
char ver_buf[VERSIONLEN]; \
|
char ver_buf[VERSIONLEN]; \
|
||||||
\
|
\
|
||||||
cp = pathname; \
|
cp = pathname; \
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
NumericStringP(vp, YES, NO); \
|
NumericStringP(vp, YES, NO); \
|
||||||
NO: *vp = 0; \
|
NO: *vp = 0; \
|
||||||
YES: \
|
YES: \
|
||||||
if ((*vp)) ver = atoi(vp); \
|
if ((*vp)) ver = strtol(vp, (char **)NULL, 10); \
|
||||||
else ver = -1; \
|
else ver = -1; \
|
||||||
} \
|
} \
|
||||||
else ver = -1; \
|
else ver = -1; \
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
#define LispVersionToUnixVersion(pathname){ \
|
#define LispVersionToUnixVersion(pathname){ \
|
||||||
\
|
\
|
||||||
register char *lv_cp; \
|
char *lv_cp; \
|
||||||
register char *lv_vp; \
|
char *lv_vp; \
|
||||||
register int lv_ver; \
|
unsigned lv_ver; \
|
||||||
char lv_ver_buf[VERSIONLEN]; \
|
char lv_ver_buf[VERSIONLEN]; \
|
||||||
\
|
\
|
||||||
lv_cp = pathname; \
|
lv_cp = pathname; \
|
||||||
@@ -48,12 +48,12 @@
|
|||||||
/* \
|
/* \
|
||||||
* Convert the remaining field to digit. \
|
* Convert the remaining field to digit. \
|
||||||
*/ \
|
*/ \
|
||||||
lv_ver = atoi(lv_vp + 1); \
|
lv_ver = strtoul(lv_vp + 1, (char **)NULL, 10); \
|
||||||
if (lv_ver == 0) { \
|
if (lv_ver == 0) { \
|
||||||
/* versionless */ \
|
/* versionless */ \
|
||||||
*lv_vp = 0; \
|
*lv_vp = 0; \
|
||||||
} else { \
|
} else { \
|
||||||
sprintf(lv_ver_buf, ".~%d~", lv_ver); \
|
sprintf(lv_ver_buf, ".~%u~", lv_ver); \
|
||||||
*lv_vp = 0; \
|
*lv_vp = 0; \
|
||||||
strcat(pathname, lv_ver_buf); \
|
strcat(pathname, lv_ver_buf); \
|
||||||
} \
|
} \
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
\
|
\
|
||||||
NO: \
|
NO: \
|
||||||
strcpy(lv_ver_buf, lv_vp + 1); \
|
strcpy(lv_ver_buf, lv_vp + 1); \
|
||||||
strcat(lv_ver_buf, "~"); \
|
strcat(lv_ver_buf, "~"); \
|
||||||
*lv_vp++ = '.'; \
|
*lv_vp++ = '.'; \
|
||||||
*lv_vp++ = '~'; \
|
*lv_vp++ = '~'; \
|
||||||
*lv_vp = 0; \
|
*lv_vp = 0; \
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
#include "stack.h" /* for FX, StackWord, Bframe */
|
#include "stack.h" /* for FX, StackWord, Bframe */
|
||||||
int do_stackoverflow(int incallp);
|
int do_stackoverflow(int incallp);
|
||||||
DLword *freestackblock(DLword n, StackWord *start68k, int align);
|
DLword *freestackblock(DLword n, StackWord *start68k, int align);
|
||||||
void decusecount68k(register FX *frame68k);
|
void decusecount68k(FX *frame68k);
|
||||||
void flip_cursorbar(int n);
|
void flip_cursorbar(int n);
|
||||||
void blt(register DLword *dest68k, register DLword *source68k, int nw);
|
void blt(DLword *dest68k, DLword *source68k, int nw);
|
||||||
void stack_check(StackWord *start68k);
|
void stack_check(StackWord *start68k);
|
||||||
void walk_stack(StackWord *start68k);
|
void walk_stack(StackWord *start68k);
|
||||||
void quick_stack_check(void);
|
int quick_stack_check(void);
|
||||||
void check_FX(FX *fx68k);
|
void check_FX(FX *fx68k);
|
||||||
void check_BF(Bframe *bf68k);
|
void check_BF(Bframe *bf68k);
|
||||||
int check_stack_rooms(FX *fx68k);
|
int check_stack_rooms(FX *fx68k);
|
||||||
|
|||||||
@@ -45,15 +45,17 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
/* For getfileinfo. For WDATE&RDATE */
|
/* For getfileinfo. For WDATE&RDATE */
|
||||||
/* 29969152 == (timer.c)LISP_UNIX_TIME_DIFF */
|
/* 29969152 == (timer.c)LISP_UNIX_TIME_DIFF */
|
||||||
|
|
||||||
#define StrNCpyFromCToLisp(lispbuf, cbuf ,len) {int lf_i; \
|
#define StrNCpyFromCToLisp(lispbuf, cbuf ,len) { \
|
||||||
char *lf_sptr,*lf_dptr; \
|
char *lf_sptr = (cbuf); \
|
||||||
for(lf_i=0,lf_sptr=(cbuf),lf_dptr =(lispbuf);lf_i<(len);lf_i++)\
|
char *lf_dptr = (lispbuf); \
|
||||||
|
for(size_t lf_i=0;lf_i<(len);lf_i++)\
|
||||||
GETBYTE(lf_dptr++) = *lf_sptr++; \
|
GETBYTE(lf_dptr++) = *lf_sptr++; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define StrNCpyFromLispToC(cbuf , lispbuf, len) {int lf_i; \
|
#define StrNCpyFromLispToC(cbuf , lispbuf, len) { \
|
||||||
char *lf_sptr,*lf_dptr; \
|
char *lf_sptr = (lispbuf); \
|
||||||
for(lf_i=0,lf_sptr=(lispbuf),lf_dptr =(cbuf);lf_i<(len);lf_i++)\
|
char *lf_dptr = (cbuf); \
|
||||||
|
for(size_t lf_i=0;lf_i<(len);lf_i++)\
|
||||||
*lf_dptr++ = GETBYTE(lf_sptr++); \
|
*lf_dptr++ = GETBYTE(lf_sptr++); \
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,23 +85,24 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
OneDArray *lf_arrayp; \
|
OneDArray *lf_arrayp; \
|
||||||
char *lf_base, *lf_dp; \
|
char *lf_base, *lf_dp; \
|
||||||
short *lf_sbase; \
|
short *lf_sbase; \
|
||||||
int lf_i, lf_length; \
|
size_t lf_length; \
|
||||||
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(Lisp)); \
|
lf_arrayp = (OneDArray *)NativeAligned4FromLAddr(Lisp); \
|
||||||
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
||||||
switch(lf_arrayp->typenumber) \
|
switch(lf_arrayp->typenumber) \
|
||||||
{ \
|
{ \
|
||||||
case THIN_CHAR_TYPENUMBER: \
|
case THIN_CHAR_TYPENUMBER: \
|
||||||
lf_base = ((char *)(Addr68k_from_LADDR(lf_arrayp->base))) \
|
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||||
+ ((int)(lf_arrayp->offset)); \
|
+ ((int)(lf_arrayp->offset)); \
|
||||||
strncpy(C, lf_base, lf_length); \
|
strncpy(C, lf_base, lf_length); \
|
||||||
(C)[lf_length] = '\0'; \
|
(C)[lf_length] = '\0'; \
|
||||||
break; \
|
break; \
|
||||||
\
|
\
|
||||||
case FAT_CHAR_TYPENUMBER: \
|
case FAT_CHAR_TYPENUMBER: \
|
||||||
lf_sbase = ((short *)(Addr68k_from_LADDR(lf_arrayp->base))) \
|
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||||
+ ((int)(lf_arrayp->offset)); \
|
+ ((int)(lf_arrayp->offset)); \
|
||||||
for(lf_i=0,lf_dp=C;lf_i<(lf_length);lf_i++) \
|
lf_dp = C; \
|
||||||
*lf_dp++ = (char)(*lf_sbase++); \
|
for(size_t lf_i=0;lf_i<(lf_length);lf_i++) \
|
||||||
|
*lf_dp++ = (char)(*lf_sbase++); \
|
||||||
*lf_dp = '\0'; \
|
*lf_dp = '\0'; \
|
||||||
break; \
|
break; \
|
||||||
default: \
|
default: \
|
||||||
@@ -112,22 +115,23 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
OneDArray *lf_arrayp; \
|
OneDArray *lf_arrayp; \
|
||||||
char *lf_base, *lf_dp; \
|
char *lf_base, *lf_dp; \
|
||||||
short *lf_sbase; \
|
short *lf_sbase; \
|
||||||
int lf_ii, lf_length; \
|
size_t lf_length; \
|
||||||
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(Lisp)); \
|
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(Lisp)); \
|
||||||
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
||||||
switch(lf_arrayp->typenumber) \
|
switch(lf_arrayp->typenumber) \
|
||||||
{ \
|
{ \
|
||||||
case THIN_CHAR_TYPENUMBER: \
|
case THIN_CHAR_TYPENUMBER: \
|
||||||
lf_base = ((char *)(Addr68k_from_LADDR(lf_arrayp->base))) \
|
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||||
+ ((int)(lf_arrayp->offset)); \
|
+ ((int)(lf_arrayp->offset)); \
|
||||||
StrNCpyFromLispToC(C , lf_base , lf_length ); \
|
StrNCpyFromLispToC(C , lf_base , lf_length ); \
|
||||||
(C)[lf_length] = '\0'; \
|
(C)[lf_length] = '\0'; \
|
||||||
break; \
|
break; \
|
||||||
\
|
\
|
||||||
case FAT_CHAR_TYPENUMBER: \
|
case FAT_CHAR_TYPENUMBER: \
|
||||||
lf_sbase = ((short *)(Addr68k_from_LADDR(lf_arrayp->base))) \
|
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||||
+ ((int)(lf_arrayp->offset)); \
|
+ ((int)(lf_arrayp->offset)); \
|
||||||
for(lf_ii=0,lf_dp=C;lf_ii<(lf_length);lf_ii++,lf_sbase++) \
|
lf_dp = C; \
|
||||||
|
for(size_t lf_ii=0;lf_ii<(lf_length);lf_ii++,lf_sbase++) \
|
||||||
*lf_dp++ = (char)(GETWORD(lf_sbase)); \
|
*lf_dp++ = (char)(GETWORD(lf_sbase)); \
|
||||||
*lf_dp = '\0'; \
|
*lf_dp = '\0'; \
|
||||||
break; \
|
break; \
|
||||||
@@ -152,7 +156,7 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
#define LispStringLength(LispString, Length, FatP) \
|
#define LispStringLength(LispString, Length, FatP) \
|
||||||
{ \
|
{ \
|
||||||
OneDArray *lf_arrayp; \
|
OneDArray *lf_arrayp; \
|
||||||
lf_arrayp = (OneDArray *)(Addr68k_from_LADDR(LispString)); \
|
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(LispString)); \
|
||||||
switch(lf_arrayp->typenumber) \
|
switch(lf_arrayp->typenumber) \
|
||||||
{ \
|
{ \
|
||||||
case THIN_CHAR_TYPENUMBER: \
|
case THIN_CHAR_TYPENUMBER: \
|
||||||
@@ -182,8 +186,8 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
#define STRING_BASE(lstringp, cstringp) \
|
#define STRING_BASE(lstringp, cstringp) \
|
||||||
{ \
|
{ \
|
||||||
LispPTR *lf_naddress; \
|
LispPTR *lf_naddress; \
|
||||||
lf_naddress = (LispPTR *)(Addr68k_from_LADDR(lstringp)); \
|
lf_naddress = (LispPTR *)(NativeAligned4FromLAddr(lstringp)); \
|
||||||
(cstringp) = (char *)(Addr68k_from_LADDR(((OneDArray *)lf_naddress)->base)); \
|
(cstringp) = (char *)(NativeAligned2FromLAddr(((OneDArray *)lf_naddress)->base)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef min
|
#ifndef min
|
||||||
@@ -192,7 +196,7 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
|
|
||||||
#define LispNumToCInt(Lisp) \
|
#define LispNumToCInt(Lisp) \
|
||||||
( (((Lisp) & SEGMASK) == S_POSITIVE) ? \
|
( (((Lisp) & SEGMASK) == S_POSITIVE) ? \
|
||||||
((Lisp) & 0xFFFF) : (*((int *)(Addr68k_from_LADDR(Lisp)))) )
|
((Lisp) & 0xFFFF) : (*((int *)(NativeAligned4FromLAddr(Lisp)))) )
|
||||||
|
|
||||||
#define UPLOWDIFF 0x20
|
#define UPLOWDIFF 0x20
|
||||||
|
|
||||||
@@ -385,9 +389,9 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
*(start - 1) = ';'; \
|
*(start - 1) = ';'; \
|
||||||
*start = '\0'; \
|
*start = '\0'; \
|
||||||
*end = '\0'; \
|
*end = '\0'; \
|
||||||
/* call ato i to eliminate leading 0s. */ \
|
/* call strtoul() to eliminate leading 0s. */ \
|
||||||
ver_no = atoi(start + 1); \
|
ver_no = strtoul(start + 1, (char **)NULL, 10); \
|
||||||
sprintf(ver_buf, "%d", ver_no); \
|
sprintf(ver_buf, "%u", ver_no); \
|
||||||
strcat(pathname, ver_buf); \
|
strcat(pathname, ver_buf); \
|
||||||
goto CONT; \
|
goto CONT; \
|
||||||
\
|
\
|
||||||
@@ -494,7 +498,7 @@ extern DLword *Lisp_world; /* To access LispSysout area */
|
|||||||
|
|
||||||
#define MAXVERSION 999999999
|
#define MAXVERSION 999999999
|
||||||
|
|
||||||
#define LASTVERSIONARRAY (-1)
|
#define LASTVERSIONARRAY ((unsigned) -1)
|
||||||
#define VERSIONARRAYLENGTH 200
|
#define VERSIONARRAYLENGTH 200
|
||||||
|
|
||||||
#define NoFileP(varray) \
|
#define NoFileP(varray) \
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
#ifndef LOOPSOPSDEFS_H
|
#ifndef LOOPSOPSDEFS_H
|
||||||
#define LOOPSOPSDEFS_H 1
|
#define LOOPSOPSDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR lcfuncall(register unsigned int atom_index, register int argnum, register int bytenum);
|
LispPTR lcfuncall(unsigned int atom_index, int argnum, int bytenum);
|
||||||
LispPTR LCinit(void);
|
LispPTR LCinit(void);
|
||||||
LispPTR LCFetchMethod(register LispPTR class, register LispPTR selector);
|
LispPTR LCFetchMethod(LispPTR class, LispPTR selector);
|
||||||
LispPTR LCFetchMethodOrHelp(register LispPTR object, register LispPTR selector);
|
LispPTR LCFetchMethodOrHelp(LispPTR object, LispPTR selector);
|
||||||
LispPTR LCFindVarIndex(register LispPTR iv, register LispPTR object);
|
LispPTR LCFindVarIndex(LispPTR iv, LispPTR object);
|
||||||
LispPTR LCGetIVValue(register LispPTR object, register LispPTR iv);
|
LispPTR LCGetIVValue(LispPTR object, LispPTR iv);
|
||||||
LispPTR LCPutIVValue(register LispPTR object, register LispPTR iv, register LispPTR val);
|
LispPTR LCPutIVValue(LispPTR object, LispPTR iv, LispPTR val);
|
||||||
LispPTR lcfuncall(register unsigned int atom_index, register int argnum, register int bytenum);
|
LispPTR lcfuncall(unsigned int atom_index, int argnum, int bytenum);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#ifndef LOWLEV1DEFS_H
|
#ifndef LOWLEV1DEFS_H
|
||||||
#define LOWLEV1DEFS_H 1
|
#define LOWLEV1DEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_putbitsnfd(register LispPTR base, register LispPTR data, int word_offset, register int beta);
|
LispPTR N_OP_putbitsnfd(LispPTR base, LispPTR data, int word_offset, int beta);
|
||||||
LispPTR N_OP_getbitsnfd(int base_addr, register int word_offset, int beta);
|
LispPTR N_OP_getbitsnfd(int base_addr, int word_offset, int beta);
|
||||||
LispPTR N_OP_putbasen(register LispPTR base, register LispPTR tos, int n);
|
LispPTR N_OP_putbasen(LispPTR base, LispPTR tos, int n);
|
||||||
LispPTR N_OP_putbaseptrn(register LispPTR base, register LispPTR tos, int n);
|
LispPTR N_OP_putbaseptrn(LispPTR base, LispPTR tos, int n);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef LOWLEV2DEFS_H
|
#ifndef LOWLEV2DEFS_H
|
||||||
#define LOWLEV2DEFS_H 1
|
#define LOWLEV2DEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_addbase(register int base, register int offset);
|
LispPTR N_OP_addbase(LispPTR base, LispPTR offset);
|
||||||
LispPTR N_OP_getbasebyte(register LispPTR base_addr, register int byteoffset);
|
LispPTR N_OP_getbasebyte(LispPTR base_addr, LispPTR byteoffset);
|
||||||
LispPTR N_OP_putbasebyte(register LispPTR base_addr, register int byteoffset, register int tos);
|
LispPTR N_OP_putbasebyte(LispPTR base_addr, LispPTR byteoffset, LispPTR tos);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "miscstat.h" /* for MISCSTAT */
|
#include "miscstat.h" /* for MISCSTAT */
|
||||||
|
|
||||||
extern DLword *Atomspace; /* ATOMSPACE */
|
|
||||||
extern DLword *Stackspace; /* STACKSPACE*/
|
extern DLword *Stackspace; /* STACKSPACE*/
|
||||||
extern DLword *Plistspace; /* PLISTSPACE */
|
extern DLword *Plistspace; /* PLISTSPACE */
|
||||||
extern DLword *DTDspace; /* DTDSPACE */
|
extern DLword *DTDspace; /* DTDSPACE */
|
||||||
@@ -41,8 +40,6 @@
|
|||||||
extern DLword *AtomSpace; /* New atoms, initial set */
|
extern DLword *AtomSpace; /* New atoms, initial set */
|
||||||
extern DLword *Defspace; /* DEFSPACE */
|
extern DLword *Defspace; /* DEFSPACE */
|
||||||
extern DLword *Valspace; /* VALSPACE */
|
extern DLword *Valspace; /* VALSPACE */
|
||||||
extern DLword *Spospspace; /* POSITIVE Smallp */
|
|
||||||
extern DLword *Snegspace; /* NEGATIVE Smallp */
|
|
||||||
|
|
||||||
/* For Virtual Mem Management */
|
/* For Virtual Mem Management */
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
@@ -82,7 +79,6 @@ extern DLword *UFNTable ;
|
|||||||
|
|
||||||
|
|
||||||
/* FLEX STORAGES */
|
/* FLEX STORAGES */
|
||||||
extern DLword *Arrayspace; /* Start of ARRAYSPACE */
|
|
||||||
extern DLword *MDS_space_bottom; /* Start of MDS (pre -2) */
|
extern DLword *MDS_space_bottom; /* Start of MDS (pre -2) */
|
||||||
extern DLword *PnCharspace ; /* Space for PN char codes (Thin only) */
|
extern DLword *PnCharspace ; /* Space for PN char codes (Thin only) */
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
#include "version.h" /* for BIGVM, BIGATOMS */
|
#include "version.h" /* for BIGVM, BIGATOMS */
|
||||||
|
#include <stdint.h> /* for int32_t */
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
@@ -238,8 +239,8 @@ typedef struct oned_array {
|
|||||||
unsigned int extendablep : 1;
|
unsigned int extendablep : 1;
|
||||||
unsigned int typenumber : 8 ;
|
unsigned int typenumber : 8 ;
|
||||||
DLword offset;
|
DLword offset;
|
||||||
LispPTR fillpointer ;
|
int32_t fillpointer ;
|
||||||
LispPTR totalsize ; } OneDArray;
|
int32_t totalsize ; } OneDArray;
|
||||||
|
|
||||||
typedef struct oned_array NEWSTRINGP;
|
typedef struct oned_array NEWSTRINGP;
|
||||||
|
|
||||||
@@ -256,10 +257,10 @@ typedef struct general_array {
|
|||||||
unsigned int extendablep : 1;
|
unsigned int extendablep : 1;
|
||||||
unsigned int typenumber : 8 ;
|
unsigned int typenumber : 8 ;
|
||||||
unsigned int nil2:16;
|
unsigned int nil2:16;
|
||||||
LispPTR Dim0;
|
int32_t Dim0;
|
||||||
LispPTR totalsize;
|
int32_t totalsize;
|
||||||
LispPTR Dim1 ;
|
int32_t Dim1 ;
|
||||||
LispPTR Dim2 ; } LispArray;
|
int32_t Dim2 ; } LispArray;
|
||||||
|
|
||||||
typedef struct compiled_closure {
|
typedef struct compiled_closure {
|
||||||
unsigned int nil1 : 4 ;
|
unsigned int nil1 : 4 ;
|
||||||
@@ -434,8 +435,8 @@ typedef struct oned_array {
|
|||||||
unsigned int bitp :1 ;
|
unsigned int bitp :1 ;
|
||||||
unsigned int indirectp : 1; /* as used arrayheader */
|
unsigned int indirectp : 1; /* as used arrayheader */
|
||||||
unsigned int readonlyp :1 ;
|
unsigned int readonlyp :1 ;
|
||||||
LispPTR fillpointer ;
|
int32_t fillpointer ;
|
||||||
LispPTR totalsize ; } OneDArray;
|
int32_t totalsize ; } OneDArray;
|
||||||
|
|
||||||
|
|
||||||
typedef struct oned_array NEWSTRINGP;
|
typedef struct oned_array NEWSTRINGP;
|
||||||
@@ -453,10 +454,10 @@ typedef struct general_array {
|
|||||||
unsigned int bitp :1 ;
|
unsigned int bitp :1 ;
|
||||||
unsigned int indirectp : 1; /* as used arrayheader */
|
unsigned int indirectp : 1; /* as used arrayheader */
|
||||||
unsigned int readonlyp :1 ;
|
unsigned int readonlyp :1 ;
|
||||||
LispPTR Dim0;
|
int32_t Dim0;
|
||||||
LispPTR totalsize;
|
int32_t totalsize;
|
||||||
LispPTR Dim1 ;
|
int32_t Dim1 ;
|
||||||
LispPTR Dim2 ; } LispArray;
|
int32_t Dim2 ; } LispArray;
|
||||||
|
|
||||||
typedef struct compiled_closure {
|
typedef struct compiled_closure {
|
||||||
unsigned int def_ptr : 28; /* function */
|
unsigned int def_ptr : 28; /* function */
|
||||||
@@ -630,6 +631,7 @@ typedef struct
|
|||||||
/* This MACRO is similar to LISTP */
|
/* This MACRO is similar to LISTP */
|
||||||
#define Listp(address) (GetTypeNumber(address) == TYPE_LISTP)
|
#define Listp(address) (GetTypeNumber(address) == TYPE_LISTP)
|
||||||
|
|
||||||
|
#define Numberp(address) (GetTypeEntry(address) & TT_NUMBERP)
|
||||||
|
|
||||||
/******************************************/
|
/******************************************/
|
||||||
/* Lisp's PATHNAME datatype */
|
/* Lisp's PATHNAME datatype */
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef LSTHANDLDEFS_H
|
#ifndef LSTHANDLDEFS_H
|
||||||
#define LSTHANDLDEFS_H 1
|
#define LSTHANDLDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR */
|
#include "lispemul.h" /* for LispPTR */
|
||||||
LispPTR N_OP_fmemb(register LispPTR item, register LispPTR tos);
|
LispPTR N_OP_fmemb(LispPTR item, LispPTR tos);
|
||||||
LispPTR fmemb(register LispPTR item, register LispPTR list);
|
LispPTR fmemb(LispPTR item, LispPTR list);
|
||||||
LispPTR N_OP_listget(register LispPTR plist, register LispPTR tos);
|
LispPTR N_OP_listget(LispPTR plist, LispPTR tos);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -59,6 +59,13 @@
|
|||||||
# define MAIKO_OS_DETECTED 1
|
# define MAIKO_OS_DETECTED 1
|
||||||
#endif
|
#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: Defined by clang, gcc, and Sun Studio.
|
||||||
* __SVR4__ was only defined by Sun Studio. */
|
* __SVR4__ was only defined by Sun Studio. */
|
||||||
#if defined(__sun) && defined(__SVR4)
|
#if defined(__sun) && defined(__SVR4)
|
||||||
@@ -137,6 +144,13 @@
|
|||||||
# define MAIKO_ARCH_DETECTED 1
|
# define MAIKO_ARCH_DETECTED 1
|
||||||
#endif
|
#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__
|
/* Modern GNU C, Clang, Sun Studio provide __BYTE_ORDER__
|
||||||
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
|
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#ifndef MAINDEFS_H
|
#ifndef MAINDEFS_H
|
||||||
#define MAINDEFS_H 1
|
#define MAINDEFS_H 1
|
||||||
int makepathname(char *src, char *dst);
|
|
||||||
void start_lisp(void);
|
void start_lisp(void);
|
||||||
void print_info_lines(void);
|
void print_info_lines(void);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -3,8 +3,7 @@
|
|||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
DLword compute_hash(const char *char_base, DLword offset, DLword length);
|
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);
|
DLword compute_lisp_hash(const char *char_base, DLword offset, DLword length, DLword fatp);
|
||||||
LispPTR compare_chars(register const char *char1, register const char *char2, register DLword length);
|
LispPTR compare_chars(const char *char1, const char *char2, DLword length);
|
||||||
LispPTR compare_lisp_chars(register const char *char1, register const char *char2, register DLword length, DLword fat1, DLword fat2);
|
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, short int non_numericp);
|
LispPTR make_atom(const char *char_base, DLword offset, DLword length);
|
||||||
LispPTR parse_number(const char *char_base, short int length);
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#ifndef MKCELLDEFS_H
|
#ifndef MKCELLDEFS_H
|
||||||
#define MKCELLDEFS_H 1
|
#define MKCELLDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
LispPTR N_OP_createcell(register LispPTR tos);
|
LispPTR N_OP_createcell(LispPTR tos);
|
||||||
DLword *createcell68k(unsigned int type);
|
DLword *createcell68k(unsigned int type);
|
||||||
LispPTR Create_n_Set_Cell(unsigned int type, LispPTR value);
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ typedef union mnwevenT
|
|||||||
/* to a Medley window structure. */
|
/* to a Medley window structure. */
|
||||||
/* The result of the calculation is a C pointer. */
|
/* The result of the calculation is a C pointer. */
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
#define Cptr(LADDR) Addr68k_from_LADDR(LADDR)
|
#define Cptr(LADDR) NativeAligned4FromLAddr(LADDR)
|
||||||
#define WIfFromMw(win) (((MedleyWindow)Cptr(win))->NativeIf)
|
#define WIfFromMw(win) (((MedleyWindow)Cptr(win))->NativeIf)
|
||||||
#define ScrnFromMw(win) ((MedleyScreenRec *)Cptr(((MedleyWindow)Cptr(win))->SCREEN))
|
#define ScrnFromMw(win) ((MedleyScreenRec *)Cptr(((MedleyWindow)Cptr(win))->SCREEN))
|
||||||
#define DspstreamFromMw(win) ((Stream *)Cptr(((MedleyWindow)Cptr(win))->DSP))
|
#define DspstreamFromMw(win) ((Stream *)Cptr(((MedleyWindow)Cptr(win))->DSP))
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
#include "stack.h" /* for FX2 */
|
#include "stack.h" /* for FX2 */
|
||||||
LispPTR make_value_list(int argcount, LispPTR *argarray);
|
LispPTR make_value_list(int argcount, LispPTR *argarray);
|
||||||
void simulate_unbind(FX2 *frame, int unbind_count, FX2 *returner);
|
void simulate_unbind(FX2 *frame, int unbind_count, FX2 *returner);
|
||||||
LispPTR values(int arg_count, register LispPTR *args);
|
LispPTR values(int arg_count, LispPTR *args);
|
||||||
LispPTR values_list(int arg_count, register LispPTR *args);
|
LispPTR values_list(int arg_count, LispPTR *args);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
94
inc/my.h
94
inc/my.h
@@ -16,18 +16,15 @@
|
|||||||
/* Manufactured in the United States of America. */
|
/* Manufactured in the United States of America. */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
#include "adr68k.h" /* for Addr68k_from_LADDR */
|
#include "version.h" // for BIGVM
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
|
||||||
#include "lispmap.h" /* for S_NEGATIVE, S_POSITIVE */
|
#include "arith.h" // for N_ARITH_SWITCH, N_GETNUMBER
|
||||||
#include "lsptypes.h" /* for GETWORD */
|
#include "gcdata.h" // for ADDREF, DELREF
|
||||||
|
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
|
||||||
#define S_CHARACTER 0x70000
|
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
|
||||||
#ifdef BIGVM
|
#include "lspglob.h"
|
||||||
#define IsNumber(address) ((GETWORD(MDStypetbl +(((address) & 0x0fffff00)>>9))) & 0x1000)
|
#include "lsptypes.h" // for GETBYTE, GETWORD, GetTypeNumber, TYPE_FLOATP
|
||||||
#else
|
#include "mkcelldefs.h" // for createcell68k
|
||||||
#define IsNumber(address) ((GETWORD(MDStypetbl +(((address) & 0x0ffff00)>>9))) & 0x1000)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
@@ -48,10 +45,10 @@
|
|||||||
default: \
|
default: \
|
||||||
switch (GetTypeNumber(arg)) { \
|
switch (GetTypeNumber(arg)) { \
|
||||||
case TYPE_FLOATP: \
|
case TYPE_FLOATP: \
|
||||||
(dest) = *((float *)Addr68k_from_LADDR(arg)); \
|
(dest) = *((float *)NativeAligned4FromLAddr(arg)); \
|
||||||
break; \
|
break; \
|
||||||
case TYPE_FIXP: \
|
case TYPE_FIXP: \
|
||||||
(dest) = (float)(*((int *)Addr68k_from_LADDR(arg)));\
|
(dest) = (float)(*((int *)NativeAligned4FromLAddr(arg))); \
|
||||||
break; \
|
break; \
|
||||||
default: ERROR_EXIT(tos); \
|
default: ERROR_EXIT(tos); \
|
||||||
} \
|
} \
|
||||||
@@ -65,45 +62,56 @@
|
|||||||
(dest) = (arg) & 0xFFFF; \
|
(dest) = (arg) & 0xFFFF; \
|
||||||
else { \
|
else { \
|
||||||
if (GetTypeNumber(arg) != TYPE_FIXP) ERROR_EXIT(tos); \
|
if (GetTypeNumber(arg) != TYPE_FIXP) ERROR_EXIT(tos); \
|
||||||
if (((dest) = *((int *)Addr68k_from_LADDR(arg))) & 0x80000000) \
|
if (((dest) = *((int *)NativeAligned4FromLAddr(arg))) & 0x80000000) \
|
||||||
ERROR_EXIT(tos); \
|
ERROR_EXIT(tos); \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline LispPTR
|
static inline LispPTR
|
||||||
aref_switch(int type, LispPTR tos, LispPTR baseL, int index)
|
aref_switch(unsigned type, LispPTR tos, LispPTR baseL, int index)
|
||||||
{
|
{
|
||||||
LispPTR result;
|
int result;
|
||||||
DLword *wordp;
|
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 38: /* pointer : 32 bits */
|
case 38: /* pointer : 32 bits */
|
||||||
return(*(((LispPTR *)Addr68k_from_LADDR(baseL)) + index));
|
return(*(((LispPTR *)NativeAligned4FromLAddr(baseL)) + index));
|
||||||
|
|
||||||
case 20: /* signed : 16 bits */
|
case 20: /* signed : 16 bits */
|
||||||
result = (GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF;
|
result = (GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF;
|
||||||
if (result & 0x8000) return(result | S_NEGATIVE);
|
if (result & 0x8000) return(result | S_NEGATIVE);
|
||||||
else return(result | S_POSITIVE);
|
else return(result | S_POSITIVE);
|
||||||
|
|
||||||
case 67: /* Character : 8 bits */
|
case 67: /* Character : 8 bits */
|
||||||
return(S_CHARACTER | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF));
|
return(S_CHARACTER | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF));
|
||||||
|
|
||||||
case 22: /* signed : 32 bits */
|
case 22: /* signed : 32 bits */
|
||||||
result = *(((LispPTR *)Addr68k_from_LADDR(baseL)) + index);
|
result = *(((int *)NativeAligned4FromLAddr(baseL)) + index);
|
||||||
N_ARITH_SWITCH(result);
|
N_ARITH_SWITCH(result);
|
||||||
|
|
||||||
case 0: /* unsigned : 1 bit per element */
|
case 0: /* unsigned : 1 bit per element */
|
||||||
return(S_POSITIVE | (((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + (index >> 3))) >> (7 - (index & 7))) & 1));
|
return(S_POSITIVE | (((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + (index >> 3))) >> (7 - (index & 7))) & 1));
|
||||||
|
|
||||||
case 3: /* unsigned : 8 bits per element */
|
case 3: /* unsigned : 8 bits per element */
|
||||||
return(S_POSITIVE | ((GETBYTE(((char *)Addr68k_from_LADDR(baseL)) + index)) & 0xFF));
|
return(S_POSITIVE | ((GETBYTE(((char *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFF));
|
||||||
|
|
||||||
case 4: /* unsigned : 16 bits per element */
|
case 4: /* unsigned : 16 bits per element */
|
||||||
return(S_POSITIVE | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF));
|
return(S_POSITIVE | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF));
|
||||||
|
|
||||||
case 54: /* Float : 32 bits */
|
case 54: /* Float : 32 bits */
|
||||||
wordp = createcell68k(TYPE_FLOATP);
|
{
|
||||||
*((LispPTR *)wordp) = *(((LispPTR *)Addr68k_from_LADDR(baseL)) + index);
|
float *cellp = (float *)createcell68k(TYPE_FLOATP);
|
||||||
return(LADDR_from_68k(wordp));
|
*cellp = *(float *)(NativeAligned4FromLAddr(baseL) + index);
|
||||||
|
return (LAddrFromNative(cellp));
|
||||||
|
}
|
||||||
|
|
||||||
case 68: /* Character : 16 bits */
|
case 68: /* Character : 16 bits */
|
||||||
return(S_CHARACTER | ((GETWORD(((DLword *)Addr68k_from_LADDR(baseL)) + index)) & 0xFFFF));
|
return(S_CHARACTER | ((GETWORD(((DLword *)NativeAligned2FromLAddr(baseL)) + index)) & 0xFFFF));
|
||||||
|
|
||||||
case 86: /* XPointer : 32 bits */
|
case 86: /* XPointer : 32 bits */
|
||||||
return(*(((LispPTR *)Addr68k_from_LADDR(baseL)) + index));
|
return(*(((LispPTR *)NativeAligned4FromLAddr(baseL)) + index));
|
||||||
default: /* Illegal or Unimplemented */
|
|
||||||
|
default: /* Illegal or Unimplemented */
|
||||||
ERROR_EXIT(tos);
|
ERROR_EXIT(tos);
|
||||||
}/* end switch typenumber */
|
}/* end switch typenumber */
|
||||||
}
|
}
|
||||||
@@ -112,60 +120,60 @@ aref_switch(int type, LispPTR tos, LispPTR baseL, int index)
|
|||||||
{ \
|
{ \
|
||||||
switch (type) { \
|
switch (type) { \
|
||||||
case 38: /* pointer : 32 bits */ \
|
case 38: /* pointer : 32 bits */ \
|
||||||
GCLOOKUP(*(((int *)Addr68k_from_LADDR(base)) + index), DELREF); \
|
GCLOOKUP(*(((int *)NativeAligned4FromLAddr(base)) + index), DELREF); \
|
||||||
GCLOOKUP(data, ADDREF); \
|
GCLOOKUP(data, ADDREF); \
|
||||||
*(((int *)Addr68k_from_LADDR(base)) + index) = data; \
|
*(((int *)NativeAligned4FromLAddr(base)) + index) = data; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 20: /* signed : 16 bits */ \
|
case 20: /* signed : 16 bits */ \
|
||||||
new = data & 0xFFFF; \
|
new = data & 0xFFFF; \
|
||||||
if ((((data & SEGMASK) == S_POSITIVE) && ((data & 0x8000) == 0)) ||\
|
if ((((data & SEGMASK) == S_POSITIVE) && ((data & 0x8000) == 0)) ||\
|
||||||
(((data & SEGMASK) == S_NEGATIVE) && (data & 0x8000))) \
|
(((data & SEGMASK) == S_NEGATIVE) && (data & 0x8000))) \
|
||||||
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
|
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
|
||||||
else ERROR_EXIT(tos); \
|
else ERROR_EXIT(tos); \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 67: /* Character : 8 bits */ \
|
case 67: /* Character : 8 bits */ \
|
||||||
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
|
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
|
||||||
new = data & 0xFFFF; \
|
new = data & 0xFFFF; \
|
||||||
if (new > 0xFF) ERROR_EXIT(tos); \
|
if (new > 0xFF) ERROR_EXIT(tos); \
|
||||||
GETBYTE(((char *)Addr68k_from_LADDR(base)) + index) = new; \
|
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index) = new; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 22: /* signed : 32 bits */ \
|
case 22: /* signed : 32 bits */ \
|
||||||
N_GETNUMBER(data, new, doufn); \
|
N_GETNUMBER(data, new, doufn); \
|
||||||
*(((int *)Addr68k_from_LADDR(base)) + index) = new; \
|
*(((int *)NativeAligned4FromLAddr(base)) + index) = new; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 0: /* unsigned : 1 bit per element */ \
|
case 0: /* unsigned : 1 bit per element */ \
|
||||||
N_GetPos(data, new, tos); \
|
N_GetPos(data, new, tos); \
|
||||||
if (new > 1) ERROR_EXIT(tos); \
|
if (new > 1) ERROR_EXIT(tos); \
|
||||||
if (new) { \
|
if (new) { \
|
||||||
new = (1 << (7 - (index & 7))); \
|
new = (1 << (7 - (index & 7))); \
|
||||||
GETBYTE(((char *)Addr68k_from_LADDR(base)) + (index >> 3)) |= new; \
|
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + (index >> 3)) |= new; \
|
||||||
} \
|
} \
|
||||||
else { \
|
else { \
|
||||||
new = 0xFF - (1 << (7 - (index & 7))); \
|
new = 0xFF - (1 << (7 - (index & 7))); \
|
||||||
GETBYTE(((char *)Addr68k_from_LADDR(base)) + (index >> 3)) &= new; \
|
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + (index >> 3)) &= new; \
|
||||||
} \
|
} \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 3: /* unsigned : 8 bits per element */ \
|
case 3: /* unsigned : 8 bits per element */ \
|
||||||
N_GetPos(data, new, tos); \
|
N_GetPos(data, new, tos); \
|
||||||
if (new > 0xFF) ERROR_EXIT(tos); \
|
if (new > 0xFF) ERROR_EXIT(tos); \
|
||||||
GETBYTE(((char *)Addr68k_from_LADDR(base)) + index) = new; \
|
GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index) = new; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 4: /* unsigned : 16 bits per element */ \
|
case 4: /* unsigned : 16 bits per element */ \
|
||||||
N_GetPos(data, new, tos); \
|
N_GetPos(data, new, tos); \
|
||||||
if (new > 0xFFFF) ERROR_EXIT(tos); \
|
if (new > 0xFFFF) ERROR_EXIT(tos); \
|
||||||
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
|
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 54: /* Float : 32 bits */ \
|
case 54: /* Float : 32 bits */ \
|
||||||
if (GetTypeNumber(data) != TYPE_FLOATP) ERROR_EXIT(tos); \
|
if (GetTypeNumber(data) != TYPE_FLOATP) ERROR_EXIT(tos); \
|
||||||
*(((int *)Addr68k_from_LADDR(base)) + index) = *((int *)Addr68k_from_LADDR(data)); \
|
*(((int *)NativeAligned4FromLAddr(base)) + index) = *((int *)NativeAligned4FromLAddr(data)); \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 68: /* Character : 16 bits */ \
|
case 68: /* Character : 16 bits */ \
|
||||||
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
|
if ((data & SEGMASK) != S_CHARACTER) ERROR_EXIT(tos); \
|
||||||
new = data & 0xFFFF; \
|
new = data & 0xFFFF; \
|
||||||
GETWORD(((DLword *)Addr68k_from_LADDR(base)) + index) = new; \
|
GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index) = new; \
|
||||||
return(data); \
|
return(data); \
|
||||||
case 86: /* XPointer : 32 bits */ \
|
case 86: /* XPointer : 32 bits */ \
|
||||||
*(((int *)Addr68k_from_LADDR(base)) + index) = data; \
|
*(((int *)NativeAligned4FromLAddr(base)) + index) = data; \
|
||||||
return(data); \
|
return(data); \
|
||||||
default: /* Illegal or Unimplemented */ \
|
default: /* Illegal or Unimplemented */ \
|
||||||
ERROR_EXIT(tos); \
|
ERROR_EXIT(tos); \
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
/* Manufactured in the United States of America. */
|
/* Manufactured in the United States of America. */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
#include "osmsgdefs.h" // for flush_pty
|
||||||
|
|
||||||
#define OSMESSAGE_PRINT(print_exp) \
|
#define OSMESSAGE_PRINT(print_exp) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
26
inc/return.h
26
inc/return.h
@@ -35,23 +35,21 @@
|
|||||||
/* FAST case return use */
|
/* FAST case return use */
|
||||||
#ifndef RESWAPPEDCODESTREAM
|
#ifndef RESWAPPEDCODESTREAM
|
||||||
#define FastRetCALL \
|
#define FastRetCALL \
|
||||||
{ \
|
do { \
|
||||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||||
IVar = Addr68k_from_LADDR(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||||
FuncObj = (struct fnhead *) \
|
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||||
Addr68k_from_LADDR(FX_FNHEADER); \
|
|
||||||
/* Get PC from Returnee's pc slot in FX */ \
|
/* Get PC from Returnee's pc slot in FX */ \
|
||||||
PC = (ByteCode *)FuncObj + CURRENTFX->pc ; \
|
PC = (ByteCode *)FuncObj + CURRENTFX->pc ; \
|
||||||
}
|
} while (0)
|
||||||
#else
|
#else
|
||||||
#define FastRetCALL \
|
#define FastRetCALL \
|
||||||
{ \
|
do { \
|
||||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||||
IVar = Addr68k_from_LADDR(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||||
FuncObj = (struct fnhead *) \
|
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||||
Addr68k_from_LADDR(FX_FNHEADER); \
|
|
||||||
/* Get PC from Returnee's pc slot in FX */ \
|
/* Get PC from Returnee's pc slot in FX */ \
|
||||||
PC = (ByteCode *)FuncObj + CURRENTFX->pc ; \
|
PC = (ByteCode *)FuncObj + CURRENTFX->pc ; \
|
||||||
if (!(FuncObj->byteswapped)) \
|
if (!(FuncObj->byteswapped)) \
|
||||||
@@ -59,7 +57,7 @@
|
|||||||
byte_swap_code_block(FuncObj); \
|
byte_swap_code_block(FuncObj); \
|
||||||
FuncObj->byteswapped = 1; \
|
FuncObj->byteswapped = 1; \
|
||||||
} \
|
} \
|
||||||
}
|
} while (0)
|
||||||
#endif /* RESWAPPEDCODESTREAM */
|
#endif /* RESWAPPEDCODESTREAM */
|
||||||
|
|
||||||
|
|
||||||
@@ -67,8 +65,8 @@
|
|||||||
/** in CONTEXTSW , for exchanging context **/
|
/** in CONTEXTSW , for exchanging context **/
|
||||||
|
|
||||||
#define Midpunt(fxnum) \
|
#define Midpunt(fxnum) \
|
||||||
{ register DLword midpunt; \
|
{ DLword midpunt; \
|
||||||
midpunt = LOLOC(LADDR_from_68k(CURRENTFX)); \
|
midpunt = LOLOC(LAddrFromNative(CURRENTFX)); \
|
||||||
PVar=(DLword *) \
|
PVar=(DLword *) \
|
||||||
Addr68k_from_StkOffset( \
|
Addr68k_from_StkOffset( \
|
||||||
(GETWORD(((DLword *)InterfacePage) + (fxnum)))) \
|
(GETWORD(((DLword *)InterfacePage) + (fxnum)))) \
|
||||||
@@ -80,7 +78,7 @@
|
|||||||
#define CHECKFX \
|
#define CHECKFX \
|
||||||
if (((UNSIGNED)PVar -(UNSIGNED)CURRENTFX) != 20) \
|
if (((UNSIGNED)PVar -(UNSIGNED)CURRENTFX) != 20) \
|
||||||
{ printf("Invalid FX(0x%x) and PV(0x%x) \n", \
|
{ printf("Invalid FX(0x%x) and PV(0x%x) \n", \
|
||||||
LADDR_from_68k(CURRENTFX),LADDR_from_68k(PVar)); \
|
LAddrFromNative(CURRENTFX),LAddrFromNative(PVar)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -98,7 +96,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#define AFTER_CONTEXTSW \
|
#define AFTER_CONTEXTSW \
|
||||||
{ register DLword *ac_ptr68k,*ac_freeptr; \
|
{ DLword *ac_ptr68k,*ac_freeptr; \
|
||||||
ac_ptr68k = (DLword*)Addr68k_from_StkOffset(CURRENTFX->nextblock); \
|
ac_ptr68k = (DLword*)Addr68k_from_StkOffset(CURRENTFX->nextblock); \
|
||||||
if(GETWORD(ac_ptr68k) != STK_FSB_WORD) error("pre_moveframe: MP9316"); \
|
if(GETWORD(ac_ptr68k) != STK_FSB_WORD) error("pre_moveframe: MP9316"); \
|
||||||
CHECK_FX(CURRENTFX); \
|
CHECK_FX(CURRENTFX); \
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
#define RETURNDEFS_H 1
|
#define RETURNDEFS_H 1
|
||||||
#include "lispemul.h" /* for DLword */
|
#include "lispemul.h" /* for DLword */
|
||||||
void OP_contextsw(void);
|
void OP_contextsw(void);
|
||||||
void contextsw(register DLword fxnum, register DLword bytenum, register DLword flags);
|
void contextsw(DLword fxnum, DLword bytenum, DLword flags);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user