Examples of HexConverter


Examples of br.com.gmartins.simbler.helpers.HexConverter

    }
    private StringBuilder strCmd;

    private void getCommand(String cmd) {
        if (!cmd.isEmpty()) {
            HexConverter hexToDec = new HexConverter();
            String fWord = "";
            String lWord = "";
            // Comparação feita pois estava causando travamentos quando eram lidas linhas com menos de 3 caracteres
            if (cmd.length() >= 3) {
                fWord = cmd.substring(0, 3).toUpperCase();
                lWord = cmd.substring(3);
            }

            /** Todos os códigos comparados abaixo foram retirados do ENIAC a partir de testes feitos com base nos comandos que eu conhecia,
             * pode ser que hajam mais códigos do que abaixo.
             * Os 3 primeiros digitos do ENIAC tratam-se da definição dos comandos, que provavelmente foi um número escolhido pelo próprio criador
             * Os 3 últimos digitos, podem ser números de valores, por exemplo "JMP 30" - o "30" representa os 3 últimos digitos em Hexadecimal
             * Podem também representar os registradores, como AX, BX e etc, cada registrador tem um número de indentificação prórpio que foi definido pelo
             * criador.
             * Totalizando 6 digitos
             *
             * Para cada linha de comando contido no arquivo .eniac é feita a verificação, caso a comparação seja verdadeira é feita a conversão
             */
            if (fWord.equals("200")) {
                strCmd.append("JMP ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());

            } else if (fWord.equals("A00")) { // LOAD 5
                strCmd.append("LOAD ");

                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("A02")) { // LOAD @1
                strCmd.append("LOAD @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("A08")) { // LOAD AX
                strCmd.append("LOAD ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("A0A")) { // LOAD @BX
                strCmd.append("LOAD @");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("2B0")) {
                strCmd.append("JZ ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("2A0")) {
                strCmd.append("JNZ ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("100")) {
                strCmd.append("HLT");
            } else if (fWord.equals("C00")) {
                strCmd.append("SUB ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("C02")) {
                strCmd.append("SUB @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("C08")) {
                strCmd.append("SUB ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("C80")) {
                strCmd.append("ADD ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("C82")) {
                strCmd.append("ADD @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("C88")) {
                strCmd.append("ADD ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("F00")) {
                strCmd.append("MUL ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("F02")) {
                strCmd.append("MUL @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("F08")) {
                strCmd.append("MUL ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("F80")) {
                strCmd.append("DIV ");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("F82")) {
                strCmd.append("DIV @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("D88")) {
                strCmd.append("INC ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("D82")) {
                strCmd.append("INC @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("D08")) {
                strCmd.append("DEC ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("D02")) {
                strCmd.append("DEC @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else if (fWord.equals("B88")) {
                strCmd.append("STORE ");
                strCmd.append(checkRegister(lWord));
            } else if (fWord.equals("B82")) {
                strCmd.append("STORE @");
                hexToDec.setHexValue(lWord);
                strCmd.append(hexToDec.convertToDecimal());
            } else {
                hexToDec.setHexValue(cmd);
                strCmd.append("DB ");
                strCmd.append(hexToDec.convertToDecimal());
            }
        } else {
            // Caso a linha esteja vazia, então define vazio em strCmd;
            strCmd.append("");
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.