home *** CD-ROM | disk | FTP | other *** search
- ; ******* TARGET *******
- ;
- ;A VIDEO TARGET SHOOTING GAME USING THE SOL VIDEO TERMINAL
- ;
- ;
- ;
- ORG 0000H
- ;
- GLOC EQU 0CDC0H ;LOCATION OF GUN SYMBOL
- TLOC EQU 0CFFFH ;INITIAL TARGET LOCATION
- VDM EQU 0FEH ;VDM SETUP PORT
- WIN EQU 0CFCDH
- LOSE EQU 0CFC4H
- UPSYM EQU 5EH
- MLOC EQU 0CDC1H ;MISSLE LOCATION
- MSYM EQU 2DH ;MISSILE SYMBOL
- TARGET EQU 5EH ;TARGET SYMBOL
- ;
- ;
- INIT: LXI SP,0CBFFH
- CALL SINT
- LXI H,GLOC
- MVI M,05H ;GUN SYMBOL
- LXI H,TLOC ;INITIAL TARGET POSITION
- MVI M,TARGET ;TARGET UP ARROW
- XCHG
- LXI B,8000H
- XRA A
- OUT VDM
- LXI H,3030H ;ASCII ZERO
- SHLD WIN
- SHLD LOSE
- ;
- ;
- LOOP1: CALL INDEL
- RAR
- JC TSTEM
- ;
- ;
- INCTME: INR C
- MOV A,C
- CPI 24 ;MOVE TARGET EVERY 24TH TIME
- JNZ TSTMIS
- MVI C,0
- LDAX D
- CPI UPSYM
- MVI A,20H
- STAX D
- JNZ DOWN
- ;
- ;
- UP: MOV A,E
- SUI 64
- MOV E,A
- MOV A,D
- SBI 0
- MOV D,A
- CPI 0CCH
- JNZ STUP
- MOV A,E
- CPI 3FH
- JNZ STUP
- ;
- ;
- STDOWN: MVI A,0BH ;DOWN SYMBOL
- STAX D
- JMP TSTMIS
- ;
- ;
- DOWN: MOV A,E
- ADI 64
- MOV E,A
- MOV A,D
- ACI 0
- MOV D,A
- CPI 0CFH
- JNZ STDOWN
- MOV A,E
- CPI 0FFH
- JNZ STDOWN
- ;
- ;
- STUP: MVI A,UPSYM
- STAX D
- TSTMIS: MOV A,B
- RLC
- JC LOOP1
- MVI M,' '
- INX H
- MOV A,L
- CPI 0FFH
- JZ TSTHIT
- MVI M,2DH
- JMP LOOP1
- ;
- ;
- TSTHIT: MOV A,M
- CPI 20H
- JZ NOHIT
- ;
- ;
- HIT: MVI M,084H
- LXI H,WIN+1
- CALL INCR
- PUSH H
- MVI L,0FFH
- MVI H,08FH
- WAIT: DCR L
- JNZ WAIT
- DCR H
- JNZ WAIT
- POP H
- JMP ENABLE
- ;
- ;
- NOHIT: LXI H,LOSE+1
- CALL INCR
- ;
- ;
- ENABLE: MVI B,80H
- JMP LOOP1
- ;
- ;
- INCR: MOV A,M
- CALL INCR1
- CPI 30H
- RNZ
- DCX H
- MOV A,M
- INCR1: INR A
- DAA
- ORI 30H
- ANI 3FH
- MOV M,A
- RET
- ;
- ;
- TSTEM: MOV A,B
- RLC
- JNC INCTME
- MOV B,A
- LXI H,MLOC
- MVI M,MSYM
- JMP INCTME
- ;
- ;
- INDEL: PUSH H
- LXI H,0FFH
- ;
- ;
- DELAY: DCR L
- PUSH H
- POP H
- JNZ DELAY
- IN 0FAH
- CMA
- MOV H,A
- IN 0FCH
- MOV A,H
- POP H
- RET
- ;
- ;
- SINT: LXI H,0CC00H
- SB: MVI M,' '
- INX H
- MOV A,H
- CPI 0D0H
- JNZ SB
- RET
- END
-