News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

catcorp

Started by catcorp, 10:12, 25 February 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

catcorp

        org 5000
        di
        ld b,4
        ld ix,6000
loop        push bc   
        ld de,4
        ld a,255
        scf
        call load
        ld de,8972
        ld a,255
        scf
        call load
        pop bc
        djnz loop
        call key_press
        ld ix,6000
        ld b,4
loop2        push bc
        ld de,4
        ld a,255
        call save
        dec ix
        ld de,8972
        ld a,255
        call save
        pop bc
        dec ix
        djnz loop2
        jp 0
load        ld bc,#f610
        out (c),c
    EXX
    LD BC,#F500
    LD HL,#7FF5
    EXX
    LD BC,#F792
    OUT (C),C
    DEC B
    LD C,#10
    OUT (C),C
    INC D
    EX AF,AF'
    DEC D
    LD BC,#7F10
    OUT (C),C
    LD C,#4B
    OUT (C),C
    EXX
    IN A,(C)
    EXX
    RRA
    AND #40
    OR #02
    LD C,A
    CP A
L8897:    RET NZ
L8898:    CALL L891F
    JR NC,L8897
    LD HL,#0415
L88A0:    DJNZ L88A0
    DEC HL
    LD A,H
    OR L
    JR NZ,L88A0
    CALL L891B
    JR NC,L8897
L88AC:    LD B,#9C
    CALL L891B
    JR NC,L8897
    LD A,#C6
    CP B
    JR NC,L8898
    INC H
    JR NZ,L88AC
L88BB:    LD B,#C9
    CALL L891F
    JR NC,L8897
    LD A,B
    CP #D4
    JR NC,L88BB
    CALL L891F
    RET NC
    LD A,C
    XOR #07
    LD C,A
    LD H,#00
    LD B,#B0
    JR L88F4
L88D5:    EX AF,AF'
    JR NZ,L88DF
    JR NC,L88E9
    LD (IX+#00),L
    JR L88EE
L88DF:    RL C
    XOR L
    RET NZ
    LD A,C
    RRA
    LD C,A
    INC DE
    JR L88F0
L88E9:    LD A,(IX+#00)
    XOR L
    RET NZ
L88EE:    INC IX
L88F0:    DEC DE
    EX AF,AF'
    LD B,#B2
L88F4:    LD L,#01
L88F6:    CALL L891B
    RET NC
    LD A,#CB
    CP B
    RL L
    LD B,#B0
    JP NC,L88F6
    LD A,H
    XOR L
    LD H,A
    LD A,D
    OR E
    JR NZ,L88D5
    LD BC,#7F00
    LD A,#54
    OUT (C),A
    LD BC,#F782
    OUT (C),C
    LD A,H
    CP #01
    RET
L891B:    CALL L891F
    RET NC
L891F:    LD A,#16
L8921:    DEC A
    JR NZ,L8921
    AND A
L8925:    INC B
    RET Z
    EXX
    IN A,(C)
    EXX
    RRA
    XOR C
    AND #40
    JR Z,L8925
    LD A,C
    XOR #41
    LD C,A
    OR #40
    EXX
    LD B,H
    OUT (C),A
    LD B,L
    EXX
    SCF
    RET   
save        push af
        ld a,#10
        ld bc,#f600
        out (c),a
        ld hl,3224
_pause         djnz _pause
        dec hl
        ld a,h
        or l
        jr nz,_pause
        di
        pop af
        ex af,af'
        ld hl,3224
        inc de
        dec ix
        ld a,#30
        ld b,a
sa_leader       djnz sa_leader
        ld b,#f6
        out (c),a
        xor #20
        ld b,#a4
        dec l
        jr nz,sa_leader
        dec b
        dec h
        jp p,sa_leader
        ld b,#2f   
sa_sync_1     djnz sa_sync_1
        ld b,#f6
        out (c),a
        ld a,#10
        ld b,#37
sa_sync_2    djnz sa_sync_2
        ld b,#f6
        out (c),a
        ld b,#3b
        ex af,af'
        ld l,a
        jp sa_start
sa_loop        ld a,d
        or e
        jr z,sa_parity
        ld l,(ix+0)
sa_loop_p    ld a,h
        xor l
sa_start    ld h,a
        scf
        jp sa_8_bits
sa_parity    ld l,h
        jr sa_loop_p
sa_bit_2      ld a,#10
        bit 7,a
sa_bit_1    djnz sa_bit_1
        jr nc,sa_out
        ld b,#42
sa_set        djnz sa_set
sa_out        ld b,#f6
        out (c),a
        ld b,#3e
        jr nz,sa_bit_2
        dec b
        and a
sa_8_bits    rl l
        ld a,#30
        jr nz,sa_bit_1
        dec de
        inc ix
        ld b,#31
        ld a,d
        inc a
        jp nz,sa_loop
        ld b,#f6
        out (c),a
        ld b,#38
sa_delay     djnz sa_delay
        xor a
        ld bc,#f600
        out (c),a
        ret
key_press    ld b,&f5
.v1         in a,(c)
        rra
        jr nc,v1
        call read_matrix
        ld a,(matrix_buffer+2)
        bit 2,a
        jr z,key_press
        ret
.read_matrix     ld hl,matrix_buffer       
        ld bc,&f40e               
        out (c),c
        ld b,&f6
        in a,(C)
        and &30
        ld c,A
        or &C0                     
        out (c),a                 
        out (c),c                 
        inc b
        ld a,&92
        out (c),a                                           
        push bc
        set 6,c                   
.scan_key     ld b,&f6
        out (c),c                 
        ld b,&f4                 
        in a,(c)     
        cpl                       
        ld (hl),a                 
        inc hl                   
        inc c                     
        ld a,c
        and &0f
        cp &0a                   
        jr nz,scan_key           
        pop bc
        ld a,&82                 
        out (c),a
        dec b
        out (c),c                 
        ret
.matrix_buffer    defs 10 


Edited: Put the code into code tags

Kris

Does anyone already try to compile this ?

Joseman

#2
A tape loader for something and to save this something again?

Powered by SMFPacks Menu Editor Mod