ACPUv2 README
##################################################
# A CCC PPP U U V V 22222 #
# A A C P P U U V V 22 #
# AAAAA C PPP U U V V 22 #
# A A CCC P UUUU V 2222 #
##################################################
(bad @ ascii art)
CHANGELOG:
###############
# * = CHANGED #
# + = ADDED #
# - = REMOVED #
###############
v0.7:
* complete rewrite of base systems
- bussystem not yet implemented
* following classes not rewritten: register, bitregister, emulatorbase (fetchOpCode,etc.)
+ Better startup screen
+ changed opcode length from 7 to 8 bytes. the 8th byte is not interpreted
and can be used as variable
v0.6.1:
+ added TEST (testing required)
+ added byte2BitConverter
* bugfixes
v0.6:
* moved commandlines to config.xml
including: memorysize, memoryfile, memoryprealloc, memorycachetotalsize
* this marks now beginning of milestone 0.6
v0.5.3.1:
* updated README.txt
v0.5.3:
* fixed codefetcher (was mostly assembly bug)
+ added config.xml
- forgott to update readme.txt in the original v0.5.3 package (this is v0.5.3.1(?))
v0.5.2X:
* bugfixes in bussystem
+ hdd1 (closed)
+ now working :D
v0.5.2:
+ added base for bussystem and busdevices
+ added IN and OUT
* small codechanges
v0.5.1:
+ added new commandlines
+ added load, store, push, pop, all jmps, cmp, rcmp, ccmp
+ added base for INT
+ changed key. Now using a threads that is buffering the key data
* changed memory now accepting sizevalues below 16kb
Commandlines command list: (not casesensitive)
-debug - Stops and debugs after every step
-lazymem - Memory is not overwritten on start
-memsize={x}k - Sets memory size to {x} KB
-memsize={x}m - Sets memory size to {x} MB
-memfile={y} - Sets memoryfilename to {y}
-cachetsize={x}k - Sets total cachesize to {x} KB
-cachetsize={x}m - Sets total cachesize to {m} MB
-prealloc={x} - Sets preallocated/cached memory to {x} byte
-prealloc={x}k - Sets preallocated/cached memory to {x} byte
-nodump - Doesnt dump the memory on error
-quietreg - Does not show the name of every register
-debugfile={y} - Outputs DebugMessages (not errors) to file {y}
v0.5:
* NOW ALPHA!!!
+ now packed with a biosRom.bin for beginners (in v0.5 only a sample program)
* improved POST
* MANY MANY MANY MANY MANY bugfixes
* major changes in code that can't all be listed
!!! WARNING !!! The v0.1-Compiler is bugger and should not be used
v0.4X:
* small bugfixes working on the major bug of the code fetcher doing sh*t
v0.4:
+ added info to changelog
+ added POST-Test (now only testing a fixed value (FXDVAL-Test) and a random value (RNDVAL-Test) with mem and regs)
+ improved memory now using a standart stream to memory file/never closed
* shrunk some function down/improved speed around 30%
* increased memory to 8 KB
* still have BIGNUM-execution bug
- removed bug where memory stream collapses
- removed bug where a number gets screwed up by converted
- removed bug where the emulator throws a random exception from a test function (removed function)
- removed major bug when loading biosRom.bin
v0.3:
+ added new opcode and fixed compiler
* now working compiler with a few commands
* Using now uint, UInt16, UInt32 instead of int, Int16, Int32
So now without sign maybe never so OPSYS need emulation on its own
* improved opcode parsing about 10%
- removed many bugs
v0.2:
+ added opcode Functions
+ added mov, add, sub, and
* designed opcode
* VisualACPU designed and first functions
* now trying to complete parsing and compilation of opcode/assembler code
v0.1:
+ Basic Emulator function inc. memory, stack, regset
+ Improved Register Handling (now an array instead of a fixed set of vars)
* 32bit
* binary execution
* fpu & gpu
* direct execution of program files in format BPF
* memory up to 4GB (through caching the last blocks and storing the memory only on file)
* real bios
* 1 rom with 1Megabyte
* 2 hdd, 1 binary and 1 emulated through binary file, allows writing of bootloaders without drivers
################
#Newest Opcode #
################
* = implemented
? = base implemented but not working
W = wip
D = almost done
/* INT16 - INT16 - INT32 - INT32 - INT32 - INT32 - INT32 - INT32 - INT32
* OPCODE_A - OPCODE_B - DATA1A - DATA2A - DATA3A - DATA1B - DATA2B - DATA3B - DATAX
*
*
* mov | dest, src, mode | 0x0000 *
* - -
* add | add1, add2, dest | 0x0100 *
* sub | sub1, sub2, dest | 0x0101 *
* and | and1, and2, dest | 0x0102 *
* or | or1, or2, dest | 0x0103 *
* not | not1, not2, dest | 0x0104 *
* xor | xor1, xor2, dest | 0x0105 *
* - -
* jt | dest, seg, mode | 0x0200
* jf | dest, seg, mode | 0x0201
* jmp | dest, seg, mode | 0x0202 *
* jne | dest, seg, mode | 0x0203 *
* je | dest, seg, mode | 0x0204 *
* jb | dest, seg, mode | 0x0205 *
* js | dest, seg, mode | 0x0206 *
* - -
* cmp | reg1, reg2, 0 | 0x0300 *
* test | reg, data, mode | 0x0301
* - -
* hlt | mode, 0, 0 | 0x0400 *
* - -
* rtest| 0, 0, 0 | 0x0500
* rcmp | 0, 0, 0 | 0x0501 *
* ccmp | 0, 0, 0 | 0x0502 *
* ctest| 0, 0, 0 | 0x0503
* - -
* load | reg, adr, mode | 0x0600 *
* store| reg, adr, mode | 0x0601 *
* - -
* push | reg, mode, 0 | 0x0700 *
* pop | reg, 0, 0 | 0x0701 *
* inc | reg, 0, 0 | 0x0702
* dec | reg, 0, 0 | 0x0703
* beep | frq, dur, 0 | 0x0704
* - -
* prnt | reg, col, mode | 0x0800 *
* gpu | col, pos1, pos2 | 0x0801
* gpu | ptr, len, ptr | 0x0802
* key | reg, mode, 0 | 0x0803 *
* - -
* in | reg, ioadr, 0 | 0x0900
* out | reg, ioadr, 0 | 0x0901
* int | id, mode, 0 | 0x0902
*
*/