Jump to content
IGNORED

Idiot Compiler


JamesD

Recommended Posts

Tom Porter is working on a new Applesoft compiler and it looks like it generates faster code than the old ones.

Top left is Applesoft, bottom right is Idiot Compiler.

 

Download the current version.

https://www.dropbox.com/s/zm9w3n20lr4odu8/Idiot%20Compiler%203.89c.zip?dl=0

 

 

Status updates are being posted to the Apple II Enthusiasts group on Facebook.

https://www.facebook.com/groups/5251478676/?ref=group_header

Edited by JamesD
  • Like 2
Link to comment
Share on other sites

  • 1 month later...

The Apple II Enthusiasts group has a lot of posts...

 

 

I would follow the Apple ][ Game Programing group... Tom posts there too, and much less traffic...

 

 

MarkO

 

Thanks for the link MarkO. Sorry to see that you need to sign up for facebook to even see it!

The lovely Mark Zuckerberg:

Zuck: Yeah so if you ever need info about anyone at Harvard

 

Zuck: Just ask.

Zuck: I have over 4,000 emails, pictures, addresses, SNS

[Redacted Friend's Name]: What? How'd you manage that one?

Zuck: People just submitted it.

Zuck: I don't know why.

Zuck: They "trust me"

Zuck: Dumb fucks

 

Link to comment
Share on other sites

  • 2 weeks later...

Hey, I just found this Thread... cool, I got some fans!

 

Idiot Compiler was just an attempt to make ASM coding faster for me... but it turned into a 'semi' full fledged compiler.

 

The main goal was to prevent runtime code and have everything inline... this does bloat code a little bit, but when other compilers have a 4kb runtime before your first 'compiled basic line'... small programs start off with a huge advantage. As a side effect.. you need calls and setup JSR's for routines inside the runtime, so its actually eating into those, it would take a LONG time to overtake the amount of out-put code.

 

Its true, I hate hex... had to build my own ASM assembler and disassembler just to program, everything is done is decimal assembly and that means it is a direct translation to basic in terms of line numbers and how memory works... its true it messes me up sometimes. My mockingboard audio work took off very slowly because something like a C0-xx address translated into 50xxx, which makes it hard and isn't obvious which switches to hit...

 

Anyway, back to the compiler... a lot of bug fixes in the newest version... there is more work to do.

https://www.dropbox.com/s/n9dnfc4vhg78l3b/Idiot%20Compiler%203.89i.dsk?dl=0

 

The great thing is its a 'SMART" compiler... meaning YOU are the smart one. It does variable 8bit, 16bit or (limited 24 bit) math,

blazing thru others in speed. Along with no JSR's for code runtimes...

 

RESET

at the LINE.... type the LINE #

do basic commands... to see list type (?) or (COMMANDS)

at the end of each BASIC LINE, you have to type END to end that particular line.

 

Its primitive BASIC background code makes it a little less than idea.

To enter a command... like PLOT X,Y you will have to PLOT (ENTER) then it prompts you for...

 

(VAR or #): at point you can type a name for variable, or a number. If a variable does not exist, it will create one for you.

 

RESET - to reset compiler

COMPILE - to compile into ASM program

 

I would reboot the disk if you are starting a new project, if you were already working on one.... most entry points are "helper" prompted.

 

 

It normally defaults to 16 bit... but if you know a variable will only be 8 bits (max 255) at any time... you can do LET 8 for math, such as

 

A=B+C or A=B-C or A=B*C or A=B/C

 

there are also SPECIAL FUNCTIONS in the options... so if you did

A=A/2 it would equate to a simple LSR statement instead of several command division...

these things make the compiled code equal to its ASM counterparts in many situations....

 

 

Anyway, I posted enough... thanks for the mention... I appreciate it a lot!

 

Tom Porter

naspite labs

 

 

If you haven't seen DogFighters of Mars2 space shooter demo for the Apple II.... (This is the Special Edition!)

https://www.dropbox.com/s/h0yzya36nrue4ho/DOGFIGHTER2%20SPECIAL%20%28r1%29.zip?dl=0

 

If you need a Double Lores library thing a majig... a hard to get info graphics mode...

https://www.dropbox.com/s/nawea8sumu86fzw/Double%20LoRES%20Library%20v1.80zA.zip?dl=0

 

If you have a mockingboard... here are 70+ songs plus software to potentially convert MIDI's... version 2.00 is incoming soon...

https://www.dropbox.com/s/z0ldxehkebwbfeg/MIDI%20TO%20MOCK%20VER1.zip?dl=0

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...
  • 3 years later...

if iDIOT doesn't support the Applesoft BASIC commands, 'GET' nor 'INPUT,' really what is the point?  Every single computer program I've ever used or written (even screen savers) requires at least one input from the user.

 

Great potential, but like I said, what is the point without a means for the program's user to interact.  It was too easy for me to make puns regarding the lack of get/input and the projects name.  Just, don't be one.

Link to comment
Share on other sites

  • 4 weeks later...

Yeah, Phreakerg.... its not a direct replacement for things like Tasc or Beagle... there are a lot of things it can not do nor was it designed that way... its meant to speed up a portion simultude of Applesoft to handwritten code, pretty much into something that is as fast as it can be done (unless your doing super tricks).  Its basicly can be used as a 'driver' builder.  One example, I was working on my mockingboard driver, which was orignally written in applesoft basic, just to get it off the ground.  It took me nearly a month to get it working in assembly when I was ready to do that... but it kept having small errors and bugs which were constantly being patched... I believe there were 7 handwritten error fixes eventually found (It was working all this time, but improvements/note sound fixes ect).   Idiot was far enough along at that point, so I translated the basic using it... and lo and behold, it created a perfect 'assembly' version in one hour that was smaller and more cycle efficient than any of my hand written versions... and it even corrected a bug I didnt even know existed with one of the sound channels.  Now with improvements (its been at least 2 years since the last version 1.79z), you can translate applesoft into assembly, and then unlike other compilers, you can open the translated code manually and change it or modify each particular applesoft equiv ASM line in notepad, then dump that back into the compiler before the file compile, if you needed to manipulate it in some fashion, and there have been cases... or say you can look at the code it creates, and even hand optimize it, dump it back into the compiler and it will spit out those hand made improvements.  Its not a program compiler per say, its more of a driver maker and super optimizer.  I have this analogy, the other compilers are like sedans, suv's or buses, they can 'move' a lot of code down the highway, but can only go a certain speed... Idiot Compiler is like a lambo, it can only carry 2 people and no luggage, but what it can move, its going at 200mph...  many tests over the life cycle of development, it whoops the other compilers butts in the things that it can do.  Yes, its very quirky in a lot of ways, and its hard to know what it 'can' and cant' do if you dont know its underlying mechanics and capabilities.  And to be honest I dont expect other people to use it... I designed it specifically for me, and it eliminates about 90% of all my asm coding since the last version.  I cant live without it these days.

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...