Labels
This commit is contained in:
@ -3,16 +3,16 @@ package fabrik.simulator.pic16f84;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.geometry.Insets;
|
||||
|
||||
import javafx.scene.chart.PieChart;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.VBox;
|
||||
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static javafx.application.Application.launch;
|
||||
|
||||
public class Table {
|
||||
@ -22,13 +22,25 @@ public class Table {
|
||||
//Tabelle aktualisieren
|
||||
|
||||
private static final int NUM_COLUMNS = 8; // Anzahl der Spalten
|
||||
private static final double TABLE_WIDTH = 400; // Breite der TableView
|
||||
private static final double TABLE_HEIGHT = 650; // Höhe der TableView
|
||||
private static final double TABLE_WIDTH = 420; // Breite der TableView
|
||||
private static final double TABLE_HEIGHT = 600; // Höhe der TableView
|
||||
|
||||
private static String format (String s) {
|
||||
private static String formatHex(String s) {
|
||||
return (s.length() == 1) ? "0" + s : s;
|
||||
}
|
||||
|
||||
private static String formatBin (String s){
|
||||
int l = s.length();
|
||||
if (l < 8){
|
||||
StringBuilder sBuilder = new StringBuilder(s);
|
||||
for (int i = 0; i < 8 - l; i++){
|
||||
sBuilder.insert(0, "0");
|
||||
}
|
||||
s = sBuilder.toString();
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
public static VBox refresh(){
|
||||
// Erstelle eine Instanz der DataRegister-Klasse
|
||||
@ -63,8 +75,8 @@ public class Table {
|
||||
for (int col = 0; col < NUM_COLUMNS; col++) {
|
||||
int index = row * NUM_COLUMNS + col;
|
||||
if (index < DataRegister.getDataRegister().length) {
|
||||
String address = "0x" + format(Integer.toHexString(index).toUpperCase());
|
||||
String value = "0x" + format(Integer.toHexString(DataRegister.getDataRegister()[index]).toUpperCase());
|
||||
String address = "0x" + formatHex(Integer.toHexString(index).toUpperCase());
|
||||
String value = "0x" + formatHex(Integer.toHexString(DataRegister.getDataRegister()[index]).toUpperCase());
|
||||
rowData[col] = new DataEntry(address, value);
|
||||
} else {
|
||||
rowData[col] = new DataEntry("", "");
|
||||
@ -73,28 +85,57 @@ public class Table {
|
||||
tableView.getItems().add(rowData);
|
||||
}
|
||||
|
||||
// Erstelle Labels für die Spezialregister
|
||||
Label pclLabel = new Label("PCL: 0x" + format(Integer.toHexString(DataRegister.getRegister(DataRegister.getPCL())).toUpperCase()));
|
||||
Label statusLabel = new Label("STATUS: 0x" + format(Integer.toHexString(DataRegister.getRegister(DataRegister.getSTATUS())).toUpperCase()));
|
||||
Label fsrLabel = new Label("FSR: 0x" + format(Integer.toHexString(DataRegister.getRegister(DataRegister.getFSR())).toUpperCase()));
|
||||
Label pclathLabel = new Label("PCLATH: 0x" + format(Integer.toHexString(DataRegister.getRegister(DataRegister.getPCLATH())).toUpperCase()));
|
||||
Label intconLabel = new Label("INTCON: 0x" + format(Integer.toHexString(DataRegister.getRegister(DataRegister.getINTCON())).toUpperCase()));
|
||||
Label wRegisterLabel = new Label("W-Register: 0x" + format(Integer.toHexString(Commands.get_wRegister()).toUpperCase()));
|
||||
Label PCLabel = new Label("PC: 0x" + format(Integer.toHexString(DataRegister.getPC()).toUpperCase()));
|
||||
Label Prescaler = new Label("Prescaler: 0x" + format(Integer.toHexString(PreScaler.getScaler())).toUpperCase());
|
||||
// Erstelle Labels für die Spezialregister;
|
||||
|
||||
Label spacing = new Label(" ");
|
||||
Label spacing2 = new Label(" ");
|
||||
Label wRegisterLabel = new Label("W-Register: 0x" + formatHex(Integer.toHexString(Commands.get_wRegister()).toUpperCase()));
|
||||
Label cLabel = new Label("Carry: 0x" + formatHex(Integer.toHexString(DataRegister.getCarryFlag())));
|
||||
Label dcLabel = new Label("Digit-Carry: 0x" + formatHex(Integer.toHexString(DataRegister.getDigitCarryFlag())));
|
||||
Label zLabel = new Label("Zero-Flag: 0x" + formatHex(Integer.toHexString(DataRegister.getZeroFlag())));
|
||||
Label pcLabel = new Label("PC: 0x" + formatHex(Integer.toHexString(DataRegister.getPC()).toUpperCase()));
|
||||
Label pclLabel = new Label("PCL: 0x" + formatHex(Integer.toHexString(DataRegister.getRegister(DataRegister.getPCL())).toUpperCase()));
|
||||
Label pclathLabel = new Label("PCLATH: 0x" + formatHex(Integer.toHexString(DataRegister.getRegister(DataRegister.getPCLATH())).toUpperCase()));
|
||||
Label statusLabel = new Label("STATUS: 0b" + formatBin(Integer.toBinaryString(DataRegister.getRegister(DataRegister.getSTATUS())))+ " (0x" + formatHex(Integer.toHexString(DataRegister.getRegister(DataRegister.getSTATUS())).toUpperCase()) + ")");
|
||||
Label fsrLabel = new Label("FSR: 0x" + formatHex(Integer.toHexString(DataRegister.getRegister(DataRegister.getFSR())).toUpperCase()));
|
||||
Label prescalerLabel = new Label("Prescaler: 0x" + formatHex(Integer.toHexString(PreScaler.getScaler())).toUpperCase());
|
||||
Label intconLabel = new Label("INTCON: 0b" + formatBin(Integer.toBinaryString(DataRegister.getRegister(DataRegister.getINTCON()))) + " (0x" + formatHex(Integer.toHexString(DataRegister.getRegister(DataRegister.getINTCON())).toUpperCase()) + ")");
|
||||
|
||||
wRegisterLabel.setStyle("-fx-font-weight: bold");
|
||||
pcLabel.setStyle("-fx-font-weight: bold");
|
||||
statusLabel.setStyle("-fx-font-weight: bold");
|
||||
intconLabel.setStyle("-fx-font-weight: bold");
|
||||
|
||||
HBox labelsAndButton = new HBox();
|
||||
VBox labels = new VBox();
|
||||
labels.getChildren().addAll(spacing, pcLabel, pclLabel, pclathLabel, wRegisterLabel, cLabel, dcLabel, zLabel, statusLabel, fsrLabel, prescalerLabel, intconLabel);
|
||||
VBox button = new VBox();
|
||||
Button resetButton = new Button("Register reset");
|
||||
resetButton.setOnAction(e -> {
|
||||
DataRegister.initDataRegister();
|
||||
DataRegister.setPC(DataRegister.getPC()-1);
|
||||
triggerRefresh();
|
||||
});
|
||||
|
||||
button.getChildren().addAll(spacing2, resetButton);
|
||||
|
||||
labelsAndButton.getChildren().addAll(labels, button);
|
||||
|
||||
|
||||
// Erstelle einen VBox, um die TableView und Labels anzuzeigen
|
||||
VBox table = new VBox();
|
||||
table.getChildren().addAll(tableView, pclLabel, statusLabel, fsrLabel, pclathLabel, intconLabel, wRegisterLabel, PCLabel, Prescaler);
|
||||
table.getChildren().addAll(tableView, labelsAndButton);
|
||||
VBox.setMargin(tableView, new Insets(0, 0, 0, 0));
|
||||
|
||||
return table;
|
||||
|
||||
}
|
||||
|
||||
private static void triggerRefresh() {
|
||||
Controller_Frontend.triggerTableRefresh();
|
||||
IOPorts.refreshUI(Controller_Frontend.getTRISbuttons(), Controller_Frontend.getPORTbuttons());
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user