view extra/ar @ 470:2c1c5dd84024

Add << prefix to force 5 bit offsets in indexed modes Rounding out the compliment of operand size prefixes, we now have "<<" to mean "force 5 bits". According to Steve Bjork, this was the "official" way to do this since 1980. However, I have no official Motorola source for that. It does suggest that the choice of "<<" is consistent with other (historical) assemblers, though. Either way, it seems the most logical choice while avoiding any conflicts with legal source code, so "<<" it is.
author William Astle <lost@l-w.ca>
date Mon, 23 Jul 2018 17:45:18 -0600
parents 92cabf300986
children
line wrap: on
line source

#!/bin/sh
#
#
# Copyright 2009 by William Astle <lost@l-w.ca>
#
#This file is part of LWTOOLS.
#
#LWTOOLS is free software: you can redistribute it and/or modify it under the
#terms of the GNU General Public License as published by the Free Software
#Foundation, either version 3 of the License, or (at your option) any later
#version.
#
#This program is distributed in the hope that it will be useful, but WITHOUT
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
#more details.
#
#You should have received a copy of the GNU General Public License along with
#this program. If not, see <http://www.gnu.org/licenses/>.

# this was based somewhat on the "ar" script from gcc6809

# This script is a frontend to the lwar library manager, to make it
# look more like GNU ar.  Not all ar features are supported here.
# It basically translates ar style options into lwar format.

# Parse and translate command-line options

# ar options cheatsheet:
# r: insert (with replace)
# c: create archive
# u: only replace newer files
# v: verbose mode
# x: extract files from archive

options=$1; shift
case $options in
	rc|cru|-rc|-cru)
		options="--replace --create"
		;;
	rv)
		options="--replace"
		;;
	x|-x)
		options="--extract"
		;;
	-C|--cache)
		exit 0
		;;
	*)
		options="--replace --create $options"
		if [ "$libname" = "" ]; then
			libname=$options
		fi
		;;
esac

if [ "x$options" = "x" ]; then
	echo "ar (m6809): no options given"
	exit 1
fi

# Run the real lwar with translated options.
# --nopaths is given to get the proper standard "ar" behaviour
# which doesn't store path names
exec lwar --nopaths $options $*