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