Annotation of hatari/tests/natfeats/nf_asma.s, revision 1.1

1.1     ! root        1: ; nf_asma.s - AHCC NatFeats ASM detection code
        !             2: ;
        !             3: ; Copyright (c) 2014 by Eero Tamminen
        !             4: ;
        !             5: ; Mostly based on code from EmuTOS,
        !             6: ; Copyright (c) 2001-2013 by the EmuTOS development team
        !             7: ;
        !             8: ; This file is distributed under the GPL, version 2 or at your
        !             9: ; option any later version.  See doc/license.txt for details.
        !            10: 
        !            11: ;;
        !            12: ;; exported symbols
        !            13: ;;
        !            14: ;; (AHCC doesn't prepend C-symbols with _)
        !            15: ;;
        !            16: .global        nf_id
        !            17: .global        nf_call
        !            18: .global        detect_nf
        !            19: 
        !            20: ;;
        !            21: ;; variables
        !            22: ;;
        !            23: .data
        !            24: 
        !            25: nf_version:
        !            26:         dc.b  "NF_VERSION\0"
        !            27:         even
        !            28: 
        !            29: ;;
        !            30: ;; code
        !            31: ;;
        !            32: .text
        !            33: 
        !            34: ; NatFeats test
        !            35: ;
        !            36: ; Needs to be called from Supervisor mode,
        !            37: ; otherwise exception handler change bombs
        !            38: detect_nf:
        !            39:         clr.l   d0              ; assume no NatFeats available
        !            40:         move.l  sp, a1
        !            41:         move.l  0x10, a0        ; illegal vector
        !            42:         move.l  #fail_nf, 0x10
        !            43:         pea     nf_version
        !            44:         sub.l   #4, sp
        !            45: ; Conflict with ColdFire instruction mvs.b d0,d1
        !            46:         dc.w   0x7300           ; Jump to NATFEAT_ID
        !            47:         tst.l   d0
        !            48:         beq.s   fail_nf
        !            49:         moveq   #1, d0          ; NatFeats detected
        !            50: 
        !            51: fail_nf:
        !            52:         move.l  a1, sp
        !            53:         move.l  a0, 0x10        ; illegal vector
        !            54: 
        !            55:         rts
        !            56: 
        !            57: 
        !            58: ; map native feature to its ID
        !            59: nf_id:
        !            60:         dc.w   0x7300 ; Conflict with ColdFire instruction mvs.b d0,d1
        !            61:         rts
        !            62: 
        !            63: ; call native feature by its ID
        !            64: nf_call:
        !            65:         dc.w   0x7301 ; Conflict with ColdFire instruction mvs.b d1,d1
        !            66:         rts

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.