Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.misc > #2075 > unrolled thread

Smaller C

Started by"James Harris" <james.harris.1@gmail.com>
First post2014-04-30 12:32 +0100
Last post2016-08-07 03:56 -0700
Articles 20 on this page of 23 — 5 participants

Back to article view | Back to comp.lang.misc


Contents

  Smaller C "James Harris" <james.harris.1@gmail.com> - 2014-04-30 12:32 +0100
    Re: Smaller C Nils M Holm <news2009@t3x.org> - 2014-04-30 15:56 +0000
      Re: Smaller C "James Harris" <james.harris.1@gmail.com> - 2014-05-01 12:25 +0100
        Re: Smaller C Nils M Holm <news2009@t3x.org> - 2014-05-01 13:32 +0000
    Re: Smaller C alexfrunews@gmail.com - 2014-08-07 10:22 -0700
      Re: Smaller C alexfrunews@gmail.com - 2014-08-07 10:28 -0700
      Re: Smaller C alexfrunews@gmail.com - 2014-09-14 03:07 -0700
        Re: Smaller C alexfrunews@gmail.com - 2014-11-09 03:26 -0800
          Re: Smaller C alexfrunews@gmail.com - 2014-11-28 04:07 -0800
            Re: Smaller C alexfrunews@gmail.com - 2014-12-21 01:59 -0800
              Re: Smaller C alexfrunews@gmail.com - 2015-01-10 10:38 -0800
                Re: Smaller C alexfrunews@gmail.com - 2015-04-19 23:56 -0700
                  Re: Smaller C alexfrunews@gmail.com - 2015-04-25 21:11 -0700
                    Re: Smaller C alexfrunews@gmail.com - 2015-05-16 17:50 -0700
                      Re: Smaller C luserdroog <mijoryx@yahoo.com> - 2015-05-20 02:26 -0700
                        Re: Smaller C alexfrunews@gmail.com - 2015-05-20 05:16 -0700
                          Re: Smaller C luserdroog <mijoryx@yahoo.com> - 2015-05-20 10:02 -0700
                            Re: Smaller C alexfrunews@gmail.com - 2015-05-21 03:21 -0700
                      Re: Smaller C alexfrunews@gmail.com - 2015-08-15 02:15 -0700
                        Re: Smaller C alexfrunews@gmail.com - 2015-09-06 15:56 -0700
                          Re: Smaller C alexfrunews@gmail.com - 2016-08-07 03:04 -0700
                            Re: Smaller C James Harris <james.harris.1@gmail.com> - 2016-08-07 11:15 +0100
                              Re: Smaller C alexfrunews@gmail.com - 2016-08-07 03:56 -0700

Page 1 of 2  [1] 2  Next page →


#2075 — Smaller C

From"James Harris" <james.harris.1@gmail.com>
Date2014-04-30 12:32 +0100
SubjectSmaller C
Message-ID<ljqn0t$p54$1@dont-email.me>
I have seen posts about Smaller C in other newsgroups but I don't believe 
the author has posted here. It seems to support a reasonable set of 
features.

  https://github.com/alexfru/SmallerC/wiki/Smaller-C-Wiki

I took a look at this as I was looking for a compiler to generate 16-bit x86 
code. This compiler does that but, at present, when generating assembly in 
that mode doesn't support integers longer than 16 bits. Oddly, that's what I 
was looking for: while the compiler I have been using (bcc) does support 
32-bit integers it seems to have a bug or two in handling them.

Anyway, the above compiler looks quite good and is under active development. 
I thought folks here might find it interesting.

James

[toc] | [next] | [standalone]


#2079

FromNils M Holm <news2009@t3x.org>
Date2014-04-30 15:56 +0000
Message-ID<bsckq5FjhlqU1@mid.individual.net>
In reply to#2075
James Harris <james.harris.1@gmail.com> wrote:
> I have seen posts about Smaller C in other newsgroups but I don't believe 
> the author has posted here. It seems to support a reasonable set of 
> features.
> 
>   https://github.com/alexfru/SmallerC/wiki/Smaller-C-Wiki
> 
> I took a look at this as I was looking for a compiler to generate 16-bit x86 
> code. This compiler does that but, at present, when generating assembly in 
> that mode doesn't support integers longer than 16 bits. Oddly, that's what I 
> was looking for: while the compiler I have been using (bcc) does support 
> 32-bit integers it seems to have a bug or two in handling them.

Here's an even smaller C compiler:

http://www.t3x.org/subc/index.html

It's subset is a little smaller than Smaller C's, but it has an optimizer
and an own libc. It generates code for the 8086 (full tool chain included),
386, x86-64, and ARMv6. The runtime code has been ported to FreeBSD, Linux,
NetBSD, OpenBSD, Darwin, DOS, and Windows.

I am working on it on and off.

-- 
Nils M Holm  < n m h @ t 3 x . o r g >  www.t3x.org

[toc] | [prev] | [next] | [standalone]


#2104

From"James Harris" <james.harris.1@gmail.com>
Date2014-05-01 12:25 +0100
Message-ID<ljtav9$amu$1@dont-email.me>
In reply to#2079
"Nils M Holm" <news2009@t3x.org> wrote in message 
news:bsckq5FjhlqU1@mid.individual.net...
> James Harris <james.harris.1@gmail.com> wrote:
>> I have seen posts about Smaller C in other newsgroups but I don't believe
>> the author has posted here. It seems to support a reasonable set of
>> features.
>>
>>   https://github.com/alexfru/SmallerC/wiki/Smaller-C-Wiki
>>
>> I took a look at this as I was looking for a compiler to generate 16-bit 
>> x86
>> code. This compiler does that but, at present, when generating assembly 
>> in
>> that mode doesn't support integers longer than 16 bits. Oddly, that's 
>> what I
>> was looking for: while the compiler I have been using (bcc) does support
>> 32-bit integers it seems to have a bug or two in handling them.
>
> Here's an even smaller C compiler:
>
> http://www.t3x.org/subc/index.html
>
> It's subset is a little smaller than Smaller C's, but it has an optimizer
> and an own libc. It generates code for the 8086 (full tool chain 
> included),
> 386, x86-64, and ARMv6. The runtime code has been ported to FreeBSD, 
> Linux,
> NetBSD, OpenBSD, Darwin, DOS, and Windows.
>
> I am working on it on and off.

I took a look at it for os=DOS and cpu=8086. Unfortunately for me from 
looking at the limits.h file it seems that in that mode it doesn't support 
the integer types I wanted: unsigned and signed 32-bit. It looks like a 
well-structured piece of software, though.

James

[toc] | [prev] | [next] | [standalone]


#2107

FromNils M Holm <news2009@t3x.org>
Date2014-05-01 13:32 +0000
Message-ID<bsf0ncF4a8fU1@mid.individual.net>
In reply to#2104
James Harris <james.harris.1@gmail.com> wrote:
> > Here's an even smaller C compiler:
> >
> > http://www.t3x.org/subc/index.html
> >
> > It's subset is a little smaller than Smaller C's, but it has an optimizer
> > and an own libc. It generates code for the 8086 (full tool chain 
> > included),
> > 386, x86-64, and ARMv6. The runtime code has been ported to FreeBSD, 
> > Linux,
> > NetBSD, OpenBSD, Darwin, DOS, and Windows.
> >
> > I am working on it on and off.
> 
> I took a look at it for os=DOS and cpu=8086. Unfortunately for me from 
> looking at the limits.h file it seems that in that mode it doesn't support 
> the integer types I wanted: unsigned and signed 32-bit.

Ah, so I have misunderstood you slightly. I had interpreted your original
posting as "oddly, you were looking for a compiler not supporting long".
(Which I thought was a bit odd, but then I did not read again.)

> It looks like a 
> well-structured piece of software, though.

Thanks! I'm glad to hear so!

-- 
Nils M Holm  < n m h @ t 3 x . o r g >  www.t3x.org

[toc] | [prev] | [next] | [standalone]


#2608

Fromalexfrunews@gmail.com
Date2014-08-07 10:22 -0700
Message-ID<a4ca5bed-9fe6-4b71-8ab0-92b0f47d07b2@googlegroups.com>
In reply to#2075
On Wednesday, April 30, 2014 4:32:52 AM UTC-7, James Harris wrote:
> I have seen posts about Smaller C in other newsgroups but I don't believe 
> the author has posted here. It seems to support a reasonable set of 
> features.
> 
>   https://github.com/alexfru/SmallerC/wiki/Smaller-C-Wiki

Indeed, I haven't yet posted here. I have on alt.os.development (since the compiler can be used for OS dev), comp.os.msdos.programmer (ditto for DOS and they don't make compilers for DOS anymore!), http://forum.osdev.org (another os dev place) and http://www.bttr-software.de/forum/ (another DOS place). That should've been enough for a modest intro. Or so I thought. :)

> I took a look at this as I was looking for a compiler to generate 16-bit x86 
> code. This compiler does that but, at present, when generating assembly in 
> that mode doesn't support integers longer than 16 bits. Oddly, that's what I 
> was looking for: while the compiler I have been using (bcc) does support 
> 32-bit integers it seems to have a bug or two in handling them.

32-bit ints (as well as 32-bit flat pointers (really, 20-bit)) are supported in the huge mode(l), if you're interested in having 32 bits in real mode (use the option -huge instead of -seg16t/-seg16/-flat16).

I might add support for 32-bit ints in 16-bit mode(l)s, but that's nowhere in the current plans. I still need to implement a driver (to invoke the compiler core, NASM, and the linker, i.e. what gcc does for you) and a usable standard library (and I aim at all 3 platforms: DOS, Windows, Linux).

> Anyway, the above compiler looks quite good and is under active development. 
> I thought folks here might find it interesting.

Thanks,
Alex

[toc] | [prev] | [next] | [standalone]


#2609

Fromalexfrunews@gmail.com
Date2014-08-07 10:28 -0700
Message-ID<3b0ba499-8de4-45c2-92cb-27fd65566601@googlegroups.com>
In reply to#2608
On Thursday, August 7, 2014 10:22:54 AM UTC-7, alexf...@gmail.com wrote:
...
> I might add support for 32-bit ints in 16-bit mode(l)s, but that's nowhere in the current plans. I still need to implement a driver (to invoke the compiler core, NASM, and the linker, i.e. what gcc does for you) and a usable standard library (and I aim at all 3 platforms: DOS, Windows, Linux).

Oh, and the long overdue preprocessor exists only in dreams. However, gcc's, Open Watcom's, pcc's preprocessors can be used (I've adapted the most recent pcc's preprocessor for RetroBSD and RetroBSD runs my compiler just fine, giving you quite decent user experience).

Alex

[toc] | [prev] | [next] | [standalone]


#2686

Fromalexfrunews@gmail.com
Date2014-09-14 03:07 -0700
Message-ID<4bfde00a-7a92-43da-8e77-ca68cc6f978a@googlegroups.com>
In reply to#2608
I've uploaded binaries for DOS and most of the standard library.

Note: a few things are still missing from the library, most notably: <time.h> functionality, *scanf() functions.

Everyone's welcome to play with the compiler and report bugs.

How to install the .zip file downloaded from https://github.com/alexfru/SmallerC:

1. Create C:\SMLRC (any hard disk or name will do, but make the full path as short as possible) and copy into it the following subdirectories of the .zip file:
BIND
INCLUDE
LIB
TESTS

2. Include C:\SMLRC\BIND in the environment variable PATH

3. Don't forget to have NASM (2.10 is good) installed and also available via PATH

You should now be able to compile the following example from TESTS\hw.c:

/*
  How to compile for DOS (all mode(l)s: tiny/.COM, small/.EXE, huge/.EXE):
    smlrcc -dost hw.c -o hwdt.com
    smlrcc -doss hw.c -o hwds.exe
    smlrcc -dosh hw.c -o hwdh.exe
*/
#include <stdio.h>

int main(void)
{
  puts("Hello, World!");
  return 0;
}

I suggest to stick to the huge memory mode(l) as it supports 32-bit types such as long the functions that consume or return these types. In this mode(l) you can allocate all the available conventional memory via malloc() and you're not limited to objects smaller than 64KB.

The huge memory mode(l) is selected with the "-dosh" option, but you don't need to specify it explicitly when using a DOS version of smlrcc.

What else to know?

smlrcc can consume one or more of .c, .asm, .o or .a files and make an executable out of them.

If the command line is too long (over some 120 characters), you can put it into a file, say, mycmd.txt, and invoke smlrcc with @mycmd.txt (note the @ prefix) and it will extract the command line parameters from the file mycmd.txt. The linker (smlrl) supports this as well.

smlrcc supports the following useful options:
-c (compile only, don't link)
-S (compile to assembly only)
-v (verbose; show executed commands)
-map <mapfile> (produce the map file together with the binary)

You can compile your .c/.asm/.o files directly to a .a library file if you invoke smlrcc like so:
smlrcc [options] <file(s)> -c -o mylib.a

There's more but the documentation hasn't been updated for a while and so here I'm giving the most basic info only.

Enjoy.
Alex

[toc] | [prev] | [next] | [standalone]


#2763

Fromalexfrunews@gmail.com
Date2014-11-09 03:26 -0800
Message-ID<ca2d3c3a-9ba2-4fec-8e1c-3fa8c733d91a@googlegroups.com>
In reply to#2686
I've just added support for Windows as both a host and a target platform.

This means that there are now executables and libraries for both DOS and Windows and you can develop on either platform for either platform.

The standard C library is practically complete (up to what the compiler supports in terms of the C language) and should be usable.

There have been some other changes and improvements in the meantime.

Alex

[toc] | [prev] | [next] | [standalone]


#2773

Fromalexfrunews@gmail.com
Date2014-11-28 04:07 -0800
Message-ID<880086a2-88b8-40bf-a446-b13ab29fa077@googlegroups.com>
In reply to#2763
I've updated the documentation:
https://github.com/alexfru/SmallerC/wiki

Thanks,
Alex

[toc] | [prev] | [next] | [standalone]


#2790

Fromalexfrunews@gmail.com
Date2014-12-21 01:59 -0800
Message-ID<91b9e31a-b59c-4123-bcbc-edc6702417f0@googlegroups.com>
In reply to#2773
I've added Linux support (library and binaries).

So, finally, all 3 platforms (DOS, Windows and Linux) are the host and the target platforms.

Alex

[toc] | [prev] | [next] | [standalone]


#2886

Fromalexfrunews@gmail.com
Date2015-01-10 10:38 -0800
Message-ID<26276015-f798-469b-90e0-bc86e85bf83f@googlegroups.com>
In reply to#2790
I've added an option (-ppg) to smlrcc to invoke gcc as a preprocessor and included the va_* macros in stdarg.h.
This should help until there's a decent preprocessor in Smaller C.

Alex

[toc] | [prev] | [next] | [standalone]


#2971

Fromalexfrunews@gmail.com
Date2015-04-19 23:56 -0700
Message-ID<38404e9f-1164-43d2-bea0-a9220c2846b4@googlegroups.com>
In reply to#2886
For those interested, it's now possible to pass and return structures by value (x86 only, though).
Alex

[toc] | [prev] | [next] | [standalone]


#2972

Fromalexfrunews@gmail.com
Date2015-04-25 21:11 -0700
Message-ID<7f1b9f2f-9579-4855-97bf-d78fe2c72afd@googlegroups.com>
In reply to#2971
A few important bugfixes are uploaded.

Alex

[toc] | [prev] | [next] | [standalone]


#2978

Fromalexfrunews@gmail.com
Date2015-05-16 17:50 -0700
Message-ID<84db9cf8-c062-40e2-8d0c-768c6af38039@googlegroups.com>
In reply to#2972
Improvements:
- .bss section (smaller binaries)
- lifted limitations on string literal length (hooray!)
- better concatenation of adjacent string literals
  (even across preprocessor directives)
- type specifiers may occur in any order
  (e.g. "unsigned short int" and "int short unsigned")

Alex

[toc] | [prev] | [next] | [standalone]


#2979

Fromluserdroog <mijoryx@yahoo.com>
Date2015-05-20 02:26 -0700
Message-ID<a5eccada-1e3f-475e-a916-17cb5810075f@googlegroups.com>
In reply to#2978
On Saturday, May 16, 2015 at 7:50:06 PM UTC-5, alexf...@gmail.com wrote:
> Improvements:
> - .bss section (smaller binaries)
> - lifted limitations on string literal length (hooray!)
> - better concatenation of adjacent string literals
>   (even across preprocessor directives)
> - type specifiers may occur in any order
>   (e.g. "unsigned short int" and "int short unsigned")
> 
> Alex

I suspect you may know this, but for anyone else,
the book *Dr. Dobb's Toolbox of C* had the compiled,
edited saga of the Hendrix Small C compiler with
many contributed tools such as a (K&R) pre-processor
written by Axel Tobias Schreiner (author of Object-
Oriented C).

[toc] | [prev] | [next] | [standalone]


#2980

Fromalexfrunews@gmail.com
Date2015-05-20 05:16 -0700
Message-ID<5f72467f-644d-41b1-b364-384f3e8fb105@googlegroups.com>
In reply to#2979
On Wednesday, May 20, 2015 at 2:26:52 AM UTC-7, luserdroog wrote:
> On Saturday, May 16, 2015 at 7:50:06 PM UTC-5, alexf...@gmail.com wrote:
> > Improvements:
> > - .bss section (smaller binaries)
> > - lifted limitations on string literal length (hooray!)
> > - better concatenation of adjacent string literals
> >   (even across preprocessor directives)
> > - type specifiers may occur in any order
> >   (e.g. "unsigned short int" and "int short unsigned")
> > 
> > Alex
> 
> I suspect you may know this, but for anyone else,
> the book *Dr. Dobb's Toolbox of C* had the compiled,
> edited saga of the Hendrix Small C compiler with
> many contributed tools such as a (K&R) pre-processor
> written by Axel Tobias Schreiner (author of Object-
> Oriented C).

Nope, hearing of this book for the first time. I've read
an interview (article?) with Hendrix on Small-C and I know
he's written a short book on Small-C, which included the
compiler code and not much explanation/guide otherwise
(The Small-C Handbook/Hendrix), the code is supposed to
fill the gaps, I gather. There's a somewhat similar short
book with another version of the compiler (A Book on C/
Berry & Meekings), RatC, which stands for "rationalized
Small-C", whatever that means. There are many versions
and ports and extensions of Small-C, AFAIK. There are also
similar compilers, e.g. MICRO-C (Dunfield), SubC (Holm),
etc. Mine has surpassed the feature and complexity level
of many in the category of Small-C-like compilers.

Alex

[toc] | [prev] | [next] | [standalone]


#2981

Fromluserdroog <mijoryx@yahoo.com>
Date2015-05-20 10:02 -0700
Message-ID<004934bb-c119-471e-8f2b-4e152027154f@googlegroups.com>
In reply to#2980
On Wednesday, May 20, 2015 at 7:16:47 AM UTC-5, alexf...@gmail.com wrote:
> On Wednesday, May 20, 2015 at 2:26:52 AM UTC-7, luserdroog wrote:
> > On Saturday, May 16, 2015 at 7:50:06 PM UTC-5, alexf...@gmail.com wrote:
> > > Improvements:
> > > - .bss section (smaller binaries)
> > > - lifted limitations on string literal length (hooray!)
> > > - better concatenation of adjacent string literals
> > >   (even across preprocessor directives)
> > > - type specifiers may occur in any order
> > >   (e.g. "unsigned short int" and "int short unsigned")
> > > 
> > > Alex
> > 
> > I suspect you may know this, but for anyone else,
> > the book *Dr. Dobb's Toolbox of C* had the compiled,
> > edited saga of the Hendrix Small C compiler with
> > many contributed tools such as a (K&R) pre-processor
> > written by Axel Tobias Schreiner (author of Object-
> > Oriented C).
> 
> Nope, hearing of this book for the first time. I've read
> an interview (article?) with Hendrix on Small-C and I know
> he's written a short book on Small-C, which included the
> compiler code and not much explanation/guide otherwise
> (The Small-C Handbook/Hendrix), the code is supposed to
> fill the gaps, I gather. There's a somewhat similar short
> book with another version of the compiler (A Book on C/
> Berry & Meekings), RatC, which stands for "rationalized
> Small-C", whatever that means. 

I suspect that RatC has a non-standard preprocessor
similar to the model for RATFOR from Kernighan and 
Plauger's Software Tools.

>There are many versions
> and ports and extensions of Small-C, AFAIK. There are also
> similar compilers, e.g. MICRO-C (Dunfield), SubC (Holm),
> etc. Mine has surpassed the feature and complexity level
> of many in the category of Small-C-like compilers.
> 
> Alex

Understood. Specifically, I thought the preprocessor
code/article might be useful. Somewhere in the README
you mention wanting your own preprocessor.

[toc] | [prev] | [next] | [standalone]


#2982

Fromalexfrunews@gmail.com
Date2015-05-21 03:21 -0700
Message-ID<04788990-0809-462f-a892-63536c0d0095@googlegroups.com>
In reply to#2981
On Wednesday, May 20, 2015 at 10:02:37 AM UTC-7, luserdroog wrote:
> On Wednesday, May 20, 2015 at 7:16:47 AM UTC-5, alexf...@gmail.com wrote:
> > On Wednesday, May 20, 2015 at 2:26:52 AM UTC-7, luserdroog wrote:
> > > On Saturday, May 16, 2015 at 7:50:06 PM UTC-5, alexf...@gmail.com wrote:
> > > > Improvements:
> > > > - .bss section (smaller binaries)
> > > > - lifted limitations on string literal length (hooray!)
> > > > - better concatenation of adjacent string literals
> > > >   (even across preprocessor directives)
> > > > - type specifiers may occur in any order
> > > >   (e.g. "unsigned short int" and "int short unsigned")
> > > > 
> > > > Alex
> > > 
> > > I suspect you may know this, but for anyone else,
> > > the book *Dr. Dobb's Toolbox of C* had the compiled,
> > > edited saga of the Hendrix Small C compiler with
> > > many contributed tools such as a (K&R) pre-processor
> > > written by Axel Tobias Schreiner (author of Object-
> > > Oriented C).
> > 
> > Nope, hearing of this book for the first time. I've read
> > an interview (article?) with Hendrix on Small-C and I know
> > he's written a short book on Small-C, which included the
> > compiler code and not much explanation/guide otherwise
> > (The Small-C Handbook/Hendrix), the code is supposed to
> > fill the gaps, I gather. There's a somewhat similar short
> > book with another version of the compiler (A Book on C/
> > Berry & Meekings), RatC, which stands for "rationalized
> > Small-C", whatever that means. 
> 
> I suspect that RatC has a non-standard preprocessor
> similar to the model for RATFOR from Kernighan and 
> Plauger's Software Tools.

The compiler proper supports only #include and simple, non-
parametrized #define. I'm not aware of any other preprocessor
(standalone) to come with it.

> >There are many versions
> > and ports and extensions of Small-C, AFAIK. There are also
> > similar compilers, e.g. MICRO-C (Dunfield), SubC (Holm),
> > etc. Mine has surpassed the feature and complexity level
> > of many in the category of Small-C-like compilers.
> > 
> > Alex
> 
> Understood. Specifically, I thought the preprocessor
> code/article might be useful. Somewhere in the README
> you mention wanting your own preprocessor.

I've got the docs (e.g. gcc's preprocessor documentation is
decent) and a few role model preprocessors, but am not yet
ready to start coding mine. I should get there one day.
Right now I'm addressing the remaining debt in the compiler
proper, which needs to be done as well. I'm getting by with
the -ppg option invoking gcc as a preprocessor for me.
I hope it's not a permanent solution. :)

Alex

[toc] | [prev] | [next] | [standalone]


#3027

Fromalexfrunews@gmail.com
Date2015-08-15 02:15 -0700
Message-ID<50658cab-9bf2-43b3-ac0a-143bc62819d8@googlegroups.com>
In reply to#2978
What's new in the compiler?
- DPMI support and DPMI binaries of the compiler itself
- support for a.out (OMAGIC) executable format with relocation records
in the linker
https://github.com/alexfru/SmallerC

Alex

[toc] | [prev] | [next] | [standalone]


#3028

Fromalexfrunews@gmail.com
Date2015-09-06 15:56 -0700
Message-ID<1b2d6a1c-a577-4e11-996f-236685f6318c@googlegroups.com>
In reply to#3027
What's new in the compiler?
- it can use FASM instead of NASM when compiling 32-bit protected
mode code (DOS/DPMI32, Windows, Linux)

There's now a wrapper around FASM, n2f.c, which if compiled into
nasm[.exe] will transparently convert the assembly code generated
by smlrc to the syntax and layout that FASM understands and invoke
FASM on it. A kind of NASM replacement/substitution. This tool
isn't general purpose, it converts only a very restricted subset of
assembly code from NASM syntax to FASM syntax and layout.

What does this mean? Well, for one thing, FASM is faster and
smaller than NASM, so you can make a floppy with the compiler
and the assembler and, say, DOS/DPMI32 library and you'll still
have about a half of the space free on the floppy. And you can
run this even in DOSBox without fearing that NASM would take
forever to assemble code with many jump instructions and without
having to give many many more CPU cycles to DOSBox.

Another thing is that this makes Smaller C fully and easily
portable to any x86 OS running apps in 32-bit protected mode.
Smaller C can fully recompile its libraries and itself if
there's NASM or YASM in your system. If porting NASM or YASM
is somehow problematic or undesirable, there's now another
option, FASM. FASM is written in 80386 assembly and can
recompile itself without needing any other tools. So, you
only need to teach FASM to use your OS syscalls and do the
same with the Smaller C library.

Alex

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.lang.misc


csiph-web