X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=libsrc%2Fc64%2Fc64-vdc.s;h=be1626b1eb649c18cb3674f3af374f6e1a0df409;hb=577247df58f2cb3e2f57bcb662adace504b069a9;hp=5f3d9d9a723c06d1f0e3216ec241551a614d51b5;hpb=5010b8be45dbcb47db69f3e716238a08d91a729c;p=cc65 diff --git a/libsrc/c64/c64-vdc.s b/libsrc/c64/c64-vdc.s index 5f3d9d9a7..be1626b1e 100644 --- a/libsrc/c64/c64-vdc.s +++ b/libsrc/c64/c64-vdc.s @@ -3,6 +3,10 @@ ; (based on code by Ullrich von Bassewitz) ; Maciej 'YTM/Elysium' Witkowiak ; 06,20.12.2002 +; +; VDC test added by +; Marco van den Heuvel, 2010-01-22 +; .include "zeropage.inc" @@ -67,35 +71,49 @@ window: .res 256 ; memory window ; INSTALL: - ; do test for VDC presence here??? - - ldx #VDC_CSET ; determine size of RAM... - jsr vdcgetreg - sta tmp1 - ora #%00010000 - jsr vdcputreg ; turn on 64k - - jsr settestadr1 ; save original value of test byte - jsr vdcgetbyte - sta tmp2 - - lda #$55 ; write $55 here - ldy #ptr1 - jsr test64k ; read it here and there - lda #$aa ; write $aa here - ldy #ptr2 - jsr test64k ; read it here and there + ldx #0 + ldy #0 + lda #VDC_CSET ; determine size of RAM... + sta VDC_ADDR_REG + +@L0: bit VDC_ADDR_REG + bmi @present + inx + bne @L0 + iny + bne @L0 + lda #EM_ERR_NO_DEVICE + rts - jsr settestadr1 - lda tmp2 - jsr vdcputbyte ; restore original value of test byte - - lda ptr1 ; do bytes match? - cmp ptr1+1 - bne @have64k - lda ptr2 - cmp ptr2+1 - bne @have64k +@present: + ldx #VDC_CSET ; determine size of RAM... + jsr vdcgetreg + sta tmp1 + ora #%00010000 + jsr vdcputreg ; turn on 64k + + jsr settestadr1 ; save original value of test byte + jsr vdcgetbyte + sta tmp2 + + lda #$55 ; write $55 here + ldy #ptr1 + jsr test64k ; read it here and there + lda #$aa ; write $aa here + ldy #ptr2 + jsr test64k ; read it here and there + + jsr settestadr1 + lda tmp2 + jsr vdcputbyte ; restore original value of test byte + + lda ptr1 ; do bytes match? + cmp ptr1+1 + bne @have64k + lda ptr2 + cmp ptr2+1 + bne @have64k ldx #VDC_CSET lda tmp1