Path: utzoo!utgpu!water!watmath!clyde!cbosgd!ihnp4!alberta!myrias!cg From: cg@myrias.UUCP (Chris Gray) Newsgroups: comp.sys.amiga Subject: Re: DRACO Message-ID: <550@myrias.UUCP> Date: 3 Feb 88 00:46:14 GMT References: <897@hubcap.UUCP> Reply-To: cg@myriasa.UUCP (Chris Gray) Distribution: na Organization: Myrias Research Corporation Lines: 60 Draco is still alive and well. There are a few users around town here (Edmonton Alberta - the frozen north), plus scattered others down in the US of A. There could also be lots more that I don't know about. As for its current status with me: - I use it for all of my programming on the Amiga - since the Draco distribution (Fish disks 76 and 77), I've been busy working on: - Amiga Empire (a full rewrite of UNIX Empire) - Fish disk 118? - a Canadian content screen hack (coming soon!) - IFF stuff (showILBM with colour cycling) - a truly overkill expansion of my terrain generator, including a colour palette editor requester, a file requester, and a library to ease text menu creation - the Amiga port of my graphics D & D game system. This involved about 4K lines of new code (View, moving Viewports, input.device handler, mouse handling, a sprite, etc. along with a whole new polygon-fill picture editor (to be scrapped, sigh)) - small start (the lexical analyzer) for Draco-II (don't hold your breath!) As for bugs, well there are some that have shown up, but none have been serious enough to merit a redistribution. Here's the complete list as far as I know (if anybody knows of any others, PLEASE let me know!): - the result of an I/O operation (like read, writeln, etc.) returns a value (internally called an IORESULT) which is boolean if used, but can be ignored without a message from the compiler. Currently you can't use one of these as the return value of a procedure. (Probably a 5 line fix.) - Can't currently predeclare a function with a parameter which is an array of unknown size. E.g. the compiler won't accept extern func([*] int param)int; ... proc func([*] int param)int: ... corp; - bad code is generated for a construct like this: if (x = 'a') ~= (y = 'a') then ... I probably forgot to call "putInReg" for the left-hand-side expression for a comparison of booleans. - include/devices/timer.g change UINT -> UNIT include/exec/interrupts.g parameter of "Cause" in "*Interrupt_t" include/exec/interrupts.g is_data -> is_Data include/intuition/gadget.g added union types instead of *byte a few other minor changes to obscure include files - the compiler uses a shift right to do a signed integer divide by a constant power of 2. This doesn't work. Oops! The last two are the only ones I've bothered to fix. -- Chris Gray Myrias Research, Edmonton +1 403 428 1616 {uunet!mnetor,ubc-vision,watmath,vax135}!alberta!myrias!cg