PhysicalSpaceMonitor.java
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13: package xeij;
14:
15: import java.awt.*;
16: import java.awt.event.*;
17: import java.lang.*;
18: import javax.swing.*;
19:
20: public class PhysicalSpaceMonitor {
21:
22: public static JFrame paaFrame;
23: public static ScrollTextArea paaBoard;
24: public static JTextArea paaTextArea;
25:
26:
27:
28: public static void paaInit () {
29: paaFrame = null;
30: }
31:
32:
33: public static void paaStart () {
34: if (RestorableFrame.rfmGetOpened (Settings.SGS_PAA_FRAME_KEY)) {
35: paaOpen ();
36: }
37: }
38:
39:
40:
41:
42: public static void paaOpen () {
43: if (paaFrame == null) {
44: paaMake ();
45: }
46: paaUpdate ();
47: paaFrame.setVisible (true);
48: XEiJ.dbgVisibleMask |= XEiJ.DBG_PAA_VISIBLE_MASK;
49: }
50:
51:
52:
53: public static void paaMake () {
54:
55:
56: paaBoard = ComponentFactory.setPreferredSize (
57: ComponentFactory.setFont (new ScrollTextArea (), LnF.lnfMonospacedFont),
58: 550, 300);
59: paaBoard.setMargin (new Insets (2, 4, 2, 4));
60: paaBoard.setHighlightCursorOn (true);
61: paaTextArea = paaBoard.getTextArea ();
62: paaTextArea.setEditable (false);
63:
64:
65: ComponentFactory.addListener (
66: paaTextArea,
67: new MouseAdapter () {
68: @Override public void mousePressed (MouseEvent me) {
69: if (XEiJ.mpuTask == null && me.isPopupTrigger ()) {
70: XEiJ.dbgShowPopup (me, paaTextArea, false);
71: }
72: }
73: @Override public void mouseReleased (MouseEvent me) {
74: if (XEiJ.mpuTask == null && me.isPopupTrigger ()) {
75: XEiJ.dbgShowPopup (me, paaTextArea, false);
76: }
77: }
78: });
79:
80:
81: ActionListener listener = new ActionListener () {
82: @Override public void actionPerformed (ActionEvent ae) {
83: Object source = ae.getSource ();
84: switch (ae.getActionCommand ()) {
85: case "Update":
86: paaUpdate ();
87: break;
88: }
89: }
90: };
91:
92:
93: paaFrame = Multilingual.mlnTitle (
94: ComponentFactory.createRestorableSubFrame (
95: Settings.SGS_PAA_FRAME_KEY,
96: "Physical space monitor",
97: null,
98: ComponentFactory.createBorderPanel (
99: paaBoard,
100: ComponentFactory.createHorizontalBox (
101: Multilingual.mlnToolTipText (
102: ComponentFactory.createImageButton (
103: XEiJ.createImage (
104: 20, 14,
105: "11111111111111111111" +
106: "1..................1" +
107: "1.......1111.......1" +
108: "1......111111.1....1" +
109: "1.....11....111....1" +
110: "1....11.....111....1" +
111: "1....11....1111....1" +
112: "1....11............1" +
113: "1....11............1" +
114: "1.....11....11.....1" +
115: "1......111111......1" +
116: "1.......1111.......1" +
117: "1..................1" +
118: "11111111111111111111",
119: LnF.lnfRGB[0],
120: LnF.lnfRGB[12]),
121: "Update", listener),
122: "ja", "更新"),
123: Box.createHorizontalGlue ()
124: )
125: )
126: ),
127: "ja", "物理空間モニタ");
128: ComponentFactory.addListener (
129: paaFrame,
130: new WindowAdapter () {
131: @Override public void windowClosing (WindowEvent we) {
132: XEiJ.dbgVisibleMask &= ~XEiJ.DBG_PAA_VISIBLE_MASK;
133: }
134: });
135:
136: }
137:
138:
139:
140: public static void paaUpdate () {
141: StringBuilder sb = new StringBuilder ();
142: sb.append (Multilingual.mlnJapanese ?
143:
144: " 物理アドレス メモリマップトデバイス\n" :
145: "Physical address Memory mapped device\n");
146: int a0 = 0;
147: MemoryMappedDevice mmd0Super = MemoryMappedDevice.MMD_NUL;
148: MemoryMappedDevice mmd0User = MemoryMappedDevice.MMD_NUL;
149: int page = 0;
150: for (; page < XEiJ.BUS_PAGE_COUNT; page++) {
151: MemoryMappedDevice mmd1Super = XEiJ.busSuperMap[page];
152: MemoryMappedDevice mmd1User = XEiJ.busUserMap[page];
153: if (mmd0Super != mmd1Super || mmd0User != mmd1User) {
154: int a1 = page << XEiJ.BUS_PAGE_BITS;
155: if (mmd0Super != MemoryMappedDevice.MMD_NUL) {
156: XEiJ.fmtHex8 (XEiJ.fmtHex8 (sb, a0).append ('-'), a1 - 1).append (" ").append (mmd0Super.toString ());
157: if (mmd0User == MemoryMappedDevice.MMD_NUL) {
158: sb.append (Multilingual.mlnJapanese ? " [スーパーバイザ]" : " [Supervisor]");
159: }
160: sb.append ('\n');
161: }
162: a0 = a1;
163: mmd0Super = mmd1Super;
164: mmd0User = mmd1User;
165: }
166: }
167: if (mmd0Super != MemoryMappedDevice.MMD_NUL) {
168: XEiJ.fmtHex8 (XEiJ.fmtHex8 (sb, a0).append ('-'), 0 - 1).append (" ").append (mmd0Super.toString ());
169: if (mmd0User == MemoryMappedDevice.MMD_NUL) {
170: sb.append (Multilingual.mlnJapanese ? " [スーパーバイザ]" : " [Supervisor]");
171: }
172: sb.append ('\n');
173: }
174: paaTextArea.setText (sb.toString ());
175: paaTextArea.setCaretPosition (0);
176: }
177:
178: }
179:
180:
181: