

                 AVR ByteForth versie update 2.05


Een beetje geschiedenis

Er zijn talloze tussen versies geweest beginnend bij:
Vsn 0.13, 0.20, 0.21, 0.31, etc. de huidige versie is vsn 2.00.
AVR ByteForth voor de PC is inclusief simulator, alle opcodes lijken
te werken. Geef a.u.b. ontdekte fouten door. 

Vsn 2.00 het woord LEAVE is gedebugged, de speciaal geval optimizer
voor LSHIFT en RSHIFT is gedebugged. Er is een fout uit de speciaal geval
optimalisator van 2VARIABLES gehaald. Aan SFR's zijn ook de prefixen
PUSH en POP toegevoegd. Debugger ondersteuning voor KEY, EMIT, TYPE, CR,
FORGET en EXECUTE toegevoegd. 

Een array met CONSTANTS gemaakt, kan nu ook tijdens het assembleren 
toegepast worden. Hi-level interrupt support toegevoegd met PUSHALL POPALL 
en ;INT . De macros 0= = en <> zijn voor wat extra snelheid herschreven.

Een actieve reset in de ISP-programmer gebouwd, voor toepassing van de
EL-cheapo ISP-programmeer interface. Een vreemde stack bug in machinecode 
versie van de simulator is gedebugged, dit gaf rare fouten, ontdekt tijdens 
het gebruik van VARIABLES in de simulator.

De ISP-programmer is herzien, zodat nu ook de 90S8535, ATmega's en 90S1200
in principe allen correct behandeld worden. Een foutje in TARGET.FRT is
verbeterd, MAP is nu ook correct voor AVR's zonder RAM. 

ATtiny26 programeer-routine en NEEDS verbeterd, dongle test verfraaid
en IObit TO Flag optimizer aangebracht. Tenslotte ATtiny13 aangebracht,
helaas kan AVR ByteForth deze chip nog niet correct programmeren!

Het wordt uitgezocht en een update volgt zodra het probleem boven tafel is!


Voor versie 2.05

Het lijkt er op dat een stackbug de ATtiny13 en ATtiny26 programmeerroutine
het probleem is bij de ATtiny13. Zodra een verse ATtiny13 binnen is, kan de
gedebugde programmeerroutine getest worden.

Er zijn vier nieuwe chips aan versie 2.02 toegevoegd, de ATtiny2313,
de ATmega48, ATmega88 en ATmega168. De ATtiny2313 is de opvolger voor
de AT90S1200 en AT90S2313. De ATmega48, 88 en 168 zijn pincompatible
met de AT90S4433 en de ATmega8, Ze hebben resp. 4kB, 8kB of 16kB
Flash geheugen. Het spanningsbereik loopt van 1.8 V tot 5.5 V, het
stroomverbruik is slechts .3 mA bij 1.8 V en een klok van 1 MHz.
Tenslotte zijn er enkele kleine bugs uit de ISP-programmer gehaald.

- TARGET.FRT is aangepast en verbeterd.
- Systeemvlaggen voor AVR afhankelijk gedrag herschreven en aangepast
  op de verschillende AVR opcode sets.
- De illegale opcode controle in de assembler is geheel herschreven met 
  behulp van voorgaande systeemvlaggen.
- De 80386 assembler wordt nu na gebruik netjes verwijderd, dat scheelt
  ongeveer 13 kByte geheugenruimte.
- SFR is aangepast zodat ie nu ook voor extended-SFR's goed werkt, met
  een speciale aanpassing voor de ATmega64 die een afwijking heeft in
  de geheugenvolgorde van poort-F. I/O-poort controle voor de SETDIR en
  FROM prefix geheel herschreven.
- CONSTANT wordt nu bijna altijd van het correcte label voorzien tijdens
  het decompileren van sourcecode.
- SEE "ccc" decompileerd nu alle standaard datastructuren.



Voor PC's met 286 of 8086 cpu!

Voor gebruik op oude computers met een 8086 of 80286 processor zit
er nu een extra binary bij. De binary heet  AVRF86D.EXE  hernoem
deze file tot  AVRF.EXE en voeg de volgende regel aan AVRF.CFG toe:

    #20000 FUDGE !

De waarde #20000 is afhankelijk van de snelheid van je PC, hij wordt
gebruikt om het CHForth woord MS af te regelen. 
 

Wat informatie over ByteForth

De file TARGET.FRT moet na het selecteren van de doel (target) processor
geladen worden en bevat de labels in interruptvectoren alle ondersteunde
AVR processoren. Zie daarvoor de bijgevoegde voorbeelden. Er zijn nu
een stuk of twintig library files aangepast en/of getest voor AVR ByteForth.
Een voorbeeld:

    90S2313             ( Selecteer doel cpu )
    NEEDS TARGET.FRT    ( Laad de labels en interrupt vectoren )
    NEEDS RS232.FRT     ( Laad de RS232 bibliotheek file )
    : Jouwcode ;        ( Je eigen programma )
    :MAIN  
        SETUP-RS232     ( Je eigen opstart code )
        BEGIN  Jouwcode ( De applicatie in een lus )
        AGAIN 
        ;               ( Klaar )

    E P V               ( Erase, Programmeer en Verifieer de 90S2313 )


Belangrijke AVR ByteForth woorden:

IN      ( "ccc" -- )            Laad de file 'ccc' bij geen extensie
                                wordt .FRT als extensie gebruikt.
INCLUDE ( "ccc" -- )            Laad de file 'ccc'.
EDIT    ( "ccc" -- )            Edit de file 'ccc' met SZ.COM
WHAT                            Start de SZ editor op de laatste fout.
PROJECT ( "ccc" -- )            Start editor met een standaard kop erboven.
CD      ( "ccc" -- )            Zet directory naar het pad 'ccc'.
DIR     ( "ccc" -- )            Toon directory, selecteer 'ccc'.
NEEDS   ( "ccc" -- )            Laad de library file 'ccc'.
SEE     ( "ccc" -- )            Disassembleer het woord 'ccc'.
HELP    ( "ccc" -- )            Vraag hulp over het woord 'ccc'.
DUMP    ( ud1 ud2 -- )          Dump het AVR ByteForth geheugen vanaf dubbel
                                adres 'ud1' ter lengte van dubbel 'ud2' bytes.


De simulator besturing

ECHO-ON                         Druk opcodes af tijdens het uitvoeren.
ECHO-OFF                        Druk geen opcodes af.
HEXDUMP-ON                      Voeg hexdump toe voor opcodes.
HEXDUMP-OFF                     Laat hexdump weg voor opcodes.
STEP-ON                         Voer opcodes stap voor stap uit.
STEP-OFF                        Stap voor stap uitvoeren staat uit.
PORTS-ON                        Display interne registers tijdens uitvoeren.
PORTS-OFF                       Zet register display af.
SHORT                           Toon poort info voor de opcode op zelfde regel,
                                bruikbaar als uitvoer naar printer gaat.
LONG                            Toon poort info als een apart blok, goed
                                voor gebruik op een beeldscherm.
TRACER-ON                       Activeer bovenstaande tracer opties.
TRACER-OFF                      Deactiveer bovenstaande tracer opties.
BREAKPOINT                      Zet tracer aan op dit punt in de code.
RUNPOINT                        Zet tracer uit op dit punt in de code,
                                ga door met executeren van de code.
SET-BREAK                       Zet tracer aan op adres van de stack.
SET-RUN                         Zet tracer uit op adres van de stack.
BREAK-OFF                       Zet break en run punten uit (op nul).
.TRACER                         Toon instelling van de tracer.
.BREAKPOINTS                    Toon break- en run punten in de code.

WRITE       ( "ccc" -- )        Schrijf ByteForth binary naar schijf onder
                                de naam 'ccc'.
READ        ( "ccc" -- )        Lees binary 'ccc' van schijf naar de
                                ByteForth geheugen buffer.
WRITE-HEX   ( "ccc" -- )        Schrijf ByteForth binary naar schijf in het
                                Intel-Hex formaat met de naam 'ccc'.
READ-HEX    ( "ccc" -- )        Lees de Intel-Hex file 'ccc' van schijf naar
                                de ByteForth geheugen buffer.


Mogelijkheid voor tien 'break'punten.
Mogelijkheid voor tien 'run'punten.

De instelling van de tracer geschied geheel naar wens van de programmeur.
Basisinstellingen kunnen gewijzigd worden in de file AVRF.CFG
De simulator is altijd actief op de achtergrond. Zodra je een macro,
variable of colon-definitie uitvoert wordt de simulator aangeroepen.
Speel er mee dan ontdek je vanzelf de mogelijkheden. 


Over de hardware

AVR ByteForth op de PC gebruikt het STK200(+) bord als flash-programmer en
test/experimenteer bord, deze wordt aangesloten op een printerpoort.

Op dit moment hebben we ook een eigen interface, samen met een reeks printen.
Er zijn ondertussen printen voor de 90S8515 in PLCC behuizing an de 
90S2313, 90S4433, mega8 en tiny26 in DIL behuizing. Er zijn sinds kort ook 
prototype printen voor de mega8 en de mega16/32 in TQFP behuizing.


                     Groeten Willem O.
