Listing of file='TEST2.MAC;10' on disk='vmedia/sound_light_pen-sector.ccvf'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; LIGHT-PEN DRAWING PROGRAM ; ; USE THE PEN TO DEFINE POINTS WHERE AN ASTERISK WILL ; BE PLACED. IF AN ASTERISK IS ALREADY THERE, IT WILL ; BE REMOVED. ; EXTRN JMPVEC,CO,OSTR,LTPEN,XYADDR PLUS EQU '+' STAR EQU '*' KBCHA EQU 81FEH READY EQU 81FFH TEST: LXI H,0 DAD SP SHLD FCSSP LXI SP,STACK CALL JMPVEC ;SETUP FOR I/O XRA A STA KBCHA STA READY LXI H,STMSG ;PRINT INSTRUCTIONS CALL OSTR T5: LDA KBCHA ;WAIT FOR USER TO READ THEM ORA A JZ T5 XRA A STA KBCHA STA READY LXI H,FILLSC ;FILL SCREEN WITH PLUS SIGNS CALL OSTR T10: CALL LTPEN ;READ PEN PUSH B CALL XYADDR ;GET REFRESH RAM ADDRESS MOV A,M CPI STAR ;SEE IF A STAR JZ T15 ;YES MVI M,STAR ;NO, STORE ONE INX H MVI M,1 ;MAKE IT RED JMP D1 T15: MVI M,PLUS ;STORE A PLUS SIGN INX H MVI M,2 ;AND MAKE IT GREEN D1: LXI H,0A000H D2: DCR L ;WASTE TIME TO AVOID JNZ D2 ; ACCIDENTALLY INITIATING DCR H ; ANOTHER SCAN JNZ D2 JMP T10 FIN: LHLD FCSSP SPHL MVI B,0 RET ; ; INSTRUCTIONS ; STMSG: DB 14,6,3,12,29 DB 'LIGHT-PEN DRAWING PROGRAM' DB 15,13,10,10,6,6 DB 'THE SENSITIVITY MUST BE ADJUSTED SO THAT THE' DB ' PEN',13,10 DB 'RESPONDS CORRECTLY. A RED ASTERISK SHOULD' DB ' APPEAR',13,10 DB 'ON THE SCREEN WHERE YOU POINT THE PEN WHEN' DB ' YOU',13,10 DB 'PRESS THE PUSH-BUTTON.',13,10 DB 'YOU MUST WAIT FOR THE CYAN SCREEN SCAN TO' DB ' FINISH',13,10 DB 'BEFORE MOVING THE PEN.',13,10 DB 'THE ASTERISKS CAN BE REMOVED BY USING THE' DB ' PEN',13,10 DB 'ON THEM.',13,10,10 DB 'ALL KEYS ARE FUNCTIONAL THE SAME AS IN CRT' DB ' MODE,',13,10 DB 'INCLUDING <ERASE PAGE>, CURSOR KEYS, ETC.' DB 13,10,10 DB 'TO EXIT THE PROGRAM, HIT <AUTO>.',13,10,10 DB 'HIT <RETURN> WHEN READY ',239 FILLSC: DB 6,2,15,12,27,25,'+',239 FCSSP: DS 2 DS 100 STACK: DS 2 END TEST