home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CBM Funet Archive
/
cbm-funet-archive-2003.iso
/
cbm
/
programming
/
msdos
/
xa214f.lzh
/
xa214f
/
src
/
xau.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-01-26
|
2KB
|
76 lines
/*
XA65 - 6502 CROSS ASSEMBLER AND UTILITY SUITE
cOPYRIGHT (c) 1989-1998 aNDR{$e9} fACHAT (A.FACHAT@PHYSIK.TU-CHEMNITZ.DE)
tHIS PROGRAM 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 2 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, WRITE TO THE fREE sOFTWARE
fOUNDATION, iNC., 675 mASS aVE, cAMBRIDGE, ma 02139, usa.
*/
#INCLUDE <STDIO.H>
#INCLUDE <STDLIB.H>
#INCLUDE "XAU.H"
#INCLUDE "XAH.H"
#INCLUDE "XAL.H"
/*
STATIC INT *ULIST = null;
STATIC INT UN = 0;
STATIC INT UM = 0;
*/
INT U_LABEL(INT LABNR) {$7b}
INT I;
/*PRINTF("U_LABEL: %D\N",LABNR);*/
IF(!AFILE->UD.ULIST) {$7b}
AFILE->UD.ULIST = MALLOC(200*SIZEOF(INT));
IF(AFILE->UD.ULIST) AFILE->UD.UM=200;
{$7d}
FOR(I=0;I<AFILE->UD.UN;I++) {$7b}
IF(AFILE->UD.ULIST[I] == LABNR) RETURN I;
{$7d}
IF(AFILE->UD.UN>=AFILE->UD.UM) {$7b}
AFILE->UD.UM *= 1.5;
AFILE->UD.ULIST = REALLOC(AFILE->UD.ULIST, AFILE->UD.UM * SIZEOF(INT));
IF(!AFILE->UD.ULIST) {$7b}
FPRINTF(STDERR, "pANIC: nO MEMORY!\N");
EXIT(1);
{$7d}
{$7d}
AFILE->UD.ULIST[AFILE->UD.UN] = LABNR;
RETURN AFILE->UD.UN++;
{$7d}
#DEFINE FPUTW(A,FP) FPUTC((A)&255,FP);FPUTC((A>>8)&255,FP)
VOID U_WRITE(file *FP) {$7b}
INT I, D;
CHAR *S;
/*PRINTF("U_WRITE: UN=%D\N",AFILE->UD.UN);*/
FPUTW(AFILE->UD.UN, FP);
FOR(I=0;I<AFILE->UD.UN;I++) {$7b}
L_VGET(AFILE->UD.ULIST[I], &D, &S);
FPRINTF(FP,"%S", S);
FPUTC(0,FP);
{$7d}
FREE(AFILE->UD.ULIST);
AFILE->UD.ULIST=null;
AFILE->UD.UM = AFILE->UD.UN = 0;
{$7d}