(mikey's) TODO list:

- Add __saveAllRegisters() macro to the ASM code.
- Make vbslacker.cons parser handle multiple spaces.
- Check entire codebase for "//" comments.
- Put const qualifier wherever you can.
- Split console drivers into individual shared libraries that are
  loaded/unloaded dynamically, in a config-file-specified hierarchy.
- Check all code for possible replacements with _vbReleaseThreadThrowError().
- errors should be their own type? Short?
- autoconf.
- __crashHandler();
- re-mangle all BASIClib symbols. AGAIN. Ugh.
- BasicString needs to become __vbString ...
- PBasicString needs to become __vbString * ...
- Variant needs to become __vbVariant ...
- PVariant needs to become __vbVariant * ...
- Other constants need modifying...
- What to do about: ActiveX  (_vbComponent?)
- What to do about all the damned constants?
- What to do about variants?
- FileSystemFunctions: FileDateTime(), FileLen(), GetAttr(),
- Figure out data types.
- vbs output specs.
- revise name mangling; variable arguments?
- finish tracing randomizing stuff...
- Write signal handlers...
- Complete console drivers.
- Catch up testlib, in general.
- RESUME NEXT recursive testing.
- Streamline makefiles. Most of it is just duplication. Autoconf?
- Examine/eliminate the "!!!" comments in the source.
- Eliminate #warnings in the source, as well.
- DON'T FORGET TO WRITE TESTLIB CODE FOR ALL IMPORTANT FUNCTIONS!
- Check lists at end of each module for completely unimplemented APIs.
  Do something about these.
- Consider how to implement READ/DATA/RESTORE
- Design full, detailed timetable.
- Consider marketing strategy.
- Write the !@#$ing thing.
- Slow down a bit so Greg can catch up. :)
- ...and much, much more.


Here're a list of all the BASIC APIs (some are already done):

Statements:

AppActivate
Beep
Call
ChDir
ChDrive
Close
Const
Date
Declare
Deftype (defint, defsgn...)
DeleteSetting
Dim
Do...Loop
End (...)
Enum
Erase
Error
Event
Exit (...)
FileCopy
For...Next
For Each...Next
Function
Get #
Gosub...Return
GoTo
If...Then...Else
Implements
input #
Kill
Let
TYPEOF runtime functionality
line input #
load
lock
unlock
lset string version
lset struct version
mid = version
mkdir
name
on error
on ... gosub
on ... goto
open
option base
option compare
option explicit
option private
print #
private
property get
property let
property set
public
put #
RaiseEvent
Randomize
Redim
REM
'
Reset  (just CLOSE without params)
Resume
rmdir
Rset (just string version)
SavePicture
SaveSetting
seek #
select case
SendKeys
set
SetAttr
static
Stop
sub
Time statement
type
unload
while...wend
Width #
with
Write #

Operators:
&
*
+
-
/
\
^
= (assignment)
AddressOf
And
<
<=
>
>=
= (comparison)
<>
Eqv
Imp
Is
Like
Mod
Not
Or
Xor

Functions:

Abs
Array
Asc
Atn
CallByName
Choose
Chr
Command
Cos
CreateObject
CurDir
CVErr
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
DDB
Dir
DoEvents
Environ
EOF
Error
Exp
FileAttr
FileDateTime
FileLen
Filter
Format
FormatCurrency
FormatDateTime
FormatNumber
FormatPercent
FreeFile
FV
GetAllSettings
GetAttr
GetAutoServerSettings
GetObject
GetSetting
Hex
Hour
IIf
IMEStatus
Input
InputBox
InStr
InStrRev
Int
Fix
IPmt
IRR
IsArray
IsDate
IsEmpty
IsError
IsMissing
IsNull
IsNumeric
IsObject
Join
LBound
LCase
Left
Len
LoadPicture
LoadResData
LoadResPicture
LoadResString
Loc
LOF
Log
Ltrim
Rtrim
Trim
Mid
Minute
MIRR
Month
MonthName
MsgBox
Now
NPer
NPV
Oct
Partition
Pmt
PPmt
PV
QBColor
Rate
Replace
RGB
Right
Rnd
Round
Second
Seek
Sgn
Shell
Sin
SLN
Space
Spc
Split
Sqr
Str
StrComp
StrConv
String
StrReverse
Switch
SYD
Tab
Tan
Time
Timer
TimeSerial
TimeValue
TypeName
UBound
UCase
Val
VarType
Weekday
WeekdayName
Year

...don't even talk to me about controls, yet.  :)

/* end of todo_mikey.txt ... */
