IDENT.TXT
-Documentation for ident.exe
(C)1999 Keinall "Granitor" Caddle

--]
What is ident.exe?

ident.exe is the embodiment of the IDENT project,
version 1, revision 1, update 1.

---]
How do I see the new features of parse3?

ident 0 itest2.cas fy

---]
What's the recommended invocation method?
**IMPORTANT : exit by entering "system". 

ident 0 fevey

---]
What's the Insane Excessive Overuse of CLAen invocation method?

ident ever8k v iINITIDE.CAS oTOKLIST.CAS dIDEDRV.LOG \
        lIDELIB.LOG n pc xs t10 w fy 0 e

---]
What does IDENT stand for?

IDENT stands for Integrated Development Environment for
NASIC Testing.

---]
Spawned rant...

This C64 Full Screen Editor imm is quite impressive,
considering that I whipped this together
in a few hours in order to annihilate my despair
at not having a working direct mode parser.

It's not a direct mode parser, but it's an 'umph' away for being such.

If you've ever used a C64, you'll feel somewhat at home. Aside from
the various modes - quotes, insert, reverse, changable cases, mailmen
who inspire infidelity.. err, kidding about the mailmen. Also, it sorta
ignores you, unlike the C64 which was quick to spout "?SYNTAX  ERROR"
and "READY.".

IDENT:

-Immitates (some of) the look and feel the C64's IDE.

-parses physical screen lines to trimmed (no leading or trailing
whitespace) lines which can be interpeted by a parser of some sort,

-treats your entry as a token symbol, and return the token numer
(if token evaluation is enabled). this is really a very roundabout
process, as I wrote Yet Another Parser to do it, read TOKPARSE.TXT
for more info.

---]
Inspired druggle...

I lent out my mercy,
but I took it back up.
I lost my vigor,
miltance get lock up

But Now I come with fire and flame,
my rightful place as Lord Granitor to proclaim,
to show this 'C'ness,
who running things,

to breck up Allegro,
decimate the IDE,
immitate the C64,
and get on scruffy.

I pelt way mi mercy,
ca'an find none nuh more,
all bug fi come test,
gun fall pun de floor,

get brek up, rip up,
decimate, frigg up,

I pick up my militance,
like a rocket launcher,
what, a Flying Pig?
torque! fire de heat seeker!

---:

*poink*

---]
What use is IDENT?

To the casual person, none at all.
However, to developers (I guess the only
developer who really cares is Chip...)
this marks a milestone, here's why:

-I decimated my incompetence to do this funny looking thing. I've never
koded with such clarity and gusto.

-IDELIB could be used with other things, like a NASIC parser for
Chip's .CBM filen. So it helps porting C64.exe to C. And someday,
to Linux.

-Speaking of porting to Linux, if Nelish feels like it, he can port
screen to Linux , re-implement Refresh and set_rendCharset and
rensetVsyncIt, and we'll be able to run m-spawn on eveybody's favourite
platform

-I nearly sprained my left hand by tossing barbells from one had to the
other, and activity which I find to be very mood lifiting but also
hazardous to my health if done incorrectly.

-It features more modularity than ever before seen in any code I have
ever done. It could be yet more modular, but I decided to restrain myself
slightly for now.

-IDELIB is so kool that you can use it in your own projects
and say "gee, this is really kool". It really saves a lot of time and
effort, or, at least, I think it will.

-It inspired me to write some druggle.
(druggle is my demented form of poetry).
Any project which inspires druggle is a Good Project.
speaking of which, I've yet to watch Mikey or The Good Son.

-It looks good even on a monitor with no red gun. This is because it uses
light blue on not-so-light blue. In big friendly letters.

-It hypnotises rare breeds of mosquitoes, allowing you to swat them easier.

-parse3.c uses IDELIB (idelib.h/.c/.o). I think this is kool. Very kool.
It is kool because it uses both IDELIB and SMELL :

     in buzzword compliant language, parse3 integrates
     with SMELL and IDELIB, taking advantage of the
     strenghts of both technologies to offer the user
     the optional balance of exectuion ethic.

-It makes me smile. 

-It shows I've risen above my habitual negativity and consequent
incompetence.

---]
Using the IDE:

Firstly, I'd like to mention that one would typically exit IDENT
by entering SYSTEM on a line by itself. I mention this so much because
nothing else will work, except the three finger salute, or it's
Allegro alternate, Ctrl-Alt-End.

Also, the IDE with auto-exit after 10 iterations. This behaviour will
is changable, read on!

In addition to basic C64ish movement commands, including HOME (HOME key),
you can also clear the screen (shift-HOME) and go to the lower-right hand
corner of the screen (END)... it should be noted that C64's had no END key or
similar command in stock config, but several utility cartridges added it and
I got carried away and added it as well.

**NEW sinve v1r0u4: Your entry (which is defined as all text on
the physical screen line which you pressed return on, after leading
and trailing spaces have been removed) is (assuming evaluation is
enabled) checked against TTT (see tokparse.txt), and if a match is found,
then there will be a nonzero TokVal in the log file (idedrv.log by default),
assuming you've enabled token evaluation.

Always put a v for verbosity in there, that echos every entry to the log
file if IDELIB. Also, put an 0 there to disable the silly iteration limit.

**NEW since v1r0u4 : use e to enable evaluation and another e to enable
logging of the symbol as well as the token value of the symbol taken
as input.

---]
CLAen:
-Command Line Arguments which IDENT takes

IDENT is more configurable than most recent m-spawn, but as yet is not
on the insane levels of m1. yet.

Note that flags which take arguments ( [...] ) are considered the last
in that argument, so you must put a space to trail the argument if you
wish to have the rest of your flagen parsed. e.g.

        ident t10r30k

would be seen as

        ident t10

but,

        ident t10 r30k

would be seen as it is.

You know, parsing CLAen is becoming somewhat like parsing CAS (C-NASIC)...

Flag/Argument list:

y -
        disable Vsync. This may cause ficker but makes updating the
        screen faster. VSYNC is enabled by default.

l[IDELIB logfile] -
        Change the logfile which IDELIB uses from the default (idelib.log);
        not that the driver program uses a different logstream.

d[IDEDRV logfile] -
        Overides the default logfile name of the driver program 
        (idedrv.log); note that IDELIB uses a different logstream.

i[MCAS file] -
        Overides the default name of the Constricted NASIC src file used to
        initialise the IDE. Note that it's the driver program which runs
        loads this program, the IDE is basically just Print and Inputness.

o[SACAS file] -
        Overides the default name of the Speacially Adapted
        Constricted NASIC src file used to build the TTT and friends.


t[integer] -
        set the max_iter limit; i.e. the number of commands to accept
        before auto exiting. This is useful if your s,y,t,e,or m keys
        stick, as I neglected to allow ESC to exit the IDE.

0 -
        disable iteration limit; there will thus be no limit to the number
        of commands (or entries, rather, as a line can contain several
        commands in theory...) which can be entered before the IDE
        quits.

e -
        enable evaluation and increase verbosity of driver (idedrv) logging.
        one e enables loging of token values, another e logs
        the symbols as well. a third e logs unresolved symbols
        to the fray, which may be overwhelming for sexually active
        letters of the Greek alphabet attemptin to read idedrv.log!

n -
        disable cursor blinking

w -
        enable WIN keys (LWIN and RWIN) as C= (Commodore) keys.
        This is experimental and does not work exactly like a real
        C64, the graphics are not properly translated. This is
        due to an ...interesting... design decision in the C64, research
        continues.

p - c -
        enable cursor blinking, which is now
        the default behaviour, so, these flagen art
        fair to partly pointless right now.

r[memory size integer]
        just like all the 'm'en since m1, set the size of NASIC ram.
        This time, it's the RAM used by the initalisation routine.
        Soon you'll be able to load programs and stuff there as well.

v
        increase verbosity, but so far only 0 and 1 are different.
        A natural ( greater than zero, no fractional components)
        level of verbosity causes your entries to be logged to
        the logstream.

f
        enable fast redraw, which uses dirty rectangles to update only
        the part(s) of the screen which changed.

s
        enable slow redraw, which updates the entre screen in one blit.
        this isn't as slow as it sounds because, unlike m1, the graphics
        bitmap is not rebuilt from the screen matrix at this time, but
        rather, each operation on the screen matrix is immediately
        reflected in the screen buffer thingy.
        Slow redraw (or, full-screen reblit) is the default mode.

---]
Required filen:

For use of ident.exe:

obviously, ident.exe itself,

INITIDE.CAS ; a C-NASIC src file which initialises the IDE;
CHAR.ROM ; the "Guiness" of m-spawn; rendlib needs this.

For development:

idelib.c/.h ;
idedrv.c/h (an example "main" and friends);
screen, rendlib, foolib, and allegro;
mdefcon.h; "the Guiness of m-spawn development"
parse3.c; parser.h; - The Third Honerable Parser.

tokparse.c/.h ;  these  routines are still under construction,
however, they are usable, or else i wouldn't have linked against tokparse.o!
I suppose I'll release the src sometime.
read tokparse.txt for info on using this stuff.

---]
Roadmap:

IDENT is now the main project of m6;
eveything else is merging into this.

As far as the user is concerned, the NEXT BIG THING will be
a fulline parser;
-this will allow Direct Mode! Almost...

logical lines rather than physical lines;
-this will allow typing , wel, longer than 40-column lines.

A C99 or C64 Token-based Parser;
-BASIC2 is expected to be the first of these,
as I want to have Island Of Secrets up and running properly
A.S.A.P.

---:
Also, there's already a conceptual fragmentation between
C64 imming, C99 imming a C64's IDE and stuff, and C99 native mode.

C64 imming approaches emulation, if you want to emulate the
hardware ragisters and such like.

C99 imming a C64's IDE and stuff involves leaving out POKE and
such, but just looking like a C64 from a distance, enhancing BASIC by
adding in some commands to make things possible. (like COLOR).
I think maybe the C65's native mode would be like this.. BASIC 10 or
whatever...

C99 native mode would be capable of running Samauri Showdown, at least
the original, but 4 would be good, too. That is, if SNK were to port it
of if some nut were to write it for C99 native  mode.

I'm personally more interested in enhanced and native modes of C99,
legacy mode (which borders on C64 emulation) would also come in handy
but is not a big priority for me. Hopefully, all will go well and
I'll be able to point out the advantages of doing enhanced mode first
later on, but , for now, my C99 project hasn't yet begun, I'm still
working on M, the forerunner.

---:
Oh.. Variables.. to be added to C-NASIC (possibly)...
I guess they're important but I haven't bothered to do them yet.

Also, not that I'm just kidding about sacrificing chickens...
Christians who find the idea revolting should, however, read the
Old Testamant, and take note of the copious amounts of blood
sacrifices required at that time. Also of interest, and of obscure
relevance, is Isaiah 30, which is an interesting rant-like thing
(although all of Isaiah reads like a rant...), worth reading IMHO.
Egypt had great technology, you know... there's still great debate
as to how the pyramids were built...


---]
Legal Stuff

Not for commercial use, no warranty. I'm not liable for anything, not
even the effect(s) of reading this document.

---]
Hails / Thanks:

Master Chip!
        Chip is simply inspirational, and (this is a scary statement) the
        most stable of the Koders Three, in the sense that he kodes
        with more consitency. He's seldom stopped koding altogher,
        due perhaps to knowing QuickBASIC, some C, and having interest in
        AI (and working AI programmen), and thus having a variety of 
        alternatives when faced with a problem.

Sir    Nelish!
        Nelish is great to discuss the more obscure points of existance with,
        as well as the theory behind the kode. And indeed, behind anything.
        Plus, he started me doing that
                if (... )
                {
                        ...
                }
        thing, before which I used to just if (...) ... ; which is bad
        practice and caused no end of problems when I tried to change
        stuff and forgot what was in or out of the if TRUE scope.

Lord   TWood:
        TWood lives in Barbados and is busy studying for a degree in
        computer science... I mention him because he expressed some interest
        in Allegro, and I might want to muhahahaha at him someday.
        Besides, he writes code, although he isn't an aspiring TaoKoder.

Koolest Guy nusteer:
        nusteer is a funny looking guy from FEFnet #jerk, which is now
        agog #jerk (irc.agog.net , or vvm.agog.net). He does C++ in school
        similar to TWood, I guess, except he lives in NY and not BIM.

Deity Morpheus:
        Besides having his very own irc server (vvm.agog.net);
        Morpheus is an all around kool guy with an interest in
        videogameness, which is also part of the reason for me
        and Chip doing C99 (Chip wanted to clone an old C64 game,
        and I wanted to clone evey old C64 game ever made... when I
        grabbed hold of reality a bit I decided to settle for
        making a genric game developmennt environment and perhaps
        descimating Verge in the not-so-distant future... Verge is
        a kool concept but I don't like VergeC and the code is unstable,
        as the devlopers said on their page (http://www.verge-rpg.com/)).

Faery-Princess Dopey:
        Always complaining that I never mention her on my webpage (despite
        me never metnioning anything non-kode related on my webpage),
        'dopes' is nevertheless a brillant person, in mental capacity and
        intensity of personality. I could go on, but as she'll probally never
        read this file in any case, it seems fairly pointless...

And many more:
        I don't feel like typing anymore today, refer to statement about my
        left hand and barbells.

---]
Contact Info:

email   : granitor@geocities.com
url     : http://www.geocities.com/SiliconValley/Lakes/2658/

---:
Links:

C64info :

        http://www.c64.org/

VICE, the best (IMHO) C64 emulator, as well as emulators for other
Commodore 8-bitten boxen :

        http://fripp.hrz.tu-chemnitz.de/~fachat/vice/

Sex :

        http://www.sexuality.org/

News for Nerds :
        
        http://slashdot.org/

New kool programs and stuff :

        http://freshmeat.net/

---]

[[[MooFoxyDinkle!!!
