16.2.1. Část code 1

Analyzovaný kód je rozdělený do kousků/úseků podle podprogramů či slov. Kód slov se pak nachází v části Slovník ANSI forthu, a zde jsou uvedeny jen počáteční a koncová adresa a odkaz na slovo do části Slovník ANSI forthu.

Quartus Forth je napsán v assembleru PILA a začátek je tedy Startup kód.

Příklad 16.2. Startovací kód, začátek programu [W:80]

Začátek PRC souboru je standardní kód tak jak je doporučený v assembleru PILA. Je to kód přímo ze souboru *FIXME:jméno souboru. Dvojí adresa na začátku řádku je proto, že první adresa je adresa v PRC souboru a druhá adresa pak adresa na které se kód nachází z hlediska procesoru v době běhu programu.

;ADR  WORDS           LABEL        MNEMO   ARGS
;---  ---------  -----------  ------- --------------------------
                              ; Analýza Quartus Forth verze 1.2.1U
0000:                         .ORG    0         ; PRC začíná na adrese 0000.
                 __Startup__: PROC __Startup__()
                              LOCAL pappi.L
                              LOCAL prevGlobals.L
                              LOCAL globalsPtr.L
0000: 4E56 FFF4                 = LINK    FP, #-12   12 slabik pro lokální proměnné;
                              SysAppStartup(&pappi(A6), &prevGlobals(A6), &globalsPtr(a6))
0004: 486E FFF4                 = PEA     globalsPtr(FP)
0008: 486E FFF8                 = PEA     prevGlobals(FP)
000C: 486E FFFC                 = PEA     papi(FP)
0010: 4E4F A08F                 = SYSTRAP SysAppStartup
0014: 4FEF 000C               LEA     12(RP), RP    ; Odstranění parametrů ze zásobníku
0018: 4A40                    TST.W   D0                ; Test na výsledek SysAppStartup
001A: 670E                 .--BEQ.S   _SU1              ; +14=+$0E →002A
                           |
                           |  ; V případě neúspěchu pípneme a ukončíme program
                           |  SndPlaySystemSound(#sndError.B)
001C: 1F3C 0003            |    = MOVE.B  #3, -(RP)
0020: 4E4F A234            |    = SYSTRAP SndPlaySystemSound
0024: 548F                 |    = ADDQ.L  #2, RP
0026: 70FF                 |  MOVEQ   #-1, D0
0028: 602A               .-|--BRA.S   _SUExit           ; Konec
                         | |
                         | |  ; Příprava argumentů a volání procedury PilotMain
002A: 206E FFFC  _SU1:   | `->MOVE.L  pappi(FP), A0
                         |    PilotMain(SysAppInfoType.cmd(A0).W,
                         |              SysAppInfoType.cmdPBP(A0).L,
                         |              SysAppInfoType.launchFlags(A0).W)
002E: 3F28 0006          |      = MOVE    6(A0), -(RP)
0032: 2F28 0002          |      = MOVE.L  2(A0), -(RP)
0036: 3F10               |      = MOVE    (A0), -(RP)
0038: 4EBA 001E          |      = JSR     PilotMain
003C: 508F               |      = ADDQ.L  #8, RP
                         |    SysAppExit(pappi(A6).L, prefGlobal(A6).L, globalsPtr(A6).L)
003E: 2F2E FFF4          |      = MOVE.L  globalsPtr(FP), -(RP)
0042: 2F2E FFF8          |      = MOVE.L  prefGlobal(FP), -(RP)
0046: 2F2E FFFC          |      = MOVE.L  pappi(FP), -(RP)
004A: 4E4F A090          |      = SYSTRAP SysAppExit
004E: 4FEF 000C          |      = LEA     12(RP), RP
0052: 7000               |    MOVEQ.W #0, D0
0054:            _SUExit:`--->ENDPROC                   ; Return to PalmOS
0054: 4E5E                      = UNLK    FP
0056: 4E75                      = RTS

Příklad 16.3. Funkce PilotMain *:[95]

Toto je vlastní funkce main, přesněji PilotMain která se volá ze startup kódu uvedeného výše.

                                 ; PROC PilotMain (cmd.W, cmdPBP.L, launchFlags.W)
0058= 805A: 4E56 0000            PilotMain:   LINK    FP, #0            ;Rámec bez lokálních proměnných
005C= 805E: 4A6E 0008                         TST.W   8(FP)             ;ARG.
0060= 8062: 6638                           .--BNE     PmReturn          ; $+56 = 009A
0062= 8064: 48E7 3F7E                      |  MOVEM.L D2-D7/A1-A6, -(RP) ; Úschova registrů s použítím RP=A7
                                           |  ; ?Žádost o paměť?
0066= 8068: 200F                           |  MOVE.L  RP, D0            ; Uložení ukazatele zásobníku
0068= 806A: 2B40 000E                      |  MOVE.L  D0, 14(DS)        ;+
                                           |  MemHandleNew(#2048L)
006C= 806E: 2F3C 0000 0800                 |      MOVE.L  #2048, -(RP)
0072= 8074: 4E4F A01E                      |      SYSTRAP MemHandleNew
0076= 8078: 588F                           |      ADDQ.L  #4, RP
                                           |  MemHandleLock(A0.L)
0078= 807A: 2F08                           |      MOVE.L  A0, -(RP)
007A= 807C: 4E4F A021                      |      SYSTRAP MemHandleLock
007E= 8080: 588F                           |      ADDQ.L  #4, RP
0080= 8082: 49E8 07FE                      |  LEA     2046(A0), SP      ;Nastavení datového zásobníku
0084= 8086: 2B4C 0012                      |  MOVE.L  SP, 18(DS)        ;Uložení SP do datového segmentu
	                                      ; Mapování segmentu kódu
0088= 808A: 45FA 7F74                      |  LEA     $7FFE(PC), CS     ;Spočte adresu segmentu kódu a uloží ji do CS
008C= 808E: 2B4A 0026                      |  MOVE.L  CS, 38(DS)        ;Uložení CS do datového segmentu
0090= 8092: 610C                           |  BSR.S   INIT              ;=$80A0
0092= 8094: 2E6D 000E                      |  MOVE.L  14(DS), RP
0096= 8098: 4CDF 7EFC                      |  MOVEM.L (RP)+, D2-D7/A1-A6 ;Load saved registers from (RP)
009A= 809C: 4E5E                 PmReturn: `->UNLK    FP                ;Remove stack frame
009C= 809E: 4E75                              RTS

Příklad 16.4. Kód 009E - 00DC *:[80]

                                 ; Inicializece volaná z PilotMain
009E= 80A0:                      INIT:        FplInit()
009E= 80A0: 4E4F A0DF                           = SYSTRAP FplInit
00A2= 80A4: 3E3C 0212                         MOVE    #530, TOS
00A6= 80A8: 0647 0100                         ADDI    #256, TOS
00AA= 80AC: 3B47 00AE                         MOVE    TOS, 174(DS)      ;
00AE= 80B0: 4EAA 8142                         JSR     $8142(CS)         ; -32446(A2)
00B2= 80B4: 3E1C                              MOVE    (SP)+, TOS        ;= DROP
00B4= 80B6: 4EAA 8AAA                         JSR     $8AAA(CS)        ;= MainForm
00B8= 80BA: 4E4F A296                         SYSTRAP GetCharCaselessVal...
00BC= 80BE: 2B48 0182                         MOVE.L  A0, 386(DS)
00C0= 80C2: 4E4F A294                         SYSTRAP GetCharSortValue
00C4= 80C6: 2B48 0186                         MOVE.L  A0, 390(DS)
00C8= 80CA: 42AD 01C8                         CLR.L   456(DS)
00CC= 80CE: 4EAA C0C6                         JSR     -16186(CS)
00D0= 80D2: 4E75                              RTS

00D2= 80D4: 3907                 LBL_5:       MOVE    TOS, -(SP)        ;= 3
00D4= 80D6: 7E03                              MOVEQ   #3, TOS           ;+
00D6= 80D8: 4E75                              RTS

00D8= 80DA: 6100 FFF8            LBL_6:       BSR     LBL_5             ; $-8 = 00D2
	  00DC= 80DE: 4E75                              RTS

Následující tabulka je seznam slov ze slovníku. Příslušný kód se nachází u daného slova v části Slovník ANSI forthu. Zde jsou jen uvedeny adresy začátku a konce kódu, jakožto i startovací adresa. Adresy jsou uvedeny nejdříve ve vztahu k PRC souboru a poté kde se skutečně nachází v paměti bráno jako posunutí (offset) k registru A2 (= CS). Adresy jsou rovněž brány za celé slova (16 bitů) nikilov za slabiky (8 bitů). Odtud 00DE-00E6 a 00E8-010E

Tabulka 16.4. Slovník *:[1:1:1:1:1:3]

začátekkoneczačátekkonecstartslovo
00DE00E680E080E880E8noop
00E8010E80EA811080F2(bye)
0110013E811281408118BYE

Příklad 16.5. Kód následující po BYE, je volán z inicializace instrukcí JSR na adrese 00AE (80B0) *:[72]

                                 ; ???
0140:                      ________:    MOVEQ   #0, D0
0142:                                   MOVE    TOS, D0
0144:                                   MOVE    #-1, TOS
0148:                                   ADDI    #530, D0
                                        MemHandleNew(D0)
014C:                                     = MOVE.L  D0, -(RP)
014E:                                       SYSTRAP MemHandleNew
0152:                                       ADDQ.L  #4, RP          ;= UNLOOP
0154:                                   MOVE.L  A0, A3
0156:                                   MOVE.L  A0, 176(DS)
015A:                                   CMPA.L  #0, A0
0160:                                .--BNE.S   $8168
0162:                                |  CLR.W   TOS
0164:                                |  RTS                        ;= EXIT
0166:                                `->MemHandleLock(A3)
0166:                                       MOVE.L  A3, -(RP)
0168:                                       SYSTRAP MemHandleLock
016C:                                       ADDQ.L  #4, RP
016E:                                   MOVE.L  A0, A3
0170:                                   MemMove(DS, A3, #192)
0170:                                     = MOVE.L  #192, -(RP)
0176:                                       MOVE.L  DS, -(RP)
0178:                                       MOVE.L  A3, -(RP)
017A:                                       SYSTRAP MemMove dstP, sP, numBytes
017E:                                       LEA     12(RP), RP
0182:                                   MOVE.L  A3, DS
0184:                                   MOVE.W  #532, 420(DS)
018A:                                   RTS

Tabulka 16.5. Pokračování předešlé tabulky Slovník *:[1:1:1:1:1:3]

začátekkoneczačátekkonecstartslovo
018C019E818E81A08198EXECUTE
01A001AE81A281B081AASTATE
01B001C681B281C881BCSOURCE
01C801D481CA81D681D0>IN
01D601E481D881E681E0HERE
01E601FC81E881FE81F8window-bounds
01FE020C8200820E8208event
020E021C8210821E8218BASE
021E023082208232822Ccurrentx
02320244823482468240currenty
02460256824882588254SOURCE-ID
025A0270825C8272826Ceventhandler
02720286827482888282BlankFormID
0288029E828A82A0829ATitledFormID
02A002B482A282B682B0MainFormID
02B602CC82B882CE82C0DEPTH
02CE02DC82D082DE82D8SWAP
02DE02F882E082FA82E82SWAP
02FA030C82FC830E8302ROT
________BE30____BE36.S
________969E96AA96A2:

Příklad 16.6. Konec části code 1

362A= B62C: B604                              DW      $B604
362C= B62E: 0554 4852 4F57                    DB      5, "THROW"
3632= B634: 4A47                 "THROW":     TST.W   D7
3634= B636: 6606                            .-BNE     $+6
3636= B638:                                 | MOVE    (A4)+, D7
3638= B63A:                                 | BRA     $+44  ;=3666
363C= B63E:                                 `>TST.L   158(A5)
3640= B642:                                   BEQ     $+16  ;=3652
3642= B644:                                   MOVE.L  158(A5), A7
3646= B648:                                   MOVE.L  (A7)+, 158(A5)
364A= B64C:                                   MOVE    (A7)+, 372(A5)
364E= B650:                                   MOVE.L  (A7)+, A4
3650= B652:                                   BRA     $+20  ;=3666
3652= B654:                                  >CMP     #-257, D7
3656= B658:                                   BNE     $+4  ;=365C
3658= B65A:                                   JSR     -32526(A2)        ;= (bye)
365C= B65E:                                   TST     12(A5)
3660= B662:                                   BEQ     $+6  ;=3668
3662= B664:                                   JSR     -32526(A2)        ;= (bye)
3666= B668: 4E75                              RTS                          ;= EXIT
3668= B66A: BE7C FFFE                        >CMP     #-2, D7
366C= B66E: 6616                              BNE     $+22  ;=3684
366E= B670:                                   MOVE    (A4)+, D7
3670= B672:                                   MOVE    D7, -(A4)
3672= B674:                                   MOVE    484(A5), D7
3676= B678:                                   MOVE    D7, -(A4)
3678= B67A:                                   MOVE    482(A5), D7
367C= B67E:                                   JSR     -30644(A2)        ;=884C
3680= B682:                                   JSR     -18966(A2)
3684= B686:                                   CMP     #-1, D7
3688= B68A:                                 .-BNE     $+4  ;=368E
368A= B68C:                                 | JSR     -18966(A2)
368E= B690:                                 `>JSR     -30736(A2)
3692= B694:                                   CMP     #-259, D7
3696= B698:                                   BLT     $+144  ;=3728
369A= B69C:                                   CMP     #-58, D7
369E= B6A0:                                   BGE     $+8  ;=36A8
36A0=                                         CMP     #-256, D7
36A4=                                         BGT     $+130  ;=3728
36A8=                                         CMP     #0, D7
36AC=                                         BGE     $+122  ;=3728
36B0=                                         MOVE    #1, -(A7)
36B4=                                         MOVE.L  #1953002103, -(A7)
36BA=                                         SYSTRAP DmGetResource
36BE=                                         ADDQ.L  #6, A7
36C0=                                         CMPA.L  #0, A0
36C6=                                         BEQ     $+96  ;=3728
36C8=                                         MOVE.L  A0, -(A7)
36CA=                                         CMP     #-1, D7
36CE=                                         BEQ     $+10  ;=36DA
36D0=                                         CMP     #-2, D7
36D4=                                         BEQ     $+4   ;=36DA
36D6=                                         JSR     -20764(A2)
36DA=                                        >MOVE    D7, -(A4)
36DC=                                         MOVEQ   #63, D7
36DE=                                         JSR     -30536(A2)
36E2=                                         JSR     -30512(A2)
36E6=                                         MOVE.L  (A7)+, A3
36E8=                                         MOVE.L  A3, -(A7)
36EA=                                         SYSTRAP MemHandleLock
36EE=                                         ADDQ.L  #4, A7
36F0=                                         JSR     -31508(A2)
36F4=                                         CMP     #58, D7
36F8=                                         BLE     $+4  ;=36FE
36FA=                                         ADDI    #-198, D7
36FE=                                         ASL     1, D7
3700=                                         MOVE    0(A0,D7), D1
3704=                                         LEA     0(A0,D1), A6
3708=                                         MOVE.L  A6, -(A7)
370A=                                         SYSTRAP StrLen
37E0=                                         ADDQ.L  #4, A7
3710=                                         MOVE.L  A6, A0
3712=                                         JSR     -30674(A2)
3716=                                         MOVE.L  A3, -(A7)
3718=                                         SYSTRAP MemHandleUnlock
371C=                                         ADDQ.L  #4, A7
371E=                                         MOVE.L  A3, -(A7)
3720=                                         SYSTRAP DmReleaseResource
3724=                                         ADDQ.L  #4, A7
3726=                                         BRA     $+76  ;=3774
3728=                                         MOVE    #10, 376(A5)
372E=                                         MOVE    D7, -(A7)
3730=                                         JSR     -31508(A2)
3734=                                         JSR     -31640(A2)
3738=                                         JSR     -25178(A2)
373C=                                         JSR     -31640(A2)
3740=                                         JSR     -25276(A2)
3744=                                         JSR     -25164(A2)
3748=                                         MOVE    (A7)+, D0
374A=                                         MOVE    D7, -(A4)
374C=                                         MOVE    D0, D7
374E=                                         JSR     -25252(A2)
3752=                                         JSR     -25198(A2)
3756=                                         MOVE    (A4)+, D7
3758=                                         MOVE    D7, D0
375A=                                         MOVE    (A4)+, D7
375C=                                         LEA     0(A5,D0), A0
3760=                                         MOVE.L  A0, -(A7)
3762=                                         MOVE.L  A0, -(A7)
3764=                                         MOVE.L  A0, -(A7)
3766=                                         MOVE    #1005, -(A7)
376A=                                         SYSTRAP FrmCustomAlert
376E=                                         LEA     14(A7), A7
3772=                                       .-BRA     $+4  ;=3778
3774=                                       | JSR     -29164(A2)
3778=                                       `>JSR     -18966(A2)
377C=                                         RTS


377E= B780: B62C                              DW      $B62C
3780= B782: 0541 424F 5054                    DB      5, "ABORT"
3786= B788: 3907                 "ABORT"      MOVE    D7, -(A4)
3788= B78A:                                   MOVE    #-1, D7
378C=                                         JSR     -18892(A2)
3790= B792:                                   RTS                       ;= EXIT

3792=                                         MOVE    D7, 482(A5)
3796=                                         MOVE    (A4), 484(A5)
379A=                                         MOVE.L  (A4)+, D7
379C=                                         MOVE    D7, -(A4)
379E=                                         MOVEQ   #-2, D7
37A0=                                         JSR     -18892(A2)
37A4=                                         RTS

37A6= B7A8: B780                              DW      $B780
37A8= B7AA: 4641 424F 5254 2200               DB      6, 'ABORT"', 0
37B0= B7B2: 4EAA BC4A            ABORT"       JSR     -17334(A2)        ;= IF
37B4= B7B6: 4EAA 9A30                         JSR     -26064(A2)        ;= S"
37B8= B7BA:                                   MOVE    D7, -(A4)         ;= DUP
37BA= B7BC:                                   MOVE    #-18540, D7       
37BE=                                         JSR     -26712(A2)        ;= COMPILE,
37C2=                                         JSR     -17298(A2)        ;= THEN
37C6=                                         RTS                       ;= EXIT

.
.
.


400A= C00C: BFF6                              DW      $BFF6
400C= C00E: 4728 666C 6F61 7429               DB      $40+7, "(float)"
4014= C016: 3F2D 0178            "(float)"    MOVE    376(A5), -(A7)
4018=                                         MOVE    #10, 376(A5)
401E=                                         JSR     -20646(A2)        ;= parse-word
4022=                                         JSR     -22004(A2)        ;= >FLOAT
4026=                                         MOVE    D7, D0
4028=                                         MOVE    (A4)+, D7         ;= DROP
402A=                                         TST     D0
402C=                                       .-BNE     $+10  ;= 4038
402E=                                       | MOVE    D7, -(A4)         ;= DUP
4030=                                       | MOVE    #-46, D7
4034=                                       | JSR     -18892(A2)        ;= THROW
4038=                                       `>CMPI    #0,374(A5)
403E=                                       .-BEQ     $+4  ;=4044
4040=                                       | JSR     -26660(A2)        ;= LITERAL
4044=                                       `>MOVE    (A7)+, 376(A5)
4048=                                         RTS                       ;= EXIT


                                 ; Následující slova slouží pro generování nového PRC souboru
                                 ; a fungují jen v registrované verzi.

404A= C04C: C00C                              DW      $C00C
404C= C04E: 1067 656E 6572 6174               DB      16, "generate-symbols", 0
4054= C056: 652D 7379 6D62 6F6C 7300
405E= C060:                      "generate-symbols":
405E= C060: 600A                              BRA     $+10  ;=406A

                                 ; : MakePRC -259 THROW ;
4060= C062: C04C                              DW      $C04C
4062= C064: 074D 616B 6560 5243               DB      7, "MakePRC"
406A= C06C: 3907                 "MakePRC":  >MOVE    D7, -(A4)         ;=
406C= C06E: 3E3C FEFD                         MOVE    #-259, D7         ;  -259
4070= C072: 4EAA B634                         JSR     -18892(A2)        ;= THROW


4074= C076: C062                              DW      $C062
4076= C078: 0744 566C 5273 7263               DB      7, DelRsrc
407E= C080: 60EA                              BRA     $-22  ;=406A


4080= C082: C076                              DW      $C076
4084= C086: 074E 5677 5273 7263               DB      7, "NewRsrc"
408A= C08C: 60DE                 "NewRsrc":   BRA     $-34  ;=406A


408C= C08E: C082                              DW      $C082
408E= C090: 0843 6F70 7952 7372 6300          DB      8, "CopyRsrc", 0
4098= C09A: 60D0                 "CopyRsrc":  BRA     $-48  ;=406A


409A= C09C: C08E                              DW      $C08E
409C= C09E: 0A72 6567 6973 7465 7265 6400     DB      10, "registered", 0
40A8= C0AA: 60C0                 "registered":BRA.S   $C06C  ;$-64 ;=406A


40AA= C0AC: 576F 726B 7370 6163 6500          DB      "Workspace", 0
40B4= C0B6: 486A                 "Workspace": PEA     -16212(A2)
40B8= C0BA:                                   MOVE    #0, -(A7)
40BC= C0BE:                                   SYSTRAP DmFindDatabase
40C0= C0C2:                                   ADDQ.L  #6, A7
40C2= C0C4:                                   RTS


40C4= C0C6: 246D 0026                         MOVE.L  38(A5), A2
40C8= C0CA: 41EA C306                         LEA     -15610(A2), A0
40CC= C0CF: 303C 0025                         MOVE    #37, D0
40D0= C0D2: 4EAA 882E                         JSR     -30674(A2)
40D4= C0D6: 4EAA C0B6                         JSR     -16202(A2)
40D8= C0DA: 4A80                              TST.L   D0
40DA= C0DC: 670C                           .-<BEQ     $+12   ;=40E8
40DC= C0DE: 2F00                           |  MOVE.L  D0, -(A7)
40DE= C0E0: 3F3C 0000                      |  MOVE    #0, -(A7)
40E2= C0E4: 4E4F A042                      |  SYSTRAP DmDeleteDatabase...
40E6= C0E8: 5C8F                           `->ADDQ.L  #6, A7
40E8= C0EA: 3F3C 0000                         MOVE    #0, (A7)
40EC= C0EF: 2F3C 576F 726B                    MOVE.L  #'Work', -(A7)
40F2= C0F4: 2F3C 7034 7072                    MOVE.L  #'p4pr', -(A7)
40F8= C0FA: 486A C0AC                         PEA     -16212(A2)
40FC= C0FE: 3F3C 0000                         MOVE    #0, -(A7)
4100= C102: 4E4F A041                         SYSTRAP DmCreateDatabase
4104= C106: 4FEF 0010                         LEA     16(A7), A7
4108= C10A: 4A40                              TST     D0
410A= C10C: 6704                           .-<BEQ     $+4  ;=4110
410C= C10E: 4EAA 80F2                      |  JSR     -32526(A2)
4110= C112: 4EAA C0B6                      `->JSR     -16202(A2)
4114= C116: 3F3C 0003                         MOVE    #3, -(A7)
4118= C11A: 2F00                              MOVE.L  D0, -(A7)
411A= C11C: 3F3C 0000                         MOVE    #0, -(A7)
411E= C120: 4E4F A049                         SYSTRAP DmOpenDatabase
4122= C124: 508F                              ADDQ.L  #8, A7
4124= C126: 2B48 0048                         MOVE.L  A0, 72(A5)
4128= C12A: 2F3C 0000 C428                    MOVE.L  #50216, -(A7)
412E= C130: 486D 002A                         PEA     42(A5)
4132= C134: 2F08                              MOVE.L  A0, -(A7)
4134= C136: 4E4F A055                         SYSTRAP DmNewRecord
4138= C13A: 4FEF 000C                         LEA     12(A7), A7
413C= C13E: 2B48 0016                         MOVE.L  A0, 22(A5)
4140= C142: 2F08                              MOVE.L  A0, -(A7)
4142= C144: 4E4F A021                         SYSTRAP MemHandleLock
4146= C148: 588F                              ADDQ.L  #4, A7
4148= C14A: 2648                              MOVE.L  A0, A3
414A= C14C: 2B48 001A                         MOVE.L  A0, 26(A5)
414E= C150: 2F3C 0000 4428                    MOVE.L  #17448, -(A7)
4154= C156: 486A 8002                         PEA     -32766(A2)
4158= C15A: 2F3C 0000 0000                    MOVE.L  #0, -(A7)
415E= C160: 2F08                              MOVE.L  A0, -(A7)
4160= C162: 4E4F A076                         SYSTRAP DmWrite
4164= C166: 4FEF 0010                         LEA     16(A7), A7
4168= C16A: 2217                              MOVE.L  (A7), D1
416A= C16C: 928A                              SUB.L   A2, D1
416C= C16E: 0681 0000 7FFE                    ADDI.L  #32766, D1
4172= C174: D28B                              ADD.L   A3, D1
4174= C176: 2E81                              MOVE.L  D1, (A7)
4176= C178: 45EB 7FFE                         LEA     32766(A3), A2
417A= C17C: 2B4A 0022                         MOVE.L  A2, 34(A5)
417E= C180: 3B7C C42A 01A6                    MOVE    #-15318, 422(A5)
4184= C186: 3B7C 0214 01A4                    MOVE    #532, 420(A5)
418A= C18C: 4EAA 9406                         JSR     -27642(A2)
418E= C190: 41ED 0174                         LEA     372(A5), A0
4192= C194: 91CD                              SUBA.L  A5, A0
4194= C196: 3B48 0174                         MOVE    A0, 372(A5)
4198= C19A: 4EAA 86C6                         JSR     -31034(A2)
419C= C19E: 3F3C 03ED                         MOVE    #1005, -(A7)
41A0= C1A2: 2F3C 5462 6D70                    MOVE.L  #'Tbmp', -(A7)
41A6= C1A8: 4E4F A05F                         SYSTRAP DmGetResource
41AA= C1AC: 5C8F                              ADDQ.L  #6, A7
41AC= C1AE: 2648                              MOVE.L  A0, A3
41AE= C1B0: 2F08                              MOVE.L  A0, -(A7)
41B0= C1B2: 4E4F A021                         SYSTRAP MemHandleLock
41B4= C1B6: 588F                              ADDQ.L  #4, A7
41B6= C1B8: 3F2D 0058                         MOVE    88(A5), -(A7)
41BA= C1BC: 3F2D 0056                         MOVE    86(A5), -(A7)
41BE= C1C0: 2F08                              MOVE.L  A0, -(A7)
41C0= C1C2: 4E4F A226                         SYSTRAP WinDrawBitmap
41C4= C1C6: 508F                              ADDQ.L  #8, A7
41C6= C1C8: 2F0B                              MOVE.L  A3, -(A7)
41C8= C1CA: 4E4F A022                         SYSTRAP MemHandleUnlock
41CC= C1CE: 588F                              ADDQ.L  #4, A7
41CE= C1D0: 2F0B                              MOVE.L  A3, -(A7)
41D0= C1D2: 4E4F A061                         SYSTRAP DmReleaseResource...
41D4= C1D6: 588F                              ADDQ.L  #4, A7
41D6= C1D8: 3B7C 0021 0058                    MOVE    #33,88(A5)
41DC= C1DE: 41EA C32B                         LEA     -15573(A2), A0
41E0= C1E2: 303C 0020                         MOVE    #32, D0
41E4= C1E6: 4EAA 882E                         JSR     -30674(A2)
41E8= C1EA: 4EAA 8724                         JSR     -30940(A2)
41EC= C1EE: 41EA C38D                         LEA     -15475(A2), A0
41F0= C1F2: 303C 001C                         MOVE    #28, D0
41F4= C1F6: 4EAA 882E                         JSR     -30674(A2)
41F8= C1FA: 4EAA 8724                         JSR     -30940(A2)
41FC= C1FE: 41EA C34B                         LEA     -15541(A2), A0
4200= C202: 303C 001B                         MOVE    #27, D0
4204= C206: 4EAA 882E                         JSR     -30674(A2)
4208= C20A: 4EAA 8724                         JSR     -30940(A2)
420C= C20E: 41EA C366                         LEA     -15514(A2)
4210= C212: 303C 0014                         MOVE    #20, D0
4214= C216: 4EAA 882E                         JSR     -30674(A2)
4218= C21A: 4EAA 8724                         JSR     -30940(A2)
421C= C21E: 4EAA 8724                         JSR     -30940(A2)
4220= C222: 41EA C37A                         LEA     -15494(A2), A0
4224= C226: 303C 0013                         MOVE    #19, D0
4228= C22A: 4EAA 882E                         JSR     -30674(A2)
422C= C22E: 4EAA 8724                         JSR     -30940(A2)
4230= C232: 4EAA 8724                         JSR     -30940(A2)
4234= C236: 2F3C 0000 0012                    MOVE.L  #18, -(A7)
423A= C23C: 4E4F A013                         SYSTRAP MemPtrNew
423E= C240: 588F                              ADDQ.L  #4, A7
4240= C242: 2648                              MOVE.L  A0, A3
4242= C244: 2B48 01F0                         MOVE.L  A0, 496(A5)
4246= C248: 486D 01F6                         PEA     502(A5)
424A= C24C: 486D 01F4                         PEA     500(A5)
424E= C250: 3F3C FFFF                         MOVE    #-1, -(A7)
4252= C254: 2F3C 6D65 6D6F                    MOVE.L  #'memo', -(A7)
4258= C25A: 2F3C 6170 706C                    MOVE.L  #'appl', -(A7)
425E= C260: 2F0B                              MOVE.L  A3, -(A7)
4260= C262: 3F3C FFFF                         MOVE.L  #-1, -(A7)
4264= C266: 4E4F A078                         SYSTRAP DmGetNextDataba...
4268= C26A: 4FEF 0018                         LEA     24(A7), (A7)
426C= C26E: 3F3C 0000                         MOVE.W  #0, -(A7)
4270= C272: 2F3C 0000 0012                    MOVE.L  #18, -(A7)
4276= C278: 2F0B                              MOVE.L  A3, -(A7)
4278= C27A: 4E4F A027                         SYSTRAP MemSet
427C= C27E: 4FEF 000A                         LEA     10(A7), A7
4280= C282: 202D 01F6                         MOVE.L  502(A5), D0
4284= C286: 2740 0004                         MOVE.L  D0, 4(A3)
4288= C28A: 377C FFFF 0008                    MOVE    #-1, 8(A3)
428E= C290: 3B7C FFFF 01C6                    MOVE    #-1, 454(A5)
4294= C296: 42AD 01C2                         CLR.L   450(A5)
4298= C29A: 4EAA B594                         JSR     -19052(A2)
429C= C29E: 3907                              MOVE    D7, -(A4)
429E= C2A0: 3E3C 0066                         MOVE    #102, D7
42A2= C2A4: 3907                              MOVE    D7, -(A4)
42A4= C2A6: 7E0F                              MOVEQ   #15, D7
42A6= C2A8: 3907                              MOVE    D7, -(A4)
42A8= C2AA: 3E3C B930                         MOVE    #-18128, D7
42AC= C2AE: 4EAA B60C                         JSR     -18932(A2)
42B0= C2B2: 4A47                              TST     D7
42B2= C2B4: 670E                          .---BEQ     $+14  ;=42C2
42B4= C2B6: BE7C FFDA                     |   CMP     #-38, D7
42B8= C2BA: 6704                          | .-BEQ     $+4   ;=42BE
42BA= C2BC: 4EAA B634                     | | JSR     -18892(A2)
42BE= C2C0: 548C                          | `>ADDQ.L  #2, A4
42C0= C2C2: 3E1C                          |   MOVE    (A4)+, D7
42C2= C2C4: 3E1C                          `-->MOVE    (A4)+, D7
42C4= C2C6: 426D 019C                         CLR     412(A5)
42C8= C2CA: 4EAA B104                         JSR     -20220(A2)
42CC= C2CE: 4E75                              RTS                               ;=EXIT

                                 ;*******************
                                 ; Cold Start
                                 ; ==========
                                              ; cold ( → )
42CE= C2D0: C09C                              DW      $C09C
42D0= C2D2: 0463 6F6C 6400       "cold":      DB      4, "cold"
42D6= C2D8: 486D 017A                         PEA     378(DS)
42DA= C2DC: 486D 01BA                         PEA     442(DS)
42DE= C2E0: 4E4F A0AC                         SYSTRAP SysCurAppDatabase..
42E2= C2E4: 508F                              ADDQ.L  #8, RP
42E4= C2E6: 2F3C 0000 0000                    MOVE.L  #0, -(RP)
42EA= C2EC: 3F3C 0000                         MOVE.W  #0, -(RP)
42EE= C2F0: 2F2D 017A                         MOVE.L  378(DS), -(RP)
42F2= C2F4: 3F2D 01BA                         MOVE.W  442(DS), -(RP)
42F6= C2F8: 4E4F A0A7                         SYSTRAP SysUIAppSwitch
42FA= C2FC: 4FEF 000C                         LEA     12(RP), RP
42FE= C300: 4EAA 8118                         JSR     -32488(CS)        ;= BYE
4302= C304: 4E75                              RTS

4304= C306: 5175                              DW      $5175
4306= C308:                                   DB      "Quartus Forth initializing workspace"
4328= C32A:                                   DB      $85, "Welcome to Quartus Forth 1.2.1U.) "
                                              DB      "Neal Bridges, 1998, 1999.All rights reserved."
                                              DB      "Evaluation version.Build: 1999.03.06  2:18:37pm", 0
43A8= C3AA: 8000 8000 8000 8000               DW      $8000, $8000, $8000, $8000
                                              ...                 
4420= C422: 8000 8000 8000 8000               DW      $8000, $8000, $8000, $8000


                                              MOVEQ.L #2, D7
                                              JSR     -12232(A2)     ;= approximate
                                              BRA.L   63154
....= F6A2: 4EAA DADA                         JSR     -9510(A2)      ;= .source
      F6A6: 4EAA DB4E                         JSR     -24B2(A2)      ;= ,dreg
      F6AA: 3907                              MOVE.W  D7, -(A4)      ;= DUP
      F6AC: 7E04                              MOVEQ.L #4, D7
      F6AE: 3907                              MOVE.W  D7, -(A4)      ;= DUP
      F6B0:                                   MOVEQ.L #2, D7
      F6B2:                                   JSR     $-2A92(A2)     ;= +if-long
      F6B6:                                   RTS                    ;= EXIT

      F6B8: 1234 0000 EBE6 0B69