; generated by Norcroft RISC OS ARM C vsn 3.00 [Jul 12 1989]

a1      RN      0
a2      RN      1
a3      RN      2
a4      RN      3
RV1     RN      3
RPC     RN      4
v1      RN      4
v2      RN      5
v3      RN      6
v4      RN      7
OffRead RN      7
Glb     RN      7
v5      RN      8
ACode   RN      8
v6      RN      9
sl      RN      10
fp      RN      11
ip      RN      12
sp      RN      13
lr      RN      14
pc      RN      15

        GBLL    FLAGF
FLAGF   SETL    {TRUE}

        GET     s.GenInc

        MACRO
        ADR8    $OffR
        LDR     a2, [OffRead, #0] ;;
        ADD     a2, a2, a1
        LDRB    a2, [ACode, a2]
        ADD     a1, a1, #1
        BIC     a1, a1, #65536
        MOV     ip, a1, LSR #8
        LDR     ip, [OffRead, ip, ASL #2] ;;
        ADD     a1, ip, a1
        LDRB    a1, [ACode, a1]
        ADD     a1, a2, a1, ASL #8
        MEND

        AREA    |C$$code|, CODE, READONLY

        IMPORT  |__main|
|x$codeseg|
        B       |__main|

        [ FLAGF
        EXPORT  AdAbs
AdAbs
        ]

        [ :LNOT:FLAGF
        DCB     &52,&65,&63,&68
        DCB     &41,&64,&72,&00
        DCD     &ff000008
        ]
        EXPORT  RechAdr
RechAdr
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     ip, RPC, LSR #8
        LDR     ip, [OffRead, ip, ASL #2] ;;
        ADD     ip, ip, RPC
        LDRB    ip, [ACode, ip]
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a1, RPC, LSR #8
        LDR     a3, [OffRead, a1, ASL #2] ;;
        ADD     a1, a3, RPC
        LDRB    a1, [ACode, a1]
        ADD     a1, ip, a1, ASL #8
        MOVS    pc, lr
L000070
        DCD     Glob

        [ :LNOT:FLAGF
        DCB     &41,&64,&72,&00
        DCD     &ff000004
        ]
; Version "officielle" de Adr, appelable du C
        EXPORT  Adr
Adr
        MOV     a4, a1, LSR #8
        LDR     a3, [pc, #L000070-.-8]
        LDR     a4, [a3, a4, ASL #2]
        ADD     a4, a4, a1
        LDR     a2, [pc, #L00006c-.-8]
        LDR     a2, [a2, #0]
        LDRB    a4, [a2, a4]
        ADD     a1, a1, #1
        BIC     a1, a1, #65536
        MOV     ip, a1, LSR #8
        LDR     a3, [a3, ip, ASL #2]
        ADD     a1, a3, a1
        LDRB    a1, [a2, a1]
        ADD     a1, a4, a1, ASL #8
        MOVS    pc, lr
L00006c
        IMPORT  AppleCode
        DCD     AppleCode

; Version personnelle de Adr, non appelable du C
MyAdr   MOV     a4, a1, LSR #8
        LDR     a4, [OffRead, a4, ASL #2] ;;
        ADD     a4, a4, a1
        LDRB    a4, [ACode, a4]
        ADD     a1, a1, #1
        BIC     a1, a1, #65536
        MOV     ip, a1, LSR #8
        LDR     a3, [OffRead, ip, ASL #2]
        ADD     a1, a3, a1
        LDRB    a1, [ACode, a1]
        ADD     a1, a4, a1, ASL #8
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&69,&6d
        DCB     &70,&00,&00,&00
        DCD     &ff000008
        ]
        EXPORT  Adimp
Adimp
        MOV     a1, #0
        MOVS    pc, lr
L0000f4
        DCD     Glob+rA

        [ :LNOT:FLAGF
        DCB     &41,&64,&69,&6d
        DCB     &6d,&00,&00,&00
        DCD     &ff000008
        ]
        EXPORT  Adimm
Adimm
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a1, RPC
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&70,&5a
        DCB     &65,&72,&6f,&00
        DCD     &ff000008
        ]
        EXPORT  AdpZero
AdpZero
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a1, RPC, LSR #8
        LDR     a2, [OffRead, a1, ASL #2] ;;
        ADD     a1, a2, RPC
        LDRB    a1, [ACode, a1]
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&70,&5a
        DCB     &65,&72,&6f,&58
        DCB     &00,&00,&00,&00
        DCD     &ff00000c
        ]
        EXPORT  AdpZeroX
AdpZeroX
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     ip, RPC, LSR #8
        LDR     a3, [OffRead, ip, ASL #2] ;;
        ADD     a1, a3, RPC  
        LDRB    a1, [ACode, a1]
        LDRB    a2, [Glb, #rX]
        ADD     a1, a1, a2
        AND     a1, a1, #255
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&70,&5a
        DCB     &65,&72,&6f,&59
        DCB     &00,&00,&00,&00
        DCD     &ff00000c
        ]
        EXPORT  AdpZeroY
AdpZeroY
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     ip, RPC, LSR #8
        LDR     a3, [OffRead, ip, ASL #2] ;;
        ADD     a1, a3, RPC
        LDRB    a1, [ACode, a1]
        LDRB    a2, [Glb, #rY] ;;
        ADD     a1, a1, a2
        AND     a1, a1, #255
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&41,&62
        DCB     &73,&00,&00,&00
        DCD     &ff000008
        EXPORT  AdAbs
AdAbs
        B       RechAdr
        ]

        [ :LNOT:FLAGF
        DCB     &41,&64,&49,&6e
        DCB     &64,&6e,&5a,&00
        DCD     &ff000008
        ]
        EXPORT  AdIndnZ
AdIndnZ
        MOV     ip, sp
        STMFD   sp!, {fp,ip,lr,pc}
        SUB     fp, ip, #4
        BL      RechAdr
        LDMEA   fp, {fp,sp,lr}
        B       MyAdr

        [ :LNOT:FLAGF
        DCB     &41,&64,&41,&62
        DCB     &73,&58,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdAbsX
AdAbsX
        MOV     ip, sp
        STMFD   sp!, {fp,ip,lr,pc}
        SUB     fp, ip, #4
        BL      RechAdr
        LDRB    a2, [Glb, #rX] ;;
        ADD     a1, a1, a2
        BIC     a1, a1, #65536
        LDMEA   fp, {fp,sp,pc}^

        [ :LNOT:FLAGF
        DCB     &41,&64,&41,&62
        DCB     &73,&59,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdAbsY
AdAbsY
        MOV     ip, sp
        STMFD   sp!, {fp,ip,lr,pc}
        SUB     fp, ip, #4
        BL      RechAdr
        LDRB    a2, [Glb, #rY] ;;
        ADD     a1, a1, a2
        BIC     a1, a1, #65536
        LDMEA   fp, {fp,sp,pc}^

        [ :LNOT:FLAGF
        DCB     &41,&64,&49,&6e
        DCB     &64,&58,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdIndX
AdIndX
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     ip, RPC, LSR #8
        LDR     a1, [OffRead, ip, ASL #2] ;;
        ADD     a1, a1, RPC
        LDRB    a1, [ACode, a1]
        LDRB    a2, [Glb, #rX] ;;
        ADD     a1, a1, a2
        AND     a1, a1, #255
        ADR8    a3
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&49,&6e
        DCB     &64,&59,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdIndY
AdIndY
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a2, RPC, LSR #8
        LDR     a2, [OffRead, a2, ASL #2] ;;
        ADD     a1, a2, RPC
        LDRB    a1, [ACode, a1]
        ADR8    a3
        LDRB    a2, [Glb, #rY]
        ADD     a1, a1, a2
        BIC     a1, a1, #65536
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&52,&65
        DCB     &6c,&00,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdRel
AdRel
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a2, RPC, LSR #8
        LDR     a1, [OffRead, a2, ASL #2] ;;
        ADD     a2, a1, RPC
        LDRB    RV1, [ACode, a2]
        CMPS    RV1, #127
        ADDLE   a1, RPC, #1
        SUBGT   a1, RPC, #255
        ADD     a1, a1, RV1
        BIC     a1, a1, #65536
        MOVS    pc, lr

        [ :LNOT:FLAGF
        DCB     &41,&64,&49,&6e
        DCB     &64,&5a,&00,&00
        DCD     &ff000008
        ]
        EXPORT  AdIndZ
AdIndZ
        ADD     RPC, RPC, #1
        BIC     RPC, RPC, #65536
        MOV     a3, RPC, LSR #8
        LDR     a2, [OffRead, a3, ASL #2] ;;
        ADD     a1, a2, RPC
        LDRB    a1, [ACode, a1]
        B       MyAdr

        [ :LNOT:FLAGF
        DCB     &41,&64,&49,&6e
        DCB     &64,&41,&62,&73
        DCB     &58,&00,&00,&00
        DCD     &ff00000c
        ]
        EXPORT  AdIndAbsX
AdIndAbsX
        MOV     ip, sp
        STMFD   sp!, {fp,ip,lr,pc}
        SUB     fp, ip, #4
        BL      RechAdr
        LDRB    a2, [Glb, #rX] ;;
        ADD     a1, a1, a2
        BIC     a1, a1, #65536
        LDMEA   fp, {fp,sp,lr}
        B       MyAdr

        AREA |C$$data|

|x$dataseg|

        EXPORT  ModAd
ModAd
        DCD     Adimp+0
        DCD     Adimm+0
        DCD     AdpZero+0
        DCD     AdpZeroX+0
        DCD     AdpZeroY+0
        DCD     AdAbs+0
        DCD     AdIndnZ+0
        DCD     AdAbsX+0
        DCD     AdAbsY+0
        DCD     AdIndX+0
        DCD     AdIndY+0
        DCD     AdRel+0
        DCD     AdIndZ+0
        DCD     AdIndAbsX+0

        END
