Working

Most recent (beta) first

Incoming

Vote for expected features [https://www.cpcwiki.eu/forum/index.php?topic=18534]

Download last working FF (ROM Files) orgams-230517-FF-betaJ.zip

Download last working FF with Z80.O (doc flags and timing)

orgams-230517-FF-betaJ.zip

Status: Very stable. There still might be some assert triggered from time to time (Orgams auto-detection of something gone wrong, leading to a breakpoint).
That's extremely rare though: I cannot even reproduce! If it jumps into the debugger, please send me a screenshot.

Changes since betaI

  • Trace: Handle CONTROL-Fx. For now line source search is only done in selected tab. As a workaround, you can switch tab from trace rather than having to go back to editor.
  • Faster source switch. Implies:
        • Faster CONTROL-fx in editor.
        • Faster assembling when using IMPORT.
  • Ed: Delimiter between "Goto Line" and actual line number.
  • Ed/Status: No spurious space for inverse-video.
  • Fix #15f [Trace] Visu crash when macro invoked with local label.
  • Fix #132 [Import/UI] No proper scrolling when more than 7 imports.
  • Fix #131 [Import/UI] Orgams and Amsdos message mixed-up in case of error.
  • Fix #142 [Debuggueur] CONTROL-B in the debuggeur make it crash.
  • Fix #A8 [Assembler] Two ENT directives should raise error.
  • Fix assemblage time computation when > 16 seconds (well the real bug is that it could take more than 16s. See #133)

Detailled status.

tl;dr:

  • IMPORT: Battled tested, but still a lot of limitations and rough corners.
  • Auto-completion slightly rough, but quite usable and handy as-is.

IMPORT directive

/!\ Still restricted (known issues):

  • Cannot access macro
  • Error messages not polished (e.g. 'double defined' rather than 'Ambiguous: label exists in two distinct imports'.
  • In this case (reference to a label that exists in 2 imports): cannot qualify yet which imported source to use.
  • Source visu in trace won't find locations in imported sources.
  • Unclear semantic when dereferencing a label existing both in import file and later in source. I.e. forward reference when defining another label. (or just unclear error message?).
  • Bug #145 [Editor] Imported files -> wrong pre-filled file name.
  • Bug #13e [Import] Filename comparison is too strict (not Amsdos compatible).
  • Bug #13d [Editor] Tab in invalid state after import not found.
  • Bug #133 [Import] Far too slow when imported file has many labels.

Auto-completion

There are still rough edges, due to my (Gonzague) incomplete integration:

  • Has to explicitly press TAB.
  • Not context sensitive (todo #107)
  • Ghost labels are shown (bug #129). Quite confusing! Workaround : export + import.
  • #12C [Editor/Auto-completion] Doesn't respect "."
  • A lot of other subtil ergonomics bugs.

Even in this state, that's very handy. Thanks Toms!

To select a suggestion, you have to:

  • Start typing your label (1 letter is enough)
  • Press TAB (several times if the first one is not the right —you can also continue typing to specify the prefix)
  • Press cursor right to validate.

That's one keystroke too much! Ideally, suggestions would appear automatically. This is not yet done, for two bad reasons:

  • Since todo #107 is not done, that might be too intrusive /
  • With AST sources > 1000 labels, that might slow down the edition.

Change since lastest release (EE).

#### New features ####

--- Editor ---

 * Label auto-completion. (Activated with TAB, Validated with CURSOR RIGHT).
 * CONTROL-| to invoke RSX from editor, with history (cursor up and down).
 * CONTROL-I: show progress (number of imported lines so far, rounded to multiple of 16).
 * Path/filename maximum length increased to 72.
 * Display free memory.
 * Display current tab number (f1..f9).
 * Display current PATH (if Unidos or |PATH available).
 * Clean-up status bar: don't print "Orgams" (you should know), no debug info.
 * If you select the source (CONTROL-fx) you are already in, screen won't be re-displayed. That's cleaner and more indicative.
 * Pre-selected fields (CONTROL-L, O, S, …) are now in inverse-video, showing that typing a new char will overwrite the whole field. Use cursor (or DEL) to un-select and further edit.
 * Can be invoked by |OE RSX
 * Binary numbers displayed with leading 0s (8 or 16 digits) for alignment.

--- Assembler ---

 * Local labels (in macro, repetitions blocs, or after regular labels). See doc. http://orgams.wikidot.com/userguide#toc39
   * Warning! In editor, CONTROL-ENTER with local labels might go to the wrong instance. Bug #10f. 
 * Don't re-assemble if source hasn't changed (speed-up)
 * IMPORT Directive, with following restrictions:
   * Cannot access macro
   * Error messages not polished (e.g. 'double defined' rather than 'Ambiguous: label exists in two distinct imports'.
   * In this case (reference to a label that exists in 2 imports): cannot qualify yet which imported source to use.
   * Source visu in trace won't find locations in imported sources.
   * Unclear semantic when **dereferencing** a label existing both in import file and **later** in source. I.e. forward reference when defining another label. (or just unclear error message?).
   * Bug #145 [Editor] Imported files -> wrong pre-filled file name.
   * Bug #13e [Import] Filename comparison is too strict (not Amsdos compatible).
   * Bug #13d [Editor] Tab in invalid state after import not found.
   * Bug #133 [Import] Far too slow when imported file has many labels.
 * New directive: STR "string"  ; Equivalent to: BYTE "string" or &80
 * `DEFM` recognised as `BYTE` alias, to ease import from MaxaM.
 * HX, XH recognised as aliases for IXH.
 * Similarly for LX, XL, HY, YH, LY, YL.
 * `ex de,hl` recognised by entering any of:
 ex d
 ex de
 ex de,
 ex de,h
 ex de,hl
 exde,
 exde,h
 exde,hl
 ex h
 ex hl
 ex hl,
 ex hl,d
 ex hl,de

--- Monogams ---

 * Can pass parameters to RSX.
 * Command ed n to enter directly tab 'n' in editor.
 * Command type"filename to print a text file. Super fast but quite rough:
    + #110 Type command doesn't handle line bigger than 80 characters.
 * Can be invoked by |OM RSX

--- Trace ---

* Handle CONTROL-f1 .. f9. For now line source search is only done in selected tab. As a workaround, you can switch tab from trace rather than having to go back to editor.

--- General --- 

 * Orgams can be deactivated by |DEVTOOLS.OFF

#### Changes ####

 * Internal: more sanity checks / assertions.

--- Debugger ---

 * F' and BC' have sane default value at first Orgams invocation (Was TODO #f4)
    * Allow to trace a firmware routine after cold boot or |ORGAMS.

#### Bug fix ####

--- Editor ---

* #15B When loading a corrupted file, "he" written instead of "checksum error"
* #11a 'exa' label isn't expended to 'ex af,af'.
  You can still use `ex a` as a shortcut for `ex af,af'`
* #11v CONTROL-I properly returns even when EOF (&1A) absent.

--- Assembler ---

* #14c LOAD"myfile" incomplete when overlapping &8000.
* #127 Wrong range (hence wrong binary size) when starting/finishing by SKYP.
* #126 Wrong MOD calculation with negative numbers and modulo >= &8000.
* #125 Memory full not reported when if occurs in a middle of a FILL.
* #2e Sous bug : Numéro lignes erratiques quand erreur fatale.

--- Monogams ---

* #159 Unsafe return from RSXs using memory
* #158 Source not flagged as modified with 'hh' command.
* #157 Garbage line after firmware scroll.
* #45 Display "he" for undefined value (when not yet assembled).

--- General --- 

 * z80 v1.0.5: Fix timing of 'loop with cpi' tip.

#### Regressions ####

--- Assembler ---

 * Maximum level of nested scope goes to ~8 (rather than ~20). 
    Happen with recursive MACROs (e.g. it makes one GCD exemple fail). 
    Tell me if that bothers you.

--- General --- 
 * Use more memory (cache for assembled code).
z80.jpg

Obsolete

Bugged versions:
Obsolete:
Obsolete:
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License