Skip to content

Commit

Permalink
This is release 5.5.0 from cvs.
Browse files Browse the repository at this point in the history
  • Loading branch information
albertvanderhorst committed Apr 21, 2024
1 parent 04920a4 commit 6b33078
Show file tree
Hide file tree
Showing 29 changed files with 1,019 additions and 595 deletions.
71 changes: 32 additions & 39 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# $Id: Makefile,v 5.67 2022/03/23 12:59:50 albert Exp $
# $Id: Makefile,v 5.75 2024/04/21 17:54:09 albert Exp $

# Copyright(2013): Albert van der Horst, HCC FIG Holland by GNU Public License
#
Expand Down Expand Up @@ -38,7 +38,8 @@ M4=m4 -G ciforth.m4
M4_GNU=m4 ciforth.m4

FORTH=./lina # Our utility Forth.

FASM=/usr/bin/fasm
#FASM=$(BIN)/fasm
# ALL FILES STARTING IN ``ci86'' (OUTHER ``ci86.gnr'') ARE GENERATED

INGREDIENTS = \
Expand Down Expand Up @@ -129,12 +130,18 @@ cifgen.mi \
ciforth.mi \
intro.mi \
manual.mi \
optimiser.mi \
rational.mi \
# That's all folks!

# Documentation files and archives
DOC = \
COPYING \
copyright \
lina.1 \
READMElina.txt \
READMEwina.txt \
howto.txt \
README.ciforth \
testreport.txt \
$(SRCMI) \
Expand Down Expand Up @@ -213,6 +220,7 @@ lina64.cfg
# The usable files.
RELEASELINA32USER = \
COPYING \
copyright \
READMElina.txt \
lina32 \
forth.lab \
Expand All @@ -231,6 +239,7 @@ ci86.lina32.texinfo \

RELEASELINA64USER = \
COPYING \
copyright \
READMElina.txt \
lina64 \
forth.lab \
Expand Down Expand Up @@ -267,7 +276,7 @@ TEMPFILE=/tmp/ciforthscratch
%: %.frt ; $(FORTH) -c $<

# Define fasm as *the* assembler generating binary files.
%:%.fas ; fasm $< -m256000
%:%.fas ; $(FASM) $< -m256000 ; chmod +x $@

# Define NASM as an alternative for generating bin files.
%.bin:%.asm ; nasm -fbin $< -o $@ -l $*.lst
Expand All @@ -276,7 +285,7 @@ TEMPFILE=/tmp/ciforthscratch
# allow to generate ci86.mina.bin etc.
ci86.%.rawdoc ci86.%.rawtest : ci86.%.asm ;

VERSION : ; echo 'define({M4_VERSION},{'${VERSION}'})' >VERSION
VERSION : ; echo 'define({M4_VERSION},{'${VERSION}'})dnl' >VERSION

ci86.%.asm : %.cfg VERSION nasm.m4 ci86.gnr
cat $+ | $(M4) $(M4_DEBUG) - > $(TEMPFILE)
Expand Down Expand Up @@ -333,17 +342,17 @@ toblk: toblk.frt $(FORTH)
rm -f forth.lab forth.lab.lina

# Canonical targets
lina : lina32 ; cp $< $@
#lina32 : flina32 ; cp $< $@
#lina64 : flina64 ; cp $< $@
lina32 : glina32 ; cp $< $@
lina64 : glina64 ; cp $< $@
lina : lina64 ; cp $< $@
lina32 : flina32 ; cp $< $@
lina64 : flina64 ; cp $< $@
#lina32 : glina32 ; cp $< $@
#lina64 : glina64 ; cp $< $@

#lina: lina64 ; $< -g 8000 $@
# For MS-windows programs fasm demands an include directory with assorted
# stuff. Use a symbolic link. Works on fasm 1.73.20 possibly not earlier.
wina32.exe: ci86.wina32.fas ; fasm $+ -m256000 ; mv ${<:.fas=}.exe $@
wina64.exe: ci86.wina64.fas ; fasm $+ -m256000 ; mv ${<:.fas=}.exe $@
wina32.exe: ci86.wina32.fas ; $(FASM) $+ -m256000 ; mv ${<:.fas=}.exe $@
wina64.exe: ci86.wina64.fas ; $(FASM) $+ -m256000 ; mv ${<:.fas=}.exe $@

# Some of these targets make no sense and will fail
all: $(TARGETS:%=ci86.%.asm) $(TARGETS:%=ci86.%.msm) $(BINTARGETS:%=ci86.%.bin) \
Expand Down Expand Up @@ -404,7 +413,8 @@ moreboot: forth.lab.wina ci86.alone.bin ci86.mina.bin
allboot: boot filler moreboot

forth.lab.lina : toblk options.frt errors.linux.txt blocks.frt
cat options.frt errors.linux.txt blocks.frt | ./toblk >$@
$(M4) VERSION options.frt > optionscook.frt
cat optionscook.frt errors.linux.txt blocks.frt | ./toblk >$@
ln -f $@ forth.lab

forth.lab.wina : toblk options.frt errors.dos.txt blocks.frt
Expand Down Expand Up @@ -451,25 +461,19 @@ mslinks :
forth.lab : forth.lab.lina forth.lab.wina

LINA32ZIP : $(RELEASELINA32)
rm -f ci86.lina32-$(VERSION) forth.lab.lina
rm forth.lab.lina
make forth.lab.lina
ls $+ | sed s:^:ci86.lina32-$(VERSION)/: >MANIFEST
rm -rf ci86.lina32-$(VERSION) || true
ln -sf . ci86.lina32-$(VERSION)
tar -czvf ci86.lina32-$(VERSION).tar.gz `cat MANIFEST`
rm ci86.lina32-$(VERSION)

LINA64DEB : $(RELEASELINA64)
echo $+ >MANIFEST
debian.sh $(VERSION) lina64

LINA32DEB : $(RELEASELINA32)
echo $+ >MANIFEST
debian.sh $(VERSION) lina32

LINA64ZIP : $(RELEASELINA64)
rm -f ci86.lina64-$(VERSION) forth.lab.lina
rm forth.lab.lina
make forth.lab.lina
ls $+ | sed s:^:ci86.lina64-$(VERSION)/: >MANIFEST
rm -rf ci86.lina64-$(VERSION) || true
ln -sf . ci86.lina64-$(VERSION)
tar -czvf ci86.lina64-$(VERSION).tar.gz `cat MANIFEST`
rm ci86.lina64-$(VERSION)
Expand All @@ -496,13 +500,15 @@ nlina64 : ci86.lina64.o ; \

# Linux native forth by gnu tools
# Linux native forth by gnu tools, only works on a 64 bit system
glina32 : ci86.lina32.s ; as --32 $+; ld a.out -melf_i386 -N -o $@
glina64 : ci86.lina64.s ; as --64 $+; ld a.out -melf_x86_64 -N -o $@
glina32 : ci86.lina32.s ; as --32 -a=$@.lst $+; ld a.out -melf_i386 -N -o $@
glina64 : ci86.lina64.s ; as --64 -a=$@.lst $+; ld a.out -melf_x86_64 -N -o $@


# Linux native forth by fasm tools
flina32 : ci86.lina32.fas ; fasm $+ -m256000; mv ${<:.fas=} $@
flina64 : ci86.lina64.fas ; fasm $+ -m256000; mv ${<:.fas=} $@
# flina32 : ci86.lina32.fas ; $(FASM) $+ -m256000; mv ${<:.fas=} $@
# flina64 : ci86.lina64.fas ; $(FASM) $+ -m256000; mv ${<:.fas=} $@
flina32 : ci86.lina32 ; mv $< $@
flina64 : ci86.lina64 ; mv $< $@

# Nowadays in the future the name constant.m4 has disappeared in
# favour of constant_*.m4
Expand Down Expand Up @@ -539,16 +545,3 @@ LINA64_M4ZIP : $(RELEASELINA64_M4) VERSION ci86.gnr
# Add temporary stuff for testing, docs, optims.
include test.mak
include optim.mak

# not functional
# Obsolete, we don't yield for Debian pressure!
LINA32SRCZIPDEBIAN : $(RELEASELINA32_M4) VERSION ci86.gnr extract.mak
rm -f lina32-$(VERSION) forth.lab.lina
make forth.lab.lina
mkdir extract
cp ci86.gnr VERSION extract.mak $(EXTRACTORS) $(CONFIGURATIONS) extract
find $(RELEASELINA32USER) extract | \
sed s:^:lina32-$(VERSION)/: >MANIFEST
ln -sf . lina32-$(VERSION)
tar -czvf lina32-$(VERSION).tar.gz `cat MANIFEST`
rm -r lina32-$(VERSION) extract
117 changes: 60 additions & 57 deletions READMElina.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,15 @@
CIFORTH CUSTOMIZATION FOR LINUX

COPYRIGHT (c) 2000-2022 Albert van der Horst , THE NETHERLANDS
COPYRIGHT (c) 2000-2024 Albert van der Horst , THE NETHERLANDS
LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of version 2 of the GNU General
Public License as published by the Free Software Foundation.

Forth is a tool for evolutionary programming. This is the binary
distribution of lina 5.# . The following applies to all versions 5.#
of lina in 32 or 64 bits. Contrary to what you expect from me,
this documentation is common to lina32 and lina64, because there
are virtually no differences except cell size.

lina is the Linux native (= c-less) version of ciforth (common Intel
Forth), an interpret environment and compiler for Forth. It is (large
and by) compliant with the ISO Forth standard; the CORE wordset is
fully implemented. The small, classic, indirect threaded kernel
contains the essential, i.a. file access and exceptions. Its power is
multiplied by an extensive source library, that add i.a. a decompiler
and integrated 386 assembler. It is fully self contained; if you want
to understand a compiler in all details, this is your best, if not
only, choice. ciforth sports the highest documentation to binary
proportion in the EDP industry, barring m4 on Coherent.

RELEASE CONTENT
Don't panic! ciforth is just two files, binary and library.
The rest is documentation (plus examples and source).
## maybe 32 or 64.

COPYING Copyright notice
READMElina.txt This file
Expand All @@ -46,20 +30,8 @@ The rest is documentation (plus examples and source).
mywc Script example, old style.
wc.script Script example, new style.

The script examples only runs once you have installed /usr/bin/lina.

You can rebuild lina from the assembler file, instruction are in this
source.
The latest version and OSX and MS-windows versions can be fetched from
http://home.hccnet.nl/a.w.m.van.der.horst/ciforth.html
You have to change just one file, ci86.lina.fas.

For making extensive changes, such as modifying the header fields or
making a version booting from a hard disk or adapting to a different
assembler, I recomment the compiler factory over modifying the
assembler file. It is present in
https://github.com/albertvanderhorst/ciforth

UNPACK AND RUN
Unpack in the directory where you want to use it by :
tar xfz ci86.lina##-#.#.#.gz

Expand All @@ -69,8 +41,7 @@ or
lina## -e
or
lina
After linking with so:
ln -s /usr/bin/lina /usr/bin/lina64
after symbolic linking (see installation).

Print the manual (150 pages) by :
lpr ci86.lina##.ps
Expand All @@ -84,22 +55,28 @@ View the same information in ci86.lina##.pdf with an appropriate tool
Viewing the file ``ci86.lina##.html'' with a html viewer,
gives a reference that is concise but has more cross links.

The executables, script's and hellow.frt run at once,
provided the current directory (.) is in your PATH.
After proper installation you can run lina and script's
everywhere.

For system wide installation (32-bit) the following is recommended:
INSTALLATION
For system wide installation (64-bit) the following is recommended:
su
./lina32 -g 60 lina32+
./lina32+ -i /usr/bin/lina32 /usr/lib/forth.lab
ln -s /usr/bin/lina32 /usr/bin/lina
chmod 755 /usr/bin/lina32
./lina64 -g 60 lina64+
./lina64+ -i /usr/bin/lina64 /usr/lib/forth.lab
ln -s /usr/bin/lina64 /usr/bin/lina
chmod 755 /usr/bin/lina64
chmod 644 /usr/lib/forth.lab

mkdir /usr/share/doc/lina || true
cp ci86.lina32.* /usr/share/doc/lina
cp lina32.1 /usr/share/man/man1
cp ci86.lina64.* /usr/share/doc/lina
cp lina.1 /usr/share/man/man1/lina.1
cp ci86.lina64.info /usr/share/info/lina.info

The above increases Forth's dictionary space from 1 to 61 Mb.
Installing lina64 is similar, but now you may want to grow
by 8000 or 128000 Mbyte.
The above increases Forth's dictionary space with 60 Mb
(or beyond 4 Gbyte e.g. 8000 Mbyte. )
Installing lina32 is similar.
See also the -i option in the manual.

Once installed you can use lina :
Expand All @@ -108,17 +85,43 @@ Once installed you can use lina :

Source package in debian format
If you are installing from a deb file, all files are placed in the
appropriate directories. This solves the problem how to add the
.info file to the system, as this is difficult to do by hand.

NOTE ON "info"
The "info" system for program documentation actively discourages
adding documentation to a system, by hiding how a .info file
can be installed. The nice folks of Debian had added a separate
program install-info , but as of 2015 that has been replaced by
ginstall-info that reinstates the former unworkable situation
with info files.
In a pinch you can do
info -f <absolute-path>

$Id: READMElina.txt,v 5.7 2022/03/12 12:42:15 albert Exp $
appropriate directories.

CHECK
If you run lina with -v you can check the version of the
executable and the library. They must agree.

MODIFICATION
You can rebuild lina from the assembler file, instruction are in its
source.
The latest version and OSX and MS-windows versions can be fetched from
http://home.hccnet.nl/a.w.m.van.der.horst/ciforth.html
You have to change just one file, ci86.lina##.fas.

For making extensive changes, such as modifying the header fields or
making a version booting from a hard disk or adapting to a different
assembler, I recommend the compiler factory over modifying the
assembler file. It is present in
https://github.com/albertvanderhorst/ciforth

PROMOTION
Forth is a tool for evolutionary programming. This is the binary
distribution of lina 5.# . The following applies to all versions 5.#
of lina in 32 or 64 bits. Contrary to what you expect from me,
this README is common to lina32 and lina64, because there
are virtually no differences except cell size.
The default name is lina; this is the 64 bit version. The name
lina64 is only used if there is a lina32 version around.

lina is the Linux native (= c-less) version of ciforth (common Intel
Forth), an interpret environment and compiler for Forth. It is (large
and by) compliant with the ISO Forth standard; the CORE wordset is
fully implemented. The small, classic, indirect threaded kernel
contains the essential, i.a. file access and exceptions. Its power is
multiplied by an extensive source library, that add i.a. a decompiler
and integrated 386 assembler. It is fully self contained; if you want
to understand a compiler in all details, this is your best, if not
only, choice. ciforth sports the highest documentation to binary
proportion in the EDP industry, barring m4 on Coherent.

$Id: READMElina.txt,v 5.9 2024/04/21 16:22:40 albert Exp $
Loading

0 comments on commit 6b33078

Please sign in to comment.