From 7280ead73279ee1ee36aa6d584bdce1c314da82a Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Mon, 14 Sep 2020 17:59:15 +1000 Subject: [PATCH] header underlines --- .../applefile/ApplesoftConstants.java | 2 + .../applefile/AssemblerBlocks.java | 4 + .../applefile/AssemblerConstants.java | 134 +++++++++--------- .../applefile/AssemblerStatement.java | 16 +++ .../diskbrowser/applefile/BootSector.java | 10 ++ .../applefile/ErrorMessageFile.java | 9 ++ .../diskbrowser/applefile/ExoBufferC.java | 1 + .../applefile/FaddenHiResImage.java | 4 + .../applefile/FileTypeDescriptorTable.java | 8 ++ .../applefile/IntegerBasicProgram.java | 19 +++ .../diskbrowser/applefile/MerlinSource.java | 12 ++ .../diskbrowser/applefile/Palette.java | 10 ++ .../diskbrowser/applefile/PaletteFactory.java | 20 +++ 13 files changed, 183 insertions(+), 66 deletions(-) diff --git a/src/com/bytezone/diskbrowser/applefile/ApplesoftConstants.java b/src/com/bytezone/diskbrowser/applefile/ApplesoftConstants.java index 8c4af7e..01f7da1 100755 --- a/src/com/bytezone/diskbrowser/applefile/ApplesoftConstants.java +++ b/src/com/bytezone/diskbrowser/applefile/ApplesoftConstants.java @@ -1,6 +1,8 @@ package com.bytezone.diskbrowser.applefile; +// -----------------------------------------------------------------------------------// public interface ApplesoftConstants +// -----------------------------------------------------------------------------------// { String[] tokens = { // "END ", "FOR ", "NEXT ", "DATA ", // 0x80 - 0x83 diff --git a/src/com/bytezone/diskbrowser/applefile/AssemblerBlocks.java b/src/com/bytezone/diskbrowser/applefile/AssemblerBlocks.java index 2bbf1d7..a7a481c 100644 --- a/src/com/bytezone/diskbrowser/applefile/AssemblerBlocks.java +++ b/src/com/bytezone/diskbrowser/applefile/AssemblerBlocks.java @@ -3,9 +3,13 @@ package com.bytezone.diskbrowser.applefile; import java.util.ArrayList; import java.util.List; +// -----------------------------------------------------------------------------------// public class AssemblerBlocks +// -----------------------------------------------------------------------------------// { + // ---------------------------------------------------------------------------------// public AssemblerBlocks (byte[] buffer, int loadAddress) + // ---------------------------------------------------------------------------------// { int ptr = 0; boolean inCode = true; diff --git a/src/com/bytezone/diskbrowser/applefile/AssemblerConstants.java b/src/com/bytezone/diskbrowser/applefile/AssemblerConstants.java index 9161767..45e9913 100755 --- a/src/com/bytezone/diskbrowser/applefile/AssemblerConstants.java +++ b/src/com/bytezone/diskbrowser/applefile/AssemblerConstants.java @@ -1,67 +1,69 @@ -package com.bytezone.diskbrowser.applefile; - -public interface AssemblerConstants -{ - // 1A = INC A, 3A = DEC A - String[] mnemonics = { "BRK", "ORA", "???", "???", "TSB", "ORA", "ASL", "???", // 00 - "PHP", "ORA", "ASL", "???", "TSB", "ORA", "ASL", "???", // 08 - "BPL", "ORA", "ORA", "???", "TRB", "ORA", "ASL", "???", // 10 - "CLC", "ORA", "INC", "???", "TRB", "ORA", "ASL", "???", // 18 - "JSR", "AND", "???", "???", "BIT", "AND", "ROL", "???", // 20 - "PLP", "AND", "ROL", "???", "BIT", "AND", "ROL", "???", // 28 - "BMI", "AND", "AND", "???", "BIT", "AND", "ROL", "???", // 30 - "SEC", "AND", "DEC", "???", "BIT", "AND", "ROL", "???", // 38 - "RTI", "EOR", "???", "???", "???", "EOR", "LSR", "???", // 40 - "PHA", "EOR", "LSR", "???", "JMP", "EOR", "LSR", "???", // 48 - "BVC", "EOR", "EOR", "???", "???", "EOR", "LSR", "???", // 50 - "CLI", "EOR", "PHY", "???", "???", "EOR", "LSR", "???", // 58 - "RTS", "ADC", "???", "???", "STZ", "ADC", "ROR", "???", // 60 - "PLA", "ADC", "ROR", "???", "JMP", "ADC", "ROR", "???", // 68 - "BVS", "ADC", "ADC", "???", "STZ", "ADC", "ROR", "???", // 70 - "SEI", "ADC", "PLY", "???", "JMP", "ADC", "ROR", "???", // 78 - "BRA", "STA", "???", "???", "STY", "STA", "STX", "???", // 80 - "DEY", "BIT", "TXA", "???", "STY", "STA", "STX", "???", // 88 - "BCC", "STA", "STA", "???", "STY", "STA", "STX", "???", // 90 - "TYA", "STA", "TXS", "???", "STZ", "STA", "STZ", "???", // 98 - "LDY", "LDA", "LDX", "???", "LDY", "LDA", "LDX", "???", // A0 - "TAY", "LDA", "TAX", "???", "LDY", "LDA", "LDX", "???", // A8 - "BCS", "LDA", "LDA", "???", "LDY", "LDA", "LDX", "???", // B0 - "CLV", "LDA", "TSX", "???", "LDY", "LDA", "LDX", "???", // B8 - "CPY", "CMP", "???", "???", "CPY", "CMP", "DEC", "???", // C0 - "INY", "CMP", "DEX", "???", "CPY", "CMP", "DEC", "???", // C8 - "BNE", "CMP", "CMP", "???", "???", "CMP", "DEC", "???", // D0 - "CLD", "CMP", "PHX", "???", "???", "CMP", "DEC", "???", // D8 - "CPX", "SBC", "???", "???", "CPX", "SBC", "INC", "???", // E0 - "INX", "SBC", "NOP", "???", "CPX", "SBC", "INC", "???", // E8 - "BEQ", "SBC", "SBC", "???", "???", "SBC", "INC", "???", // F0 - "SED", "SBC", "PLX", "???", "???", "SBC", "INC", "???" }; // F8 - - byte[] sizes2 = { 1, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 00 - 0F - 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 10 - 1F - 3, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 20 - 2F - 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 30 - 3F - 1, 2, 0, 0, 0, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 40 - 4F - 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0, // 50 - 5F - 1, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 60 - 6F - 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 70 - 7F - 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 80 - 8F - 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 90 - 9F - 2, 2, 2, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // A0 - AF - 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // B0 - BF - 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // C0 - CF - 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0, // D0 - DF - 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // E0 - EF - 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0 }; // F0 - FF - - byte[] sizes = { 1, 1, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2 }; - - String[] mode = - { "Implied", "Accumulator", "Immediate", "Absolute", "Absolute, X", "Absolute, Y", - "(Absolute, X)", "(Absolute)", "Zero page", "Zero page, X", "Zero page, Y", - "(Zero page, X)", "(Zero page), Y", "(Zero page)", "Relative" }; - - byte[] chip65c02 = - { 0x04, 0x0C, 0x12, 0x14, 0x1A, 0x1C, 0x32, 0x34, 0x3A, 0x3C, 0x52, 0x5A, 0x64, - 0x72, 0x74, 0x7A, 0x7C, (byte) 0x80, (byte) 0x89, (byte) 0x92, (byte) 0x9C, - (byte) 0x9E, (byte) 0xB2, (byte) 0xD2, (byte) 0xDA, (byte) 0xF2, (byte) 0xFA, }; +package com.bytezone.diskbrowser.applefile; + +// -----------------------------------------------------------------------------------// +public interface AssemblerConstants +// -----------------------------------------------------------------------------------// +{ + // 1A = INC A, 3A = DEC A + String[] mnemonics = { "BRK", "ORA", "???", "???", "TSB", "ORA", "ASL", "???", // 00 + "PHP", "ORA", "ASL", "???", "TSB", "ORA", "ASL", "???", // 08 + "BPL", "ORA", "ORA", "???", "TRB", "ORA", "ASL", "???", // 10 + "CLC", "ORA", "INC", "???", "TRB", "ORA", "ASL", "???", // 18 + "JSR", "AND", "???", "???", "BIT", "AND", "ROL", "???", // 20 + "PLP", "AND", "ROL", "???", "BIT", "AND", "ROL", "???", // 28 + "BMI", "AND", "AND", "???", "BIT", "AND", "ROL", "???", // 30 + "SEC", "AND", "DEC", "???", "BIT", "AND", "ROL", "???", // 38 + "RTI", "EOR", "???", "???", "???", "EOR", "LSR", "???", // 40 + "PHA", "EOR", "LSR", "???", "JMP", "EOR", "LSR", "???", // 48 + "BVC", "EOR", "EOR", "???", "???", "EOR", "LSR", "???", // 50 + "CLI", "EOR", "PHY", "???", "???", "EOR", "LSR", "???", // 58 + "RTS", "ADC", "???", "???", "STZ", "ADC", "ROR", "???", // 60 + "PLA", "ADC", "ROR", "???", "JMP", "ADC", "ROR", "???", // 68 + "BVS", "ADC", "ADC", "???", "STZ", "ADC", "ROR", "???", // 70 + "SEI", "ADC", "PLY", "???", "JMP", "ADC", "ROR", "???", // 78 + "BRA", "STA", "???", "???", "STY", "STA", "STX", "???", // 80 + "DEY", "BIT", "TXA", "???", "STY", "STA", "STX", "???", // 88 + "BCC", "STA", "STA", "???", "STY", "STA", "STX", "???", // 90 + "TYA", "STA", "TXS", "???", "STZ", "STA", "STZ", "???", // 98 + "LDY", "LDA", "LDX", "???", "LDY", "LDA", "LDX", "???", // A0 + "TAY", "LDA", "TAX", "???", "LDY", "LDA", "LDX", "???", // A8 + "BCS", "LDA", "LDA", "???", "LDY", "LDA", "LDX", "???", // B0 + "CLV", "LDA", "TSX", "???", "LDY", "LDA", "LDX", "???", // B8 + "CPY", "CMP", "???", "???", "CPY", "CMP", "DEC", "???", // C0 + "INY", "CMP", "DEX", "???", "CPY", "CMP", "DEC", "???", // C8 + "BNE", "CMP", "CMP", "???", "???", "CMP", "DEC", "???", // D0 + "CLD", "CMP", "PHX", "???", "???", "CMP", "DEC", "???", // D8 + "CPX", "SBC", "???", "???", "CPX", "SBC", "INC", "???", // E0 + "INX", "SBC", "NOP", "???", "CPX", "SBC", "INC", "???", // E8 + "BEQ", "SBC", "SBC", "???", "???", "SBC", "INC", "???", // F0 + "SED", "SBC", "PLX", "???", "???", "SBC", "INC", "???" }; // F8 + + byte[] sizes2 = { 1, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 00 - 0F + 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 10 - 1F + 3, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 20 - 2F + 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 30 - 3F + 1, 2, 0, 0, 0, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 40 - 4F + 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0, // 50 - 5F + 1, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 60 - 6F + 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 70 - 7F + 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // 80 - 8F + 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // 90 - 9F + 2, 2, 2, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // A0 - AF + 2, 2, 2, 0, 2, 2, 2, 0, 1, 3, 1, 0, 3, 3, 3, 0, // B0 - BF + 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // C0 - CF + 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0, // D0 - DF + 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 1, 0, 3, 3, 3, 0, // E0 - EF + 2, 2, 2, 0, 0, 2, 2, 0, 1, 3, 1, 0, 0, 3, 3, 0 }; // F0 - FF + + byte[] sizes = { 1, 1, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2 }; + + String[] mode = + { "Implied", "Accumulator", "Immediate", "Absolute", "Absolute, X", "Absolute, Y", + "(Absolute, X)", "(Absolute)", "Zero page", "Zero page, X", "Zero page, Y", + "(Zero page, X)", "(Zero page), Y", "(Zero page)", "Relative" }; + + byte[] chip65c02 = + { 0x04, 0x0C, 0x12, 0x14, 0x1A, 0x1C, 0x32, 0x34, 0x3A, 0x3C, 0x52, 0x5A, 0x64, + 0x72, 0x74, 0x7A, 0x7C, (byte) 0x80, (byte) 0x89, (byte) 0x92, (byte) 0x9C, + (byte) 0x9E, (byte) 0xB2, (byte) 0xD2, (byte) 0xDA, (byte) 0xF2, (byte) 0xFA, }; } \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/applefile/AssemblerStatement.java b/src/com/bytezone/diskbrowser/applefile/AssemblerStatement.java index 7dbabed..d2bb80a 100755 --- a/src/com/bytezone/diskbrowser/applefile/AssemblerStatement.java +++ b/src/com/bytezone/diskbrowser/applefile/AssemblerStatement.java @@ -6,7 +6,9 @@ import java.util.Comparator; import com.bytezone.diskbrowser.utilities.HexFormatter; import com.bytezone.diskbrowser.utilities.Utility; +// -----------------------------------------------------------------------------------// public class AssemblerStatement +// -----------------------------------------------------------------------------------// { public byte value; public String mnemonic; @@ -21,7 +23,9 @@ public class AssemblerStatement public boolean isTarget; public byte operand1, operand2; + // ---------------------------------------------------------------------------------// public static void print () + // ---------------------------------------------------------------------------------// { AssemblerStatement[] statements = new AssemblerStatement[256]; System.out.println (); @@ -67,7 +71,9 @@ public class AssemblerStatement } } + // ---------------------------------------------------------------------------------// public AssemblerStatement (byte opcode) + // ---------------------------------------------------------------------------------// { this.value = opcode; this.opcode = opcode & 0xFF; @@ -76,7 +82,9 @@ public class AssemblerStatement this.operand = ""; } + // ---------------------------------------------------------------------------------// String getChar (byte val) + // ---------------------------------------------------------------------------------// { int c = val & 0xFF; if (c > 127) @@ -92,7 +100,9 @@ public class AssemblerStatement return (char) c + ""; } + // ---------------------------------------------------------------------------------// public void addData () + // ---------------------------------------------------------------------------------// { switch (opcode) { @@ -142,7 +152,9 @@ public class AssemblerStatement } } + // ---------------------------------------------------------------------------------// public void addData (byte b) + // ---------------------------------------------------------------------------------// { operand1 = b; String address = "$" + HexFormatter.format2 (b); @@ -277,7 +289,9 @@ public class AssemblerStatement } } + // ---------------------------------------------------------------------------------// public void addData (byte b1, byte b2) + // ---------------------------------------------------------------------------------// { operand1 = b1; operand2 = b2; @@ -365,8 +379,10 @@ public class AssemblerStatement } } + // ---------------------------------------------------------------------------------// @Override public String toString () + // ---------------------------------------------------------------------------------// { if (offset == 0) return String.format ("%06X %d %3s %-10s %02X", address, size, mnemonic, operand, diff --git a/src/com/bytezone/diskbrowser/applefile/BootSector.java b/src/com/bytezone/diskbrowser/applefile/BootSector.java index 3122c02..3d94a4c 100644 --- a/src/com/bytezone/diskbrowser/applefile/BootSector.java +++ b/src/com/bytezone/diskbrowser/applefile/BootSector.java @@ -5,7 +5,9 @@ import com.bytezone.diskbrowser.disk.Disk; import com.bytezone.diskbrowser.disk.DiskAddress; import com.bytezone.diskbrowser.utilities.HexFormatter; +// -----------------------------------------------------------------------------------// public class BootSector extends AbstractSector +// -----------------------------------------------------------------------------------// { private static final byte[] skew = { 0x00, 0x0D, 0x0B, 0x09, 0x07, 0x05, 0x03, 0x01, 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x0F }; @@ -16,20 +18,26 @@ public class BootSector extends AbstractSector AssemblerProgram assembler2; String name; // DOS or Prodos + // ---------------------------------------------------------------------------------// public BootSector (Disk disk, byte[] buffer, String name, DiskAddress diskAddress) + // ---------------------------------------------------------------------------------// { super (disk, buffer, diskAddress); this.name = name; } + // ---------------------------------------------------------------------------------// public BootSector (Disk disk, byte[] buffer, String name) + // ---------------------------------------------------------------------------------// { super (disk, buffer); this.name = name; } + // ---------------------------------------------------------------------------------// @Override public String createText () + // ---------------------------------------------------------------------------------// { StringBuilder text = new StringBuilder (); @@ -80,7 +88,9 @@ public class BootSector extends AbstractSector return text.toString (); } + // ---------------------------------------------------------------------------------// private boolean matches (byte[] buffer, int offset, byte[] test) + // ---------------------------------------------------------------------------------// { if (test.length == 0 || test.length > buffer.length - offset) return false; diff --git a/src/com/bytezone/diskbrowser/applefile/ErrorMessageFile.java b/src/com/bytezone/diskbrowser/applefile/ErrorMessageFile.java index 70630ed..89774ca 100644 --- a/src/com/bytezone/diskbrowser/applefile/ErrorMessageFile.java +++ b/src/com/bytezone/diskbrowser/applefile/ErrorMessageFile.java @@ -1,24 +1,33 @@ package com.bytezone.diskbrowser.applefile; +// -----------------------------------------------------------------------------------// public class ErrorMessageFile extends AbstractFile +// -----------------------------------------------------------------------------------// { String text; + // ---------------------------------------------------------------------------------// public ErrorMessageFile (String name, byte[] buffer, Exception e) + // ---------------------------------------------------------------------------------// { super (name, buffer); StringBuilder text = new StringBuilder (); text.append ("Oops! : " + e.toString () + "\n\n"); + for (StackTraceElement ste : e.getStackTrace ()) text.append (ste + "\n"); + if (text.length () > 0) text.deleteCharAt (text.length () - 1); + this.text = text.toString (); } + // ---------------------------------------------------------------------------------// @Override public String getText () + // ---------------------------------------------------------------------------------// { return text; } diff --git a/src/com/bytezone/diskbrowser/applefile/ExoBufferC.java b/src/com/bytezone/diskbrowser/applefile/ExoBufferC.java index 3bf4867..caa6f69 100644 --- a/src/com/bytezone/diskbrowser/applefile/ExoBufferC.java +++ b/src/com/bytezone/diskbrowser/applefile/ExoBufferC.java @@ -5,6 +5,7 @@ package com.bytezone.diskbrowser.applefile; // -----------------------------------------------------------------------------------// public class ExoBufferC +// -----------------------------------------------------------------------------------// { private static int PBIT_BITS_ORDER_BE = 0; private static int PBIT_BITS_COPY_GT_7 = 1; diff --git a/src/com/bytezone/diskbrowser/applefile/FaddenHiResImage.java b/src/com/bytezone/diskbrowser/applefile/FaddenHiResImage.java index aeeef52..7e903f1 100644 --- a/src/com/bytezone/diskbrowser/applefile/FaddenHiResImage.java +++ b/src/com/bytezone/diskbrowser/applefile/FaddenHiResImage.java @@ -1,11 +1,15 @@ package com.bytezone.diskbrowser.applefile; +// -----------------------------------------------------------------------------------// public class FaddenHiResImage extends OriginalHiResImage +// -----------------------------------------------------------------------------------// { // https://github.com/fadden/fhpack/blob/master/fhpack.cpp + // ---------------------------------------------------------------------------------// public FaddenHiResImage (String name, byte[] buffer, int fileType, int auxType, int endOfFile) + // ---------------------------------------------------------------------------------// { super (name, buffer, fileType, auxType, endOfFile); diff --git a/src/com/bytezone/diskbrowser/applefile/FileTypeDescriptorTable.java b/src/com/bytezone/diskbrowser/applefile/FileTypeDescriptorTable.java index fb0dfa6..9d819a6 100644 --- a/src/com/bytezone/diskbrowser/applefile/FileTypeDescriptorTable.java +++ b/src/com/bytezone/diskbrowser/applefile/FileTypeDescriptorTable.java @@ -6,7 +6,9 @@ import java.util.List; import com.bytezone.diskbrowser.utilities.HexFormatter; import com.bytezone.diskbrowser.utilities.Utility; +// -----------------------------------------------------------------------------------// public class FileTypeDescriptorTable extends AbstractFile +// -----------------------------------------------------------------------------------// { int versionMajor; int versionMinor; @@ -18,7 +20,9 @@ public class FileTypeDescriptorTable extends AbstractFile private final List indexRecords = new ArrayList<> (); + // ---------------------------------------------------------------------------------// public FileTypeDescriptorTable (String name, byte[] buffer) + // ---------------------------------------------------------------------------------// { super (name, buffer); @@ -38,8 +42,10 @@ public class FileTypeDescriptorTable extends AbstractFile } } + // ---------------------------------------------------------------------------------// @Override public String getText () + // ---------------------------------------------------------------------------------// { StringBuilder text = new StringBuilder ("Name : " + name + "\n\n"); text.append ("File Type Descriptor Table\n\n"); @@ -62,7 +68,9 @@ public class FileTypeDescriptorTable extends AbstractFile return text.toString (); } + // ---------------------------------------------------------------------------------// class IndexRecord + // ---------------------------------------------------------------------------------// { int fileType; int auxType; diff --git a/src/com/bytezone/diskbrowser/applefile/IntegerBasicProgram.java b/src/com/bytezone/diskbrowser/applefile/IntegerBasicProgram.java index 7abc611..993b440 100755 --- a/src/com/bytezone/diskbrowser/applefile/IntegerBasicProgram.java +++ b/src/com/bytezone/diskbrowser/applefile/IntegerBasicProgram.java @@ -3,7 +3,9 @@ package com.bytezone.diskbrowser.applefile; import com.bytezone.diskbrowser.utilities.HexFormatter; import com.bytezone.diskbrowser.utilities.Utility; +// -----------------------------------------------------------------------------------// public class IntegerBasicProgram extends BasicProgram +// -----------------------------------------------------------------------------------// { private static String[] tokens = { "?", "?", "?", " : ", "?", "?", "?", "?", "?", "?", "?", "?", "CLR", "?", "?", @@ -19,13 +21,17 @@ public class IntegerBasicProgram extends BasicProgram "LIST ", ",", "LIST ", "POP ", "NODSP ", "NODSP ", "NOTRACE ", "DSP ", "DSP ", "TRACE ", "PR#", "IN#", }; + // ---------------------------------------------------------------------------------// public IntegerBasicProgram (String name, byte[] buffer) + // ---------------------------------------------------------------------------------// { super (name, buffer); } + // ---------------------------------------------------------------------------------// @Override public String getText () + // ---------------------------------------------------------------------------------// { StringBuilder pgm = new StringBuilder (); pgm.append ("Name : " + name + "\n"); @@ -77,7 +83,9 @@ public class IntegerBasicProgram extends BasicProgram return pgm.toString (); } + // ---------------------------------------------------------------------------------// private void appendAssembler (StringBuilder pgm, int ptr, int lineLength) + // ---------------------------------------------------------------------------------// { for (int i = ptr + 3; i < ptr + lineLength - 1; i++) { @@ -93,7 +101,9 @@ public class IntegerBasicProgram extends BasicProgram } } + // ---------------------------------------------------------------------------------// private boolean checkForAssembler () + // ---------------------------------------------------------------------------------// { int ptr = 0; @@ -117,7 +127,9 @@ public class IntegerBasicProgram extends BasicProgram return false; } + // ---------------------------------------------------------------------------------// private boolean checkForSCAssembler () + // ---------------------------------------------------------------------------------// { if (buffer.length == 0) { @@ -130,7 +142,9 @@ public class IntegerBasicProgram extends BasicProgram return buffer[lineLength - 1] == 0; } + // ---------------------------------------------------------------------------------// private void appendSCAssembler (StringBuilder text, int ptr) + // ---------------------------------------------------------------------------------// { int lineNumber = (buffer[ptr + 2] & 0xFF) * 256 + (buffer[ptr + 1] & 0xFF); text.append (String.format ("%4d: ", lineNumber)); @@ -156,7 +170,9 @@ public class IntegerBasicProgram extends BasicProgram } } + // ---------------------------------------------------------------------------------// private void appendInteger (StringBuilder text, int ptr, int lineLength) + // ---------------------------------------------------------------------------------// { int lineNumber = Utility.intValue (buffer[ptr + 1], buffer[ptr + 2]); @@ -208,8 +224,10 @@ public class IntegerBasicProgram extends BasicProgram } } + // ---------------------------------------------------------------------------------// @Override public String getHexDump () + // ---------------------------------------------------------------------------------// { if (false) return super.getHexDump (); @@ -247,6 +265,7 @@ public class IntegerBasicProgram extends BasicProgram return pgm.toString (); } + /* * To find integer basic in memory: * $CA $CB contain the starting address ($9464) diff --git a/src/com/bytezone/diskbrowser/applefile/MerlinSource.java b/src/com/bytezone/diskbrowser/applefile/MerlinSource.java index c222fe2..ddcb9d2 100644 --- a/src/com/bytezone/diskbrowser/applefile/MerlinSource.java +++ b/src/com/bytezone/diskbrowser/applefile/MerlinSource.java @@ -1,6 +1,8 @@ package com.bytezone.diskbrowser.applefile; +// -----------------------------------------------------------------------------------// public class MerlinSource extends AbstractFile +// -----------------------------------------------------------------------------------// { int ptr; private static int[] tabs = { 12, 19, 35 }; @@ -10,7 +12,9 @@ public class MerlinSource extends AbstractFile private boolean prodosFile; // Source : Prodos text file + // ---------------------------------------------------------------------------------// public MerlinSource (String name, byte[] buffer, int recordLength, int eof) + // ---------------------------------------------------------------------------------// { super (name, buffer); this.eof = eof; @@ -19,7 +23,9 @@ public class MerlinSource extends AbstractFile } // Source : Dos binary file + // ---------------------------------------------------------------------------------// public MerlinSource (String name, byte[] buffer, int loadAddress) + // ---------------------------------------------------------------------------------// { super (name, buffer); this.eof = 0; @@ -27,8 +33,10 @@ public class MerlinSource extends AbstractFile this.loadAddress = loadAddress; } + // ---------------------------------------------------------------------------------// @Override public String getText () + // ---------------------------------------------------------------------------------// { StringBuilder text = new StringBuilder (); @@ -53,7 +61,9 @@ public class MerlinSource extends AbstractFile return text.toString (); } + // ---------------------------------------------------------------------------------// private String getLine () + // ---------------------------------------------------------------------------------// { StringBuilder line = new StringBuilder (); boolean comment = false; @@ -85,7 +95,9 @@ public class MerlinSource extends AbstractFile return line.toString (); } + // ---------------------------------------------------------------------------------// private StringBuilder tab (StringBuilder text) + // ---------------------------------------------------------------------------------// { int nextTab = 0; for (int tab : tabs) diff --git a/src/com/bytezone/diskbrowser/applefile/Palette.java b/src/com/bytezone/diskbrowser/applefile/Palette.java index 23d6d6e..12545ad 100644 --- a/src/com/bytezone/diskbrowser/applefile/Palette.java +++ b/src/com/bytezone/diskbrowser/applefile/Palette.java @@ -1,6 +1,8 @@ package com.bytezone.diskbrowser.applefile; +// -----------------------------------------------------------------------------------// public class Palette +// -----------------------------------------------------------------------------------// { /*- * Michael Pohoreski - The Apple II Forever Anthology @@ -32,24 +34,32 @@ public class Palette private final String name; private final int[] colours; + // ---------------------------------------------------------------------------------// public Palette (String name, int[] colours) + // ---------------------------------------------------------------------------------// { this.name = name; this.colours = colours; } + // ---------------------------------------------------------------------------------// public String getName () + // ---------------------------------------------------------------------------------// { return name; } + // ---------------------------------------------------------------------------------// public int[] getColours () + // ---------------------------------------------------------------------------------// { return colours; } + // ---------------------------------------------------------------------------------// @Override public String toString () + // ---------------------------------------------------------------------------------// { return String.format ("Palette: %s", name); } diff --git a/src/com/bytezone/diskbrowser/applefile/PaletteFactory.java b/src/com/bytezone/diskbrowser/applefile/PaletteFactory.java index 13e494d..0672b49 100644 --- a/src/com/bytezone/diskbrowser/applefile/PaletteFactory.java +++ b/src/com/bytezone/diskbrowser/applefile/PaletteFactory.java @@ -3,7 +3,9 @@ package com.bytezone.diskbrowser.applefile; import java.util.ArrayList; import java.util.List; +// -----------------------------------------------------------------------------------// public class PaletteFactory +// -----------------------------------------------------------------------------------// { private final List palettes = new ArrayList<> (); private int currentPalette; @@ -13,7 +15,9 @@ public class PaletteFactory FORWARDS, BACKWARDS } + // ---------------------------------------------------------------------------------// public PaletteFactory () + // ---------------------------------------------------------------------------------// { palettes.add (// new Palette ("Virtual II", new int[] { 0x000000, // 0 black @@ -168,7 +172,9 @@ public class PaletteFactory })); } + // ---------------------------------------------------------------------------------// public Palette cyclePalette (CycleDirection direction) + // ---------------------------------------------------------------------------------// { switch (direction) { @@ -187,28 +193,38 @@ public class PaletteFactory return getCurrentPalette (); } + // ---------------------------------------------------------------------------------// public List getPalettes () + // ---------------------------------------------------------------------------------// { return palettes; } + // ---------------------------------------------------------------------------------// public Palette getCurrentPalette () + // ---------------------------------------------------------------------------------// { return palettes.get (currentPalette); } + // ---------------------------------------------------------------------------------// public int getCurrentPaletteIndex () + // ---------------------------------------------------------------------------------// { return currentPalette; } + // ---------------------------------------------------------------------------------// public void setCurrentPalette (int index) + // ---------------------------------------------------------------------------------// { assert index >= 0 && index < palettes.size (); currentPalette = index; } + // ---------------------------------------------------------------------------------// public void setCurrentPalette (Palette palette) + // ---------------------------------------------------------------------------------// { int count = 0; for (Palette p : palettes) @@ -222,12 +238,16 @@ public class PaletteFactory } } + // ---------------------------------------------------------------------------------// public Palette get (int index) + // ---------------------------------------------------------------------------------// { return palettes.get (index); } + // ---------------------------------------------------------------------------------// private int rgb (int red, int green, int blue) + // ---------------------------------------------------------------------------------// { return red << 16 | green << 8 | blue; }