| This week I provide the Java 1.1 version of Spill The Beans!. You can find the version for Java 1.0.2 in Weekly Applets - Issue 2. This is not a simple applet but a complete application. It's useful to view in an understandable form class files, showing them in three ways: a dump view, an assembly view with the VM sintax and an assembly view with a simplified sintax. To execute Spill The Beans! you need to download the TETRACTYS Enhanced Apis too. |
Download Shortcuts for Spill The Beans!
Classes Batch file for Win95 & Classes (28 KB) TETRACTYS Enhanced Apis (55 KB) Docs "Spill The Beans!" Source Code (28 KB) TEA Source Code (76 KB) TEA Javadoc generated docs (115 KB) |
If something goes wrong, it's important that you check the correct directories: in PATH you must add the directory where java.exe is stored, while in CLASSPATH you must put the directory you have created for spill.jar and tea.jar (it's not a bad idea to add the path for the classes.zip of Java 1.1, too). Remember that the icons (GIF images) must be in a directory called /icons.
If the problem persists, write directly to TETRACTYS Freeware with a description of what goes wrong. For any comment or suggestion, please use the comments form.
As usual there is a text area, a status bar, a tool bar and a menu bar. The use is very simple and the items in the menus are few.
When a class file is selected and DUMP is not checked, in the tool bar appears the list of the methods. If a method is large, it is spanned on multiple text areas (due to a text size limit for standard text areas).
Changes in the check of SIMPLE SINTAX and SHOW PACKAGES involve only the current method, unless the text area shows the class header (first page).
To understand the DUMP view and the VM sintax read The Java Virtual Machine Specification. You can find it somewhere at JavaSoft.
Remember that the Java Virtual Machine uses only stack, no registers.
nop | no operation | load | loads a value from the stack | store | store a value into the stack |
---|---|---|---|---|---|
pop | pops a value | pop2 | pops two values | dup | duplicates a value |
dup_x1 | ...,x2,x1-> ...,x1,x2,x1 | dup_x2 | ...,x3,x2,x1-> ...,x1,x3,x2,x1 | dup2 | duplicates two values |
dup2_x1 | ...,x4,x3,x2,x1-> ...,x2,x1,x4,x3,x2,x1 | dup2_x2 | ...,x4,x3,x2,x1-> ...,x2,x1,x4,x3,x2,x1 | swap | ...,x2,x1-> ...,x1,x2 |
add | adds | sub | subtracts | mul | multiplies |
div | divides | mod | finds the remainder | neg | negates |
shl | shift left | shr | signed shift right | ushr | unsigned shift right |
and | logical and | or | logical or | xor | logical xor |
long | conversion | float | conversion | double | conversion |
byte | conversion | char | conversion | short | conversion |
cmpl | true if equal or less | cmpg | true if equal or greater | ifXX | jumps if XX is satisfied |
goto | jumps | jsr | jumps to subroutine | ret | returns from subroutine |
switch | switch clause | return | returns from method | invoke | invokes a method |
new | new object | newarray | new array | checkcast | checks casting |
instanceof | checks if instance of |
![]() |
In the next Issue Weekly Applet will be | ![]() |
---|