Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Jan 2001 19:08:33 +0000 (GMT)
From:      George Reid <greid@dogma.freebsd-uk.eu.org>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/24022: New port: as80: A lightweight 8080/8085 assembler for UN*X systems
Message-ID:  <Pine.BSF.4.21.0101021907480.22319-100000@sobek.openirc.co.uk>
Resent-Message-ID: <200101021910.f02JA1P81958@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         24022
>Category:       ports
>Synopsis:       New port: as80: A lightweight 8080/8085 assembler for UN*X systems
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 02 11:10:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     George Reid
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
FreeBSD UKUG
>Environment:
n/a
>Description:
As80 is a lightweight 8080/8085 assembler for UN*X systems. It was
developed on a Debian GNU/Linux System and should well work on other
UN*Xes. As80 is not invoked directly but through a wrapper shell
script (asm) that handles some basic conversion (upper to lower etc.). So
be sure to use this instead of directly running as80 and getting lots of
(if you are lucky, meaningful) error messages.

Although As80 is still in a somewhat early phase of development, it
won't take much to come to one level with professional assemblers. The
use of the C preprocessor instead of implementing some of the
functionality (.EQU comes to mind) makes it easy to write assembler
source programs in a more flexible way. At least, that's what I think.
You are of course welcome to improve and/or add as you like, but be
sure to always obey the license terms.

- George Reid
greid@ukug.uk.freebsd.org
>How-To-Repeat:
n/a
>Fix:
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	as80
#	as80/Makefile
#	as80/distinfo
#	as80/files
#	as80/files/patch-aa
#	as80/files/patch-ab
#	as80/files/patch-ac
#	as80/pkg-plist
#	as80/pkg-comment
#	as80/pkg-descr
#
echo c - as80
mkdir -p as80 > /dev/null 2>&1
echo x - as80/Makefile
sed 's/^X//' >as80/Makefile << 'END-of-as80/Makefile'
X# New ports collection makefile for:   as80
X# Date created:        02 January 2001
X# Whom:                George Reid <greid@ukug.uk.freebsd.org>
X#
X# $FreeBSD$
X#
X
XPORTNAME=       	as80
XPORTVERSION=		1.0
XCATEGORIES=     	devel
XMASTER_SITES=   	http://home.t-online.de/home/thomas.strathmann/files/
X
XMAINTAINER=		greid@ukug.uk.freebsd.org
X
XWRKSRC=			${WRKDIR}/${PORTNAME}
X
XALL_TARGET=		${PORTNAME}
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/as80 ${PREFIX}/bin
X	${INSTALL_SCRIPT} ${WRKSRC}/asm ${PREFIX}/bin
X
X.include <bsd.port.mk>
END-of-as80/Makefile
echo x - as80/distinfo
sed 's/^X//' >as80/distinfo << 'END-of-as80/distinfo'
XMD5 (as80-1.0.tar.gz) = 9eb7c83d055982e64a722f6c745d5579
END-of-as80/distinfo
echo c - as80/files
mkdir -p as80/files > /dev/null 2>&1
echo x - as80/files/patch-aa
sed 's/^X//' >as80/files/patch-aa << 'END-of-as80/files/patch-aa'
X--- Makefile.orig	Sun Dec 31 15:08:12 2000
X+++ Makefile	Tue Jan  2 19:04:46 2001
X@@ -1,5 +1,5 @@
X CC=gcc
X-CCFLAGS=-O3 -fomit-frame-pointer
X+CFLAGS+= -fomit-frame-pointer
X 
X as80:	as80.c
X-	$(CC) -o $@ $? $(CCFLAGS)
X+	$(CC) -o $@ $? $(CFLAGS)
END-of-as80/files/patch-aa
echo x - as80/files/patch-ab
sed 's/^X//' >as80/files/patch-ab << 'END-of-as80/files/patch-ab'
X--- as80.c.orig	Tue Jan  2 18:34:06 2001
X+++ as80.c	Tue Jan  2 18:51:46 2001
X@@ -22,7 +22,7 @@
X 
X #include <stdio.h>
X #include <string.h>
X-#include <malloc.h>
X+#include <stdlib.h>
X 
X 
X /* maximun numbers of translated codes */
X@@ -44,7 +44,7 @@
X FILE *in, *out, *lst;
X 
X /* translate the input opcodes and operands */
X-int translate (const char *opc, const char *opr);
X+int translate (char *opc, char *opr);
X 
X /* open files and such */
X int init (int argc, char **argv);
X@@ -69,7 +69,8 @@
X int
X main (int argc, char **argv)
X {
X-  int line = 0, org = 0, i;
X+  int line = 0, i;
X+  fpos_t org = 0;
X   char *label, *opcode, *operands;
X   label = (char *) malloc (8);
X   opcode = (char *) malloc (5);
X@@ -211,7 +212,7 @@
X }
X 
X int
X-translate (const char *opc, const char *opr)
X+translate (char *opc, char *opr)
X {
X   int i;
X 
END-of-as80/files/patch-ab
echo x - as80/files/patch-ac
sed 's/^X//' >as80/files/patch-ac << 'END-of-as80/files/patch-ac'
X--- pseudo.h.orig	Sun Dec 31 15:08:18 2000
X+++ pseudo.h	Tue Jan  2 19:00:14 2001
X@@ -53,7 +53,7 @@
X 
X if (strstr (opc, ".org"))
X   {
X-    word offset;
X+    fpos_t offset;
X     length = 0;
X     sscanf (opr, "%x", &offset);
X     fsetpos (out, &offset);
X@@ -65,7 +65,7 @@
X /* a lable ... */
X if (strstr (opc, ":"))
X   {
X-    word pos;
X+    fpos_t pos;
X     char *label;
X     label = (char *) malloc (strlen (opc));
X     length = 0;
END-of-as80/files/patch-ac
echo x - as80/pkg-plist
sed 's/^X//' >as80/pkg-plist << 'END-of-as80/pkg-plist'
Xbin/as80
Xbin/asm
END-of-as80/pkg-plist
echo x - as80/pkg-comment
sed 's/^X//' >as80/pkg-comment << 'END-of-as80/pkg-comment'
XA lightweight 8080/8085 assembler for UN*X systems
END-of-as80/pkg-comment
echo x - as80/pkg-descr
sed 's/^X//' >as80/pkg-descr << 'END-of-as80/pkg-descr'
XAs80 is a lightweight 8080/8085 assembler for UN*X systems. It was
Xdeveloped on a Debian GNU/Linux System and should well work on other
XUN*Xes. As80 is not invoked directly but through a wrapper shell
Xscript (asm) that handles some basic conversion (upper to lower etc.). So
Xbe sure to use this instead of directly running as80 and getting lots of
X(if you are lucky, meaningful) error messages.
X
XAlthough As80 is still in a somewhat early phase of development, it
Xwon't take much to come to one level with professional assemblers. The
Xuse of the C preprocessor instead of implementing some of the
Xfunctionality (.EQU comes to mind) makes it easy to write assembler
Xsource programs in a more flexible way. At least, that's what I think.
XYou are of course welcome to improve and/or add as you like, but be
Xsure to always obey the license terms.
X
X- George Reid
Xgreid@ukug.uk.freebsd.org
END-of-as80/pkg-descr
exit



>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0101021907480.22319-100000>