Main differences from latest 06 version are these:
1) now all video modes are been mapped in ram[] buffer instead of use a separate buffer[]
2) mode number 12 of the 320x200 graphic resolution has been restored to 11
3) new graphic resolution 640x400 monochrome can be used by setting the video mode to 12
4) GDI operations have been accelerated, now is only set the buffer of the bitmap instead of create continuously the bitmaps on screen
5) some bugs during the loading/saving of the file assembly has been fixed
6) base macros of read/write operations on simulated memory have been rewritten
7) new opcodes that access the cpu memory were added, including also for/next and ijpn opcodes that are used to perform loops like basic
8) many example files are been modified in according to new opcodes
9) most of existing opcodes have been optimized in speed
14 new opcodes:
LDX , // LDX R, 0x2EF0 : (D\<S) XX Load Register with contents of Memory Address or LineNumber
LDMI , // same as LDM : (D\<S) -- Load Register with contents of MemoryAddress pointed by Register and increment the MemoryAddress
LDMD , // same as LDM : (D\<S) -- Load Register with contents of MemoryAddress pointed by Register and decrement the MemoryAddress
STMI , // same as STM : (S>D) -- Copy Register into [MemoryAddress] through another Register and increment the MemoryAddress
STMD , // same as STM : (S>D) -- Copy Register into [MemoryAddress] through another Register and decrement the MemoryAddress
MOVI , // same as MOVE : (S>D) X- Copy Register into [abs MemoryAddress + Offset register] and increment the MemoryAddress
MOVD , // same as MOVE : (S>D) X- Copy Register into [abs MemoryAddress + Offset register] and decrement the MemoryAddress
SHLR , // same as SHL : (D<<) -- SHIFT Left the destination register by Register value
SHRR , // same as SHR : (D>>) -- SHIFT Right the destination register by Register value
IJPN , // IJPN R, 100, LOOP : (D< ) XX Increment Register by 1, Compare Register to immediate and JUMP to ABS/REL-Address if LESS
FOR , // FOR 1, 100, +2 : (S>#) -- Save immediate FOR values on Stack
SSET , // SSET I, E, S, Z : (D<#) -- Restore FOR values from Stack to registers and Save used registers on Stack
NEXT , // NEXT I, E, S, LOOP : (D< ) XX Increment Reg1 with Reg3, Compare Reg1 to Reg2 and JUMP to Address if LESS, else Restore Regs
IMMS , // same as SAVE : (S>#) -- Save four immediate values on Stack
Well, that's all for now.
I greet you and thank you.
Anonymous