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

1.1     ! root        1: ; nf_asmv.s - VBCC/Vasm 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:         PUBLIC  _nf_id
        !            15:        PUBLIC  _nf_call
        !            16:         PUBLIC  _detect_nf
        !            17: 
        !            18: ;;
        !            19: ;; variables
        !            20: ;;
        !            21:         DATA
        !            22: 
        !            23: nf_version:
        !            24:         dc.b  "NF_VERSION\0"
        !            25:         even
        !            26: 
        !            27: ;;
        !            28: ;; code
        !            29: ;;
        !            30:         TEXT
        !            31: 
        !            32: ; NatFeats test
        !            33: ;
        !            34: ; Needs to be called from Supervisor mode,
        !            35: ; otherwise exception handler change bombs
        !            36: _detect_nf:
        !            37:         clr.l   d0              ; assume no NatFeats available
        !            38:         move.l  sp, a1
        !            39:         move.l  $10, a0         ; illegal vector
        !            40:         move.l  #fail_nf, $10
        !            41:         pea     nf_version
        !            42:         sub.l   #4, sp
        !            43: ; Conflict with ColdFire instruction mvs.b d0,d1
        !            44:         dc.w   $7300            ; Jump to NATFEAT_ID
        !            45:         tst.l   d0
        !            46:         beq.s   fail_nf
        !            47:         moveq   #1, d0          ; NatFeats detected
        !            48: 
        !            49: fail_nf:
        !            50:         move.l  a1, sp
        !            51:         move.l  a0, $10         ; illegal vector
        !            52: 
        !            53:         rts
        !            54: 
        !            55: 
        !            56: ; map native feature to its ID
        !            57: _nf_id:
        !            58:         dc.w   $7300  ; Conflict with ColdFire instruction mvs.b d0,d1
        !            59:         rts
        !            60: 
        !            61: ; call native feature by its ID
        !            62: _nf_call:
        !            63:         dc.w   $7301  ; Conflict with ColdFire instruction mvs.b d1,d1
        !            64:         rts

unix.superglobalmegacorp.com

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