Příklad 21.1. První část code 1
; PPForth code 1
; 11111111112222222222333333333344444444445555555555666666666677777777778
;2345678901234567890123456789012345678901234567890123456789012345678901234567890
0000= ....: 4E56 FFF4 .... .... START: LINK A6, -12
0004= 486E FFF4 PEA -12(A6)
0008= 486E FFF8 PEA -8(A6)
0004= 486E FFFC PEA -4(A6)
0010= 4E4F A08F SYSTRAP SysAppStartup
0014= 4FEF 000C LEA 12(A7), A7
0018= 4A40 TST.W D0
001A= 670E .-BEQ.S OK
|
| ; V případě neúspěchu pípneme a ukončíme program
001C= 1F3C 0003 | MOVE.B #3, -(A7)
0020= 4E4F A234 | SYSTRAP SndPlaySystemSound
0024= 548F | ADDQ.L #2, A7
0026= 70FF | MOVEQ #-1, D0
0028= 602A .-|-BRA.S END ;=$8056 ; Konec
| |
| | ; Příprava argumentů a volání procedury SBR_0058
002A= 206E FFFC OK: | `>MOVE.L -4(A6), A0
002E= 3F28 0006 | MOVE 6(A0), -(A7)
0032= 2F28 0002 | MOVE.L 2(A0), -(A7)
0036= 3F10 | MOVE (A0), -(A7)
0038= 4EBA 001E | =JSR SBR_0058 ; CALL ()
|
003C= 803E: 508F | ADDQ.L #8, RP
003E= 8040: 2F2E FFF4 | MOVE.L -12(FP), -(RP)
0042= 8044: 2F2E FFF8 | MOVE.L -8(FP), -(RP)
0046= 8048: 2F2E FFFC | MOVE.L -4(FP), -(RP)
004A= 804C: 4E4F A090 | SYSTRAP SysAppExit
004E= 8050: 4FEF 000C | LEA 12(RP), RP
0052= 8054: 7000 | MOVEQ #0, D0
|
0054= 8056: 4E5E END: `-->UNLK A6 ; Return to PalmOS
0056= 8058: 4E75 RTS ; %
; Subroutine $0058
0058= 4E56 0000 SBR_0058: LINK A6, #0 ;Rámec bez lokálních proměnných
005C= 4A6E 0008 TST.W 8(A6) ;ARG.
0060= 6704 .-BEQ 0066 ; $+4
0062= 4E5E | UNLK A6
0064= 4E75 | RTS
0066= 6100 001E .=`>BSR 0086
|
006A= 0004 0001 0028 00D1 | DW 4, 1, $28, $D1
0072= 000A | DW $0A
0074= 0000 0000 | DW 0, 0
0078= 00D1 7374 6172 7474 | DB 00, $D1, "startt"
0080= 75B5 |
0082= F66C |
0084= A14E |
0086= 588F `-->ADDQ.L #0, A7
0088= 47FA FF76 LEA $FF76(PC), A3
008C= 2F3C 0000 MOVE.L #0, -(A7)
0090= FFE0
0092= 4E4F A013 SYSTRAP $A013
0096= 588F ADDQ.L #0, A7
0098= 203C 0000 MOVE.L #0, D0
009C= 8000
009E= 5980
00A0= 21B3
00A2= 0800
00A4= 0080
011C= 01B4 DW $01B4 ; view
011E= 0000 DW 0 ; link
0120= 046E 6F6F 7004 DB 4, "noop", 4
0126= 3A1A MOVE.W (A2)+, D5
0128= 4EF3 5800 JMP ???
012C= 01B9
012E= 0000
0130= 4564 6F6C 6974 0500 DB $40+5, "dolit", 5, 0
0138= 3F1A MOVE.W (A2)+, -(A7)
013A= 3A1A MOVE.W (A2)+, D5
013C= 4EF3 JMP ???
013E= 5800
0140= 01C0 0000
0144= 4764 6F76 616C 7565 0700 DB $40+7, "dovalue", 7, 0
014F= 3F1A MOVE.W (A2)+, -(A7)
0150= 3A1A MOVE.W (A2)+, D5
0152= 4EF3 5800 JMP ???
0156= 01C7 0000
015A= 4664 6F6C 6973 7406 DB $40+6, "dolist", 6
0162= 220A MOVE.L A2, D1
0164= 928B
0170= 01D5 0000
0174= 4664 6F64 6F65 7306 DB $40+6, "dodoes", 6
017C= 220A 928B
0190= 01E5 012E
0194= 4662 726E 6578 7406 DB $40+6, "brnext", 6
019C= 5354 4A54
01BF= 01F6
01C0= 0000
01C2= 473F 6272 616E 6368 0700 DB $40+7, "?branch", 7
C5C8= C02C C0A2
C5CC= 0666 6F72 6D68 6906 DB 6, "formhi", 5
C5D4= 3A3C 0162
C5D8= 4EB3
C5DA= 5800