diff --git a/SourceGen/MainController.cs b/SourceGen/MainController.cs
index b81f4e5..a93bcbb 100644
--- a/SourceGen/MainController.cs
+++ b/SourceGen/MainController.cs
@@ -632,19 +632,19 @@ namespace SourceGen {
} else {
sb.Append(Path.GetFileName(mProjectPathName));
}
-
- if (mProject.IsDirty) {
- sb.Append(" ");
- sb.Append(Res.Strings.TITLE_MODIFIED);
- }
-
if (mProject.IsReadOnly) {
sb.Append(" ");
sb.Append(Res.Strings.TITLE_READ_ONLY);
}
sb.Append(" - ");
}
+
sb.Append(Res.Strings.TITLE_BASE);
+
+ if (mProject != null && mProject.IsDirty) {
+ sb.Append(" - ");
+ sb.Append(Res.Strings.TITLE_MODIFIED);
+ }
mMainWin.Title = sb.ToString();
}
@@ -1642,7 +1642,7 @@ namespace SourceGen {
// Not allowed. The AddressMap will just put it back, which confuses
// the undo operation.
Debug.WriteLine("EditAddress: not allowed to remove address at offset +000000");
- } else if (attr.Address != dlg.Address) {
+ } else if (true || attr.Address != dlg.Address) {
Debug.WriteLine("EditAddress: changing addr at offset +" + offset.ToString("x6") +
" to " + dlg.Address);
@@ -2954,7 +2954,7 @@ namespace SourceGen {
}
///
- /// Handles the four Actions - edit hint commands.
+ /// Handles the four Actions > edit hint commands.
///
/// Type of hint to apply.
/// If set, only the first byte on each line is hinted.
diff --git a/SourceGen/RuntimeData/Apple/F8-ROM.sym65 b/SourceGen/RuntimeData/Apple/F8-ROM.sym65
index f01843e..f0ef403 100644
--- a/SourceGen/RuntimeData/Apple/F8-ROM.sym65
+++ b/SourceGen/RuntimeData/Apple/F8-ROM.sym65
@@ -30,6 +30,12 @@ MON_A1L @ $3C ;general purpose
MON_A1H @ $3D ;general purpose
MON_A2L @ $3E ;general purpose
MON_A2H @ $3F ;general purpose
+MON_A3L @ $40 ;general purpose
+MON_A3H @ $41 ;general purpose
+MON_A4L @ $42 ;general purpose
+MON_A4H @ $43 ;general purpose
+MON_A5L @ $44 ;general purpose
+MON_A5H @ $45 ;general purpose
MON_RNDL @ $4E ;low byte of KEYIN "random" value
MON_RNDH @ $4F ;high byte of KEYIN "random" value
@@ -105,8 +111,8 @@ MON_SCROLL @ $FC70 ;scroll up one line
MON_CLREOL @ $FC9C ;clear to end of line
MON_CLREOLZ @ $FC9E
MON_WAIT @ $FCA8 ;delay for (26 + 27*Acc + 5*(Acc*Acc))/2 cycles
-MON_NXTA4 @ $FCB4 ;increment A4
-MON_NXTA1 @ $FCBA ;increment A1
+MON_NXTA4 @ $FCB4 ;increment A4, fall through into NXTA1
+MON_NXTA1 @ $FCBA ;increment A1; set carry if A1 >= A2 before inc
MON_HEADR @ $FCC9 ;write cassette sync
MON_WRTAPE @ $FCE5 ;casssette write
MON_RD2BIT @ $FCFA ;cassette read
@@ -128,7 +134,7 @@ MON_COUT @ $FDED ;print Acc to output device
MON_COUT1 @ $FDF0
MON_COUTZ @ $FDF6
MON_IDROUTINE @ $FE1F
-MON_MOVE @ $FE2C ;memory move A1/A2 to A4
+MON_MOVE @ $FE2C ;move bytes from A1 to A4 until A1=A2
MON_LIST @ $FE5E ;disassemble 20 instructions (not on GS)
MON_SETINV @ $FE80 ;set video mode to inverse
MON_SETNORM @ $FE84 ;set video mode to normal
diff --git a/SourceGen/RuntimeData/Apple/ProDOS8.sym65 b/SourceGen/RuntimeData/Apple/ProDOS8.sym65
index 9a44240..fb45c17 100644
--- a/SourceGen/RuntimeData/Apple/ProDOS8.sym65
+++ b/SourceGen/RuntimeData/Apple/ProDOS8.sym65
@@ -44,6 +44,40 @@ P8_GET_BUF = $D3
*TAG
+;
+; ProDOS 8 MLI function return codes.
+;
+P8E_NO_ERR = $00 ;No error (call succeeded)
+P8E_BAD_SC_NUM = $01 ;Bad system call number
+P8E_BAD_SC_PCOUNT = $04 ;Bad system call parameter count
+P8E_INT_TBL_FULL = $25 ;Interrupt table full
+P8E_IO_ERR = $27 ;I/O error
+P8E_NO_DEV_CONN = $28 ;No device connected
+P8E_WRITE_PROT = $2B ;Disk write protected
+P8E_VOL_SWITCHED = $2E ;Volume switched
+P8E_INVALID_PATH = $40 ;Invalid pathname syntax
+P8E_MAX_FILES_OPEN = $42 ;Too many files open
+P8E_INVALID_REFNUM = $43 ;Invalid reference number
+P8E_DIR_NOT_FOUND = $44 ;Directory not found
+P8E_VOL_NOT_FOUND = $45 ;Volume not found
+P8E_FILE_NOT_FOUND = $46 ;File not found
+P8E_DUP_FILENAME = $47 ;Duplicate filename
+P8E_VOL_FULL = $48 ;Volume full
+P8E_VOL_DIR_FULL = $49 ;Volume directory full
+P8E_INCOMPAT_FORMAT = $4A ;Incompatible file format / ProDOS version
+P8E_UNSUP_STORAGE = $4B ;Unsupported storage_type
+P8E_EOF = $4C ;End of file encountered
+P8E_INVALID_POSN = $4D ;Position out of range
+P8E_INVALID_ACCESS = $4E ;File access error
+P8E_FILE_OPEN = $50 ;File is open
+P8E_DIR_DAMAGED = $51 ;Directory structure damaged
+P8E_NOT_PRODOS = $52 ;Not a ProDOS volume
+P8E_INVALID_PARAM = $53 ;Invalid system call parameter
+P8E_VCB_FULL = $55 ;Volume Control Block table full
+P8E_BAD_BUFFER = $56 ;Bad buffer address
+P8E_DUP_VOLUME = $57 ;Duplicate volume
+P8E_FILE_DAMAGED = $5A ;File structure damaged (bad volume bitmap?)
+
;
; System global page. Labels and comments are from the ProDOS 8