| 113 | } |
| 114 | |
| 115 | func (m *Memory64K) String() string { |
| 116 | var row int = m.rowDecoder.Index() |
| 117 | var col int = m.colDecoder.Index() |
| 118 | |
| 119 | var builder strings.Builder |
| 120 | builder.WriteString(fmt.Sprint("Memory\n--------------------------------------\n")) |
| 121 | builder.WriteString(fmt.Sprintf("RD: %d\tCD: %d\tS: %v\tE: %v\t%s\n", row, col, m.set.Get(), m.enable.Get(), m.AddressRegister.String())) |
| 122 | |
| 123 | for i := 0; i < 256; i++ { |
| 124 | for j := 0; j < 256; j++ { |
| 125 | val := m.data[i][j].value.Value() |
| 126 | if val <= 0x000F { |
| 127 | builder.WriteString(fmt.Sprintf("0x000%X\t", val)) |
| 128 | } else if val <= 0x00FF { |
| 129 | builder.WriteString(fmt.Sprintf("0x00%X\t", val)) |
| 130 | } else if val <= 0x0FFF { |
| 131 | builder.WriteString(fmt.Sprintf("0x0%X\t", val)) |
| 132 | } else { |
| 133 | builder.WriteString(fmt.Sprintf("0x%X\t", val)) |
| 134 | } |
| 135 | } |
| 136 | builder.WriteString(fmt.Sprint("\n")) |
| 137 | |
| 138 | } |
| 139 | return builder.String() |
| 140 | |
| 141 | } |