Listing of file='LTPEN.MAC;1D' on disk='vmedia/sound_light_pen-sector.ccvf'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; LIGHT-PEN ROUTINE ; EXTRN CO,OSTR ENTRY LTPEN LTPEN: MVI A,27 CALL CO MVI A,24 CALL CO CALL SPULSE LXI H,6000H LXI D,BUF LT10: MOV A,M STAX D INX H INX D MOV A,H CPI 70H JNZ LT10 LXI H,FILL CALL OSTR CALL COORDS LXI H,6000H LXI D,BUF LT20: LDAX D MOV M,A INX H INX D MOV A,H CPI 70H JNZ LT20 RET FILL: DB 6,0,12,27,25,'+',8,239 SPULSE: MVI A,14 OUT 48 IN 48 CMA ANI 02 JZ SPULSE CALL DELAY CALL DELAY MVI A,14 OUT 48 IN 48 CMA ANI 02 RNZ JMP SPULSE COORDS: MVI D,6 MVI E,32 MVI A,78H ;=MOV A,B STA W3 CALL WRTEST PUSH PSW MVI D,5 MVI E,16 MVI A,79H ;=MOV A,C STA W3 CALL WRTEST MOV C,A POP PSW MOV B,A RET WRTEST: XRA A STA VALUE W1: LXI H,6FFFH MVI C,32 W2: MVI B,64 W3: MOV A,B DCR A ANA E MVI A,3 ;YELLOW JNZ W4 XRA A W4: MOV M,A DCX H DCX H DCR B JNZ W3 DCR C JNZ W2 MVI B,15 W5: MVI C,0FFH W6: CALL CHKPEN JZ OVER NOP NOP CALL CHKPEN JNZ W7 OVER: DCR C JNZ W6 DCR B JNZ W5 W7: CALL SAVPEN MOV A,E RRC MOV E,A DCR D JNZ W1 LDA VALUE RRC RET CHKPEN: MVI A,14 ;SELECT PORT 'A' ON THE AY-3-8910 OUT 48 IN 48 ;READ IT CMA ANI 04 RET SAVPEN: CPI 04 JNZ S1 MVI A,1 S1: MOV B,A LDA VALUE ORA B RLC STA VALUE RET VALUE: DB 0 DELAY: MVI C,0FFH D2: XRA A DCR C JNZ D2 RET BUF: DS 1000H END