On Sun, 20 Aug 2000, you wrote:

> My ROM-less SCC is detected by MG2 (transl.), but not by Blaffer NT.

Here is the MG2 English SCC search code, maybe you or TWZ can use it to track 
the problem:

======

FINDSCC:
        ;(SCCID) := SCC slot ID

        ;check manual override
        XOR     A
        LD      IY,(#FCC1-1)
        LD      IX,#0141    ;SNSMAT
        CALL    CALSLT
        CPL
        AND     %00000110
        RRCA
        LD      (SCCID),A
        JR      NZ,FINDSCC_END

        ;no override, do a search
        LD      HL,#FCC1
        XOR     A
FINDSCC_LP:
        PUSH    HL
        PUSH    AF
        OR      (HL)
        JP      M,FINDSCC_SUB
        CALL    SCCTEST
        JR      FINDSCC_NEXT
FINDSCC_SUB:
FINDSCC_SUBLP:
        PUSH    AF
        CALL    SCCTEST
        POP     AF
        ADD     %00000100
        BIT     4,A
        JR      Z,FINDSCC_SUBLP
FINDSCC_NEXT:
        POP     AF
        POP     HL
        INC     HL
        INC     A
        CP      4
        JR      C,FINDSCC_LP

FINDSCC_END:
        ;enable SCC (hope subslot settings will remain)
        LD      A,(SCCID)
        LD      H,#80
        CALL    ENASLT
        LD      A,#3F
        LD      (#9000),A
        LD      A,(#F343)
        LD      H,#80
        JP      ENASLT

SCCTEST:
        ;In: A = SLOT ID
        LD      (SCCSRCID),A
        LD      H,#80
        CALL    ENASLT
        DI
        LD      A,(#9000)
        LD      (SCCSAV9000),A
        LD      A,#3F
        LD      (#9000),A
        LD      HL,#9800
        LD      DE,SCCSAVBUF
        LD      BC,#0010
        LDIR
        LD      HL,SCCTSTTXT
        LD      DE,#9800
        LD      BC,#0010
        LDIR
        CALL    SCCTSTMATCH
        JR      NZ,SCCTSTEND
        XOR     A
        LD      (#9000),A
        CALL    SCCTSTMATCH
        JR      Z,SCCTSTEND
        ;found one!
        LD      A,(SCCSRCID)
        LD      (SCCID),A
SCCTSTEND:
        LD      HL,SCCSAVBUF
        LD      DE,#9800
        LD      BC,#0010
        LDIR
        LD      A,(SCCSAV9000)
        LD      (#9000),A
        EI
        RET

SCCTSTMATCH:
        LD      HL,SCCTSTTXT
        LD      DE,#9800
        LD      B,#10
SCCTSTMATCHLP:
        LD      A,(DE)
        CP      (HL)
        RET     NZ
        INC     HL
        INC     DE
        DJNZ    SCCTSTMATCHLP
        ; Note: Z flag is set because DJNZ ended
        RET

SCCTSTTXT:      DB      "SCC SEARCH TEXT!"


SCCID:  DB  0   ;Default: none

; Temporary storage, initial value irrelevant:
SCCSRCID:       DB      0
SCCSAV9000:     DB      0
SCCSAVBUF:      DS      16

=====

Not the most elegant piece of code I ever wrote, but it works.

The call to SNSMAT is an inter slot call, because the BIOS is not present. 

Bye,
                Maarten


****
Problems? contact [EMAIL PROTECTED] See also http://www.faq.msxnet.org/
****

Reply via email to