This FAQ is produced by Lord Granitor for fun. If you think it is horrid, that's okay. If you think it's great,that's okay too. Please take the time to email me: c99@mail.com with any other questions or comments about M/C99, myself, or anything else.
Q: What, exactly, is M?
A: Well, I've always wanted to do a C64 emulator, from way back when I still used the C64 as my main machine, and i was looking into getting an Amiga... even then, I though I'd have to add a few things to it, for one, make the BASIC better... having to use copious amounts of POKEs and PEEK()s annoyed me, especially as a lot of the memory locations didn't have to be constant... VRAM could be in one of 4 banks, for instance, and I'd rather have a PLOT command than to get the start of he screen matrix, then calculate/add the offset...
Q: Um, Your explaination got a bit technical there...
A: Oh. Audible Blink . Well, the point is that while the C64 was a good piece of hardware, in order to get anything worth while out of it, you had to directly access the hardware... even to set the border color, or to play a musical note... and I wanted to do a better Kernel which supported these things.
Q: Oh, so, M is a better C64 Kernel?
A: No, M is just what I'm doing to gain experience in C, to learn how to use those cool things (cool? yeah, right!) like pointers, linked lists, and such ilk... i would have done similar things in BASIC but C is, after all, another language. And DJGPP/Allegro is another platform from C64 BASIC/ML.
Q: Um.. so M is...
A: M is many things, it's a set of routines to emulate the C99 Kernel, it's a twisted form of BASIC called NASIC, it's a Full Scren Editor, it's freedom to change the color of your cursor with a simple command rather than directly accessing hardware...
Q: Oh. I don't understand...
A: Oh. Audible double blink . I see. Well, C99 is basically an emulator of the spirit of the C64, with the capabilities upgraded a bit (okay, a lot) to reflect the current stare of hardware.
Q: What do you mean by "spirit " ? That sounds ominous... do u plan to summon this spirit somehow?
A: Audible double blink . No, I meant the design philosophy of the machine... for example, the C64 supported hardware sprites and had two joystick ports, so it had support for games..
Q: I see...
A: However, it had a horrible, horrible BASIC, and no support in the Kernel for the same features that made it cool (e.g. sprites, SID Chip)... It was a good system to learn low-level programming on, but for high-level stuff... even middle level stuff like C, it was horrid.
Q: So, C99 will avoid these issues...
A: Yes.
Q: But, what does M have to do with C99?
A: M is just a series of small programs to give me practice in coding; Writing an emulator is a big project, and designing a system which equals the legendary engineers at Commodore (i.e. writing an immulator of the Commodore 64) is not something I'm experienced enough to do with confindence... M will build that confidence, give me that experience, allow me to show and develop some skills.
Q: The 99 implies a final release this year. Is that a correct assumption?
A: The name is largely arbitary. Also, if we follow Microsoft Windows convention, C99 will actually be releases in mid-2000, however, i'd like to have a complete demo of something which embodies this concept by summer (June/July) , although I don't expect it to be very feature heavy and obviously not heavily debugged.
Q: So, the name C99 is totally random?
A: Well, the C65 was designed and a few pre-production units were made, so C66 seems like the sequel... however, some #kode person (Maniac-) pointed out that 99 is 66 upside down, so perhaps there was some sub-conscious influence.
Q: Any other comments?
A: A Hardware Abstraction Layer will be built in. Besides keeping the hardware abstract, it will also mean no POKEs will be necessary and also that the emulator can be better optimised to it's platform. The multimedia compenets of C99 will be seen as a seperate symbol table from the Kernel; allowing them to be tweaked sperately...
Addem: I may still use POKEs and PEEKs, but only as far as imming registers, being they hard (as in the VIC-II's registers) or soft (as in location 646, the foreground color of text), and as symbolic constants rather than numeric ones (e.g. BORDER for 53280).
Q: Symbol table?
A: yes... However, there will be RAM for the user to play around with... possibly 3 areas; NASIC (protected); VRAM (managed); and USER (unmanaged, un protected, unbriddled). The USER RAM could be directly access using load/store (PEEK/POKE) instructions, and the managed memory will be used with file cess for overlays and whatnot.
Q: How far along is C99?
A: Hmmm.. not very far at all. I'd say in a pre-design stage. M is like a stripped down model of part of C99, for me to see how the design works when realised in C.
You recently released a cackle of m5 - related things; m5ish, m5ness, and tide. Why such a variety of released, and why m5? what happened to m2?
The file mhist.txt details what happened with the numbering system. m2 will use m5's support libraries. meanwhile, I'm sorta working on a Direct Mode Parser, which is Yet Another Acronym Opportunity.
So, when can we expect m to support Chip's command set and file format?
m can already load Chip's sprites; and render them; but they're not treated as sprites properly yet. I have this on my list of things to do with rendlib, but their are other things i want to tackle first, the mini monitor being the thingy of the week.
So,DMP is the next stage in m's development?
No, that was last week. Or last month. Time flies when you're doing insane things. This week I'm idling about, but i'd say MM (the Mini Monitor) has to be the next stage, because without it, I can't properly debug the new tokenization modules.
But, before that, I'm taking a vacation. I have a rant about why I'm going on vacation somewhere around, I'll post it sometime maybe.
After taking a vacation, Granitor returned and answered more questions.
You recently forked to m6, and released some m6 - related things; vtest.exe, IDENT. Why?
Ever so often, I realise that I need to change the design philosophy or implementation methodology of M, so, I copy what I need to another directory, do the design, and code clean on whatever needs to be done. In this case, it was the IDE and Parser which got recoded, they're noe parse3 which uses IDELIB and SMELL, which I had earlier envisioned but hadn't done IDELIB,so, could not implement.
I see... what's with this new term, M-spawn? Is it an indication of a neurotic obsession with the occult?
Blinks Audibly. Occult? No, I no such obsession. The term m-spawn orignates because my funny looking program thingies are derivatives and embodiments of the m concept. m a a concept has no direct representation, the m-spawn are parts of m, derived from m, thus, spawn of m.
What about that spinning pentagram on the bottom of the m1 page? I bet that's an idication of a neurotic obsession with the occult!
Do you intent to burn me at the stake as well? No, the pentagram is here because it spins and looks very kool. If little symbols scare you, then just don't visit my page.
Are you aware of the meaning of the penta ---
Looks infurated. Look, I don't care about the meaning. It has no meaning in this content. It just stands there and looks kool. (At least, I think it looks kool). Besides, the meaning could easily be redefined. For example, I live in a house with 4 other ppl, so a 5-pointed star could stand for my household.
Oh. Very well, then... anything else you'd like to add?
Barbells are kool, but care should be taken not to toss them around absent mindedly.
Err.. okay.
****parts : Granitor
Q: Why the long period of silence? What were you doing all that time?
A: Actually, as I look back on the changelog, it seems the break came in the first two weeks of May, which is odd.. time is not a concept I susscribe to, however, I was under the impression that I've been inactive for aobut a month... silly me...
Q: So.. Um... what were you doing, then?
A: Well, I was basically building a new box. This required making several trips to a computer store, and also involved me moving my box from one room to the other...
Q: Oh, I see. So, why did this take so long?
A: I needed to clean my work area, which had become buried in dust and infested with spiders in my absence... also, building my box took a lot of time as they were a lot of problems, most of them caused by my haste...
Q: Well, back to m7. What is this most recent fork about?
A: It's about making everything shiny and clean, in some cases this means a whole new API, in others, a cleaning up of the old on, and it may mean some shuffling about and addition/subtraction of support libraries.
Q: I see. Well, no, not really. Say that in English...
A: I'm cleaning up the kode. Moving slowly towards a BASIC2 parser. In fact, I may use BASIC2 commands to debug C-NASIC.
Q: Are you aware C-NASIC is all but useless?
A: Well, I have a few issues to resolve with the BASIC2 parser. I've resolved them mentally but not in kode or specs as yet. All things take event slots, and I use rather few per wake cycle...
Q: Event slots? Wake cycle?
A: In other words,these things take time.
Q: What happened to DMP and MM? Are they vapourware?
A: No, there is limited DMP capability in IDE NT. This also hints at MM, it's mildly possible that I'll either use BASIC2 commands in a DMP to debug C-NASIC, or kode a monitor-like thingy in C, in the spirit of ML monitors of the C64 era, or both... things are progressing slowly but surely.
Q: Why so slow?
A: More time is spend in design than kode. This is another reason for the new fork. The design has changed, so the kode had to be redone. Granted, I reuse a lot of old kode, but, that's incidental. I wouldn't use it if it didn't work for the new design.
Q: Will you do pretty pictures of m, m7, m-spawnen or C99?
A: If you mean diagrams, the docs for C99 will most likely contain some form of diagram to show how everything works togehter. As for screenshots, there's not much to see yet. Stay tuned.
Q: What's the signifigance of rendlib2?
A: Render Library 2 is a major cleaning up of rendlib, in some cases clean koded, in others, weeds were removed. A basic, optional GUI was added.
Q: Will you speed up rendlib2 some more?
A: I may, that is, I fully intend to get it faster, however, before I go piling on features, I'd like to add a couple layers of abstractiong to things like video modes, and rekode SMELL. SMELL should be able to work with arbitary sized matricies, and the layer baove that, select 40 or 80 column mode. There is also the matter or sprites, which rendlib2 has no concept of whatsoever...
Q: Is the source code available?
A: The source for m6 is, m7 is still very much a Work in Progress, and I don't particularly need or want input to the C kode at this stage, I can tell it is crap all by myself...
Q: What's vtest r3 about?
A: vtest r 3 features two things new to the m series: joystick input (albeit on the C level, not the imm level), and, more importantly, 8bpp sprites!
Q: What is so kool about 8bpp sprites?
A: Well, first off, the way they're implemented is (potentially) ingenious. You load the bitmap, call wiggleRegisterSprite with the Allegro BITMAP, get back a number representing the value, and, move along smartly from there.
Q: why only potentially?
A: In the latter stages of coding, I spend hours and hundreds of lines trying to fix a design flaw. This wouldn't be so bad, except that in the process, I introduced a lot of redundant code, and .. stuff. In fact, the dirty rectangle system is actually slower now because of the *expletive* I did with it...
Q: Oh, isee. So, you f*ck'd up rendlib2 with these... "wiggle" extensions?
A: No, only the attempts at triple dirty rectangling. However, s, -henry, and -fred bypass most of the broken/ineficient code.
Q: What's about -jim?
A: -jim now obsoletes -henry and -fred, but, I mean, the whole thing is still useless...
Q: Will m7 ever be useful?
A: I'd prefeer the term less useless. m7 has seen a number of less useless spawn. I have an IDE here that loads, saves, and lists files, however, I want to add some double byte tokens, which requires modifying tokparse.c... The point is, m7 is well underway to being less useless.
Q: Oh. Well, when's the next IDE coming out?
A: [original answer] when I'm happy with it. There's tons to do. And I've only recently started koding seriously. Before it was on and off or just.. not at all.. but now I'm committed to making m7 into something that's much less useless than previous m-en.
A: [990706] when I'm happy with it, but, more importantly, after I start back koding on it. I have been distracted from koding yet again... which isn't in itself a bad thing, esp. considering th enature of the distractions, but, I wasn't even aware tha tI havne't been koding until I realised that life had once again lost meaning...
A: [990718] well, beta.exe is updated farily frequently, but, it's going to be very useless for a while to come.. life has much meaning for me now, in any case, so, it's all good.
Q: Anything else of interest?
A: I now own a copy of Street Fighter Alpha 3, which I definately enjoy... that and Guilty Gear are possibly the most played games among the Donz... In fact, my copy of GG is now at Don S.O.P.'s house...
Q: Copy?! You pirate!
A: No, all my PSX games are offical... I see no advantage to owning bootlegged copies of PSX games. PC games might be another story, but, that's another FAQ...
Q: Can you give me some mayonaise please?
A: Blinks audibly... erk.. bye!
****parts : Granitor
Q: Why the long period of silence? What were you doing all that time?
A: Top secret projects of an unknown organization.
Q: um.. okay... what's dmx.exe about? What happened to ident.exe?
A: I changed the driver component, and thus the .exe name. Subsequently, the interpeter was changed to a much more modular model, spanning parse3r4, parse4, and varlib. And the price of the PS2 was announced to be circa 391 equivalent us dollars, for its launch in March 2000 in Japan.
Q: What does the PS2 have to do with m7? Are you employed by Sony?!
A: Nothing intrinsically. I am in no way affiliated with Sony.
Q: What makes IDE MT less useless than IDE NT?
A: Better Parser, 3r4 + 3 as opposed to the original 3. For more details, read macas.txt, included in dmx.zip, which describes the new, exciting language used with the current parser technology.
Q: When is m7 going to support Basic?
A: When it does. I am still designing my Basic parser, also, my kode needs a lot of refactoring... piling on features would make the refactoring process harder.
Q: Why is m7 not released in source form?
A: m7 is not a coherent, organised project, but a chaotic scapegoat which I use to try things out, and gain experience. I like being able to discard whole libraries when I learn somehting new, or just on a whim to test out a theory. The source i mostly of very low quality, and I would feel embarassed to release it to the public. I am capable of much better work, but the focus is not on quality necessarily but on proving my theories in code.
However, m7 is being incrementally refactored, and should I ever be pleased with the quality of the source code, I may release it.
Q: Is this part of you plot to take over the world?
A: I am not aware of any plots by myself, nor any secret organisations with which I am affiliated with, to take over the world.
Q: Will C99 ever be a commercial product?
A: C99.m7 is what I'm working on right now, and it's not commercial complient. Considering the quality of commercial software nowadays, however, who knows what might happen?
Q: How come m7 is so useless?
A: I haven't been able to consistently devote the time or attention to koding that I wanted to. I keep trying, but so far I haven't gone for more than a few days without being drawn into something else... this isn't a complaint, just recounting the past.
However, functionality is a priority, but the primary one in my mind is to learn more, adn gian experience, although learning how to make a functional tool of this scope is the eventual idea ***smiles***.
M : The funny looking practice project for C99.
M6 : "manglehaftes beispiel kode vor c99".
C99 : Chip&Gran's C64 immulator
Lost? Try going
home
... or try
Chip's C99 page
The C99 Logo featured above is by and copyright Chip,
and used with permission.
Email my C99 mailbox With any M or C99 related questions, quieres, comments, and such like.
Or
Email my Yahoo! Geocities mailbox
Any questions... comments.. pledges of money or sex...
I'll answer.. eventually....