
 Im alten GEMX von TDI ist leider kein Rckgabe-Wert beim Sprung ber den
 Terminator (aMPD()-40, normales Programm-Ende) mglich. Der folgende Ptsch
 behebt diesen Mangel. Man kann entweder die Source von GEMX ptschen (so
 man sie besitzt) oder aber fertig gelinkte Programme (mit Hilfe eines
 geeigneten Binr-Datei-Monitors); das ptschen von GEMX.LNK ist leider
 etwas problematisch (wegen der checksums) - aber immerhin, wer will, kann
 ja auch das (mit Hilfe des Utilities DECLNK.PRG) unternehmen ...

 Man suche die Byte-Folge    20 3C 00 00 00 00   (MOVE.L #0,D0)
  in der Prozedur MODCALL
 und ersetze sie durch       3F 6D FF DC 00 02   (MOVE.W -36(A5),2(A7)).

 Mit etwas Glck ist die angegebene Byte-Folge nur einmal vorhanden. Wegen
 einer Schwche des TDI-Linkers kann es auch sein, da MODCALL doppelt
 eingebunden ist.

 Danach wird der an die Stelle aMPD()-36 geschriebene INTEGER-Wert vom
 TDI-Terminator via PTerm an den PExec-Call der aufrufenden Shell bergeben.

                                                                          RS

 Dis-Assembling der Prozedur MODCALL (# 38):

     0H        46FC 2700                MOVE    #2700H,SR
     4H        5300                     SUBQ.B  #1,D0
     6H        5300                     SUBQ.B  #1,D0
     8H        6608                     BNE     [08H] = 00000012H
     AH        0257 F8FF                ANDI.W  #F8FFH,(A7)
     EH        8357                     OR.W    D1,(A7)
    10H        4E73                     RTE
    12H        5300                     SUBQ.B  #1,D0
    14H        6604                     BNE     [04H] = 0000001AH
    16H        3E81                     MOVE.W  D1,(A7)
    18H        4E73                     RTE
    1AH        5300                     SUBQ.B  #1,D0
    1CH        6606                     BNE     [06H] = 00000024H
    1EH        46FC 2000                MOVE    #2000H,SR
    22H        4E73                     RTE
    24H        5300                     SUBQ.B  #1,D0
    26H        6604                     BNE     [04H] = 0000002CH
    28H        4E71                     NOP
    2AH        4E73                     RTE
    2CH        5300                     SUBQ.B  #1,D0
    2EH        660A                     BNE     [0AH] = 0000003AH
    30H        2001                     MOVE.L  D1,D0
    32H        4EB9 0000 0000           JSR     00000000H
    38H        4E73                     RTE
    3AH        4E68                     MOVE    USP,A0
    3CH        42A0                     CLR.L   -(A0)
    3EH        42A0                     CLR.L   -(A0)
    40H        42A0                     CLR.L   -(A0)
    42H        2039 0000 0040           MOVE.L  00000040H,D0
    48H        2100                     MOVE.L  D0,-(A0)
    4AH        42A0                     CLR.L   -(A0)
    4CH        2A48                     MOVE.L  A0,A5
    4EH        90FC 0024                SUBA.W  #0024H,A0
    52H        43FA 0006                LEA     [0006H] = 0000005AH,A1
    56H        2109                     MOVE.L  A1,-(A0)
    58H        6016                     BRA     [16H] = 00000070H
    5AH        4EB9 0000 0000           JSR     00000000H
    60H        203C 0000 004C           MOVE.L  #0000004CH,D0
    66H        3F00                     MOVE.W  D0,-(A7)
 >  68H        203C 0000 0000           MOVE.L  #00000000H,D0
    6EH        4E41                     TRAP    #1
    70H        4E60                     MOVE    A0,USP
    72H        9DCE                     SUBA.L  A6,A6
    74H        0257 D8FF                ANDI.W  #D8FFH,(A7)
    78H        4E73                     RTE

