; ; Program for reading the VAUS arkanoid paddle ; ; danjovic@hotmail.com ; http://hotbit.blogspot.com ; ; License: GNU GPL 2.0 ; ; ######################### T1MS3MHZ: EQU 109 CHPUT: EQU 0A2H CHSNS: EQU 09CH ; ; ; ############################# ; ORG 0A000H LD A,"#" CALL CHPUT MAINLOOP: DI ; GENERATE PULSE LD A,0FH OUT (0A0H),A LD A,1FH OUT (0A1H),A ; PINO8 HIGH ; WAIT 16MS LD B,16 CALL WAITMS LD A,0FH OUT (0A1H),A ; PINO8 LOW LD A,1FH OUT (0A1H),A ; PINO8 HIGH LD B,16 CALL WAITMS ; READ BYTES LD A,0EH OUT (0A0H),A IN A,(0A2H) ; Read the first bit LD H,A ; and store in H LD B,08H ; 8 BITS LD C,00H LD E,00H NEXTBIT: LD A,0FH OUT (0A0H),A LD A,1EH OUT (0A1H),A ; CLOCK LOW LD A,1FH OUT (0A1H),A ; CLOCK HIGH LD A,0EH OUT (0A0H),A IN A,(0A2H) LD E,A SRL A ; LÊ BIT RL C ; ARMAZENA EM C DJNZ NEXTBIT ; PRÓXIMO BIT LD L,C ; ls bits ld a,h ; MS bit and 01h ld h,a ; PRINT VALUE CALL DISPHL LD A,13 ; CALL CHPUT LD A,10 ; CALL CHPUT ; CHECK FOR END CALL CHSNS JR Z,MAINLOOP LD A,"!" CALL CHPUT RET ; WAIT B milisseconds WAITMS: CALL WAIT1MS DJNZ WAITMS WAIT1MS: PUSH HL PUSH AF LD HL,T1MS3MHZ WAIT1: DEC HL LD A,H OR L JR NZ,WAIT1 POP AF POP HL RET ; ;NUMBER IN HL TO DECIMAL ASCII ;THANKS TO Z80 BITS ;INPUTS: HL = NUMBER TO ASCII ;EXAMPLE: HL=300 OUTPUTS '00300' ;DESTROYS: AF, BC, HL, DE USED DISPHL: LD BC,-10000 CALL NUM1 LD BC,-1000 CALL NUM1 LD BC,-100 CALL NUM1 LD C,-10 CALL NUM1 LD C,-1 NUM1: LD A,'0'-1 NUM2: INC A ADD HL,BC JR C,NUM2 SBC HL,BC CALL CHPUT RET ZEND: