AKD Code.

If you've any interest in reverse engineering old code, Ghidra does a pretty good job of it though it does seem rather massive overkill to run it against <400 bytes of assembler.

 I hope nobody objects to this, I've tried and tried to locate schematics and information on this oddball radio but even the people I've managed to track down from Garex/AKD don't seem to have it.

 

If you own this code and object to my posting it here, please contact me, I *will* remove it but also bear in mind reverse engineering is legal. 

 

This is the code from the AKD:


                             LAB_fc00                                        XREF[1]:     fffe(*)  
            fc00 8e 00 1f        LDS        #0x1f
            fc03 86 2d           LDAA       #0x2d
            fc05 97 20           STAA       DAT_0020                                         = FFh
            fc07 86 00           LDAA       #0x0
            fc09 97 22           STAA       DAT_0022                                         = FFh
            fc0b ce fe b4        LDX        #0xfeb4
            fc0e df 23           STX        DAT_0023                                         = FFFFh
            fc10 e6 01           LDAB       0x1,X=>DAT_feb5                                  = 03h
            fc12 f7 a0 00        STAB       DAT_a000                                         = FFh
            fc15 bd fc 22        JSR        FUN_fc22                                         = FFFFh
                                                                                             undefined FUN_fc22()
                             LAB_fc18                                        XREF[1]:     fc1a(j)  
            fc18 0e              CLI
            fc19 3e              WAI                                                         = FFh
                                                                                             = FFFFh
            fc1a 20 fc           BRA        LAB_fc18
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             undefined FUN_fc1c()
             undefined            
                             FUN_fc1c                                        XREF[2]:     fcd9(c), fd1a(c)  
            fc1c de 23           LDX        DAT_0023                                         = FFFFh
            fc1e ee 02           LDX        0x2,X
            fc20 20 19           BRA        LAB_fc3b
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             undefined FUN_fc22()
             undefined            
                             FUN_fc22                                        XREF[4]:     fc15(c), fcd2(c), fcf7(c), 
                                                                                          fd16(c)  
            fc22 de 23           LDX        DAT_0023                                         = FFFFh
            fc24 ee 04           LDX        0x4,X
            fc26 7d 00 22        TST        DAT_0022                                         = FFh
            fc29 27 10           BEQ        LAB_fc3b
            fc2b df 26           STX        DAT_0026                                         = FFFFh
            fc2d 96 27           LDAA       DAT_0026+1
            fc2f 80 18           SUBA       #0x18
            fc31 97 27           STAA       DAT_0026+1
            fc33 96 26           LDAA       DAT_0026                                         = FFFFh
            fc35 82 00           SBCA       #0x0
            fc37 97 26           STAA       DAT_0026                                         = FFFFh
            fc39 de 26           LDX        DAT_0026                                         = FFFFh
                             LAB_fc3b                                        XREF[2]:     FUN_fc1c:fc20(j), fc29(j)  
            fc3b df 26           STX        DAT_0026                                         = FFFFh
            fc3d 86 02           LDAA       #0x2
            fc3f 97 25           STAA       DAT_0025                                         = FFh
            fc41 c6 05           LDAB       #0x5
                             LAB_fc43                                        XREF[1]:     fc4e(j)  
            fc43 0c              CLC
            fc44 79 00 27        ROL        DAT_0026+1
            fc47 79 00 26        ROL        DAT_0026                                         = FFFFh
            fc4a 79 00 25        ROL        DAT_0025                                         = FFh
            fc4d 5a              DECB
            fc4e 26 f3           BNE        LAB_fc43
            fc50 c6 13           LDAB       #0x13
                             LAB_fc52                                        XREF[1]:     fc6b(j)  
            fc52 37              PSHB
            fc53 c6 01           LDAB       #0x1
            fc55 7d 00 25        TST        DAT_0025                                         = FFh
            fc58 2b 02           BMI        LAB_fc5c
            fc5a c6 00           LDAB       #0x0
                             LAB_fc5c                                        XREF[1]:     fc58(j)  
            fc5c f7 60 00        STAB       DAT_6000                                         = FFh
            fc5f 0c              CLC
            fc60 79 00 27        ROL        DAT_0026+1
            fc63 79 00 26        ROL        DAT_0026                                         = FFFFh
            fc66 79 00 25        ROL        DAT_0025                                         = FFh
            fc69 33              PULB
            fc6a 5a              DECB
            fc6b 26 e5           BNE        LAB_fc52
            fc6d f7 80 00        STAB       DAT_8000                                         = FFh
            fc70 39              RTS
                             LAB_fc71                                        XREF[1]:     fff8(*)  
            fc71 32              PULA
            fc72 8a 10           ORAA       #0x10
            fc74 36              PSHA
            fc75 86 ff           LDAA       #0xff
            fc77 97 21           STAA       DAT_0021                                         = FFh
                             LAB_fc79                                        XREF[1]:     fcd7(j)  
            fc79 b6 c0 00        LDAA       DAT_c000                                         = FFh
            fc7c 84 0f           ANDA       #0xf
            fc7e 81 07           CMPA       #0x7
            fc80 27 1b           BEQ        LAB_fc9d
            fc82 81 0b           CMPA       #0xb
            fc84 27 29           BEQ        LAB_fcaf
            fc86 85 02           BITA       #0x2
            fc88 27 4f           BEQ        LAB_fcd9
            fc8a de 23           LDX        DAT_0023                                         = FFFFh
            fc8c 6d 00           TST        0x0,X
            fc8e 26 01           BNE        LAB_fc91
            fc90 3b              RTI
                             LAB_fc91                                        XREF[1]:     fc8e(j)  
            fc91 81 0e           CMPA       #0xe
            fc93 27 01           BEQ        LAB_fc96
            fc95 3b              RTI
                             LAB_fc96                                        XREF[1]:     fc93(j)  
            fc96 7d 00 22        TST        DAT_0022                                         = FFh
            fc99 26 26           BNE        LAB_fcc1
            fc9b 20 2c           BRA        LAB_fcc9
                             LAB_fc9d                                        XREF[1]:     fc80(j)  
            fc9d de 23           LDX        DAT_0023                                         = FFFFh
            fc9f 09              DEX
            fca0 09              DEX
            fca1 09              DEX
            fca2 09              DEX
            fca3 09              DEX
            fca4 09              DEX
            fca5 8c fd fa        CPX        #0xfdfa
            fca8 26 03           BNE        LAB_fcad
            fcaa ce ff c2        LDX        #0xffc2
                             LAB_fcad                                        XREF[1]:     fca8(j)  
            fcad 20 10           BRA        LAB_fcbf
                             LAB_fcaf                                        XREF[1]:     fc84(j)  
            fcaf de 23           LDX        DAT_0023                                         = FFFFh
            fcb1 08              INX
            fcb2 08              INX
            fcb3 08              INX
            fcb4 08              INX
            fcb5 08              INX
            fcb6 08              INX
            fcb7 8c ff c8        CPX        #0xffc8
            fcba 26 03           BNE        LAB_fcbf
            fcbc ce fe 00        LDX        #0xfe00
                             LAB_fcbf                                        XREF[2]:     fcad(j), fcba(j)  
            fcbf df 23           STX        DAT_0023                                         = FFFFh
                             LAB_fcc1                                        XREF[1]:     fc99(j)  
            fcc1 c6 00           LDAB       #0x0
            fcc3 d7 22           STAB       DAT_0022                                         = FFh
            fcc5 e6 01           LDAB       0x1,X=>Channel_Table                             = 79h
            fcc7 20 06           BRA        LAB_fccf
                             LAB_fcc9                                        XREF[1]:     fc9b(j)  
            fcc9 c6 ff           LDAB       #0xff
            fccb d7 22           STAB       DAT_0022                                         = FFh
            fccd e6 00           LDAB       0x0,X
                             LAB_fccf                                        XREF[1]:     fcc7(j)  
            fccf f7 a0 00        STAB       DAT_a000                                         = FFh
            fcd2 bd fc 22        JSR        FUN_fc22                                         undefined FUN_fc22()
            fcd5 8d 62           BSR        FUN_fd39                                         undefined FUN_fd39()
            fcd7 20 a0           BRA        LAB_fc79
                             LAB_fcd9                                        XREF[1]:     fc88(j)  
            fcd9 bd fc 1c        JSR        FUN_fc1c                                         undefined FUN_fc1c()
            fcdc c6 00           LDAB       #0x0
            fcde d7 22           STAB       DAT_0022                                         = FFh
            fce0 de 23           LDX        DAT_0023                                         = FFFFh
            fce2 e6 01           LDAB       0x1,X
            fce4 f7 a0 00        STAB       DAT_a000                                         = FFh
            fce7 6d 00           TST        0x0,X
            fce9 27 22           BEQ        LAB_fd0d
            fceb ce 50 00        LDX        #0x5000
                             LAB_fcee                                        XREF[1]:     fd0b(j)  
            fcee b6 c0 00        LDAA       DAT_c000                                         = FFh
            fcf1 84 0f           ANDA       #0xf
            fcf3 85 02           BITA       #0x2
            fcf5 27 13           BEQ        LAB_fd0a
            fcf7 bd fc 22        JSR        FUN_fc22                                         undefined FUN_fc22()
            fcfa ce 50 00        LDX        #0x5000
                             LAB_fcfd                                        XREF[1]:     fd07(j)  
            fcfd b6 c0 00        LDAA       DAT_c000                                         = FFh
            fd00 84 0f           ANDA       #0xf
            fd02 85 02           BITA       #0x2
            fd04 27 14           BEQ        LAB_fd1a
            fd06 09              DEX
            fd07 26 f4           BNE        LAB_fcfd
            fd09 3b              RTI
                             LAB_fd0a                                        XREF[1]:     fcf5(j)  
            fd0a 09              DEX
            fd0b 26 e1           BNE        LAB_fcee
                             LAB_fd0d                                        XREF[3]:     fce9(j), fd14(j), fd37(j)  
            fd0d b6 c0 00        LDAA       DAT_c000                                         = FFh
            fd10 84 0f           ANDA       #0xf
            fd12 85 02           BITA       #0x2
            fd14 27 f7           BEQ        LAB_fd0d
            fd16 bd fc 22        JSR        FUN_fc22                                         undefined FUN_fc22()
            fd19 3b              RTI
                             LAB_fd1a                                        XREF[1]:     fd04(j)  
            fd1a bd fc 1c        JSR        FUN_fc1c                                         undefined FUN_fc1c()
            fd1d c6 ff           LDAB       #0xff
            fd1f f7 a0 00        STAB       DAT_a000                                         = FFh
            fd22 ce 06 d4        LDX        #0x6d4
                             LAB_fd25                                        XREF[1]:     fd2e(j)  
            fd25 b7 40 00        STAA       DAT_4000                                         = FFh
            fd28 d6 20           LDAB       DAT_0020                                         = FFh
                             LAB_fd2a                                        XREF[1]:     fd2b(j)  
            fd2a 5a              DECB
            fd2b 26 fd           BNE        LAB_fd2a
            fd2d 09              DEX
            fd2e 26 f5           BNE        LAB_fd25
            fd30 de 23           LDX        DAT_0023                                         = FFFFh
            fd32 e6 01           LDAB       0x1,X
            fd34 f7 a0 00        STAB       DAT_a000                                         = FFh
            fd37 20 d4           BRA        LAB_fd0d
                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             undefined FUN_fd39()
             undefined            
                             FUN_fd39                                        XREF[1]:     fcd5(c)  
            fd39 7d 00 21        TST        DAT_0021                                         = FFh
            fd3c 27 0b           BEQ        LAB_fd49
            fd3e ce a0 00        LDX        #0xa000
                             LAB_fd41                                        XREF[1]:     fd42(j)  
            fd41 09              DEX
            fd42 26 fd           BNE        LAB_fd41
            fd44 86 00           LDAA       #0x0
            fd46 97 21           STAA       DAT_0021                                         = FFh
            fd48 39              RTS
                             LAB_fd49                                        XREF[1]:     fd3c(j)  
            fd49 ce 28 00        LDX        #0x2800
                             LAB_fd4c                                        XREF[1]:     fd4d(j)  
            fd4c 09              DEX
            fd4d 26 fd           BNE        LAB_fd4c
            fd4f 39              RTS


Comments

Popular posts from this blog

3D printing the things.

MiniPA 70 build, almost there.

Opto-isolated RS-232 for Icom CI-V