home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG029.ARK / TARGET.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  204 lines

  1. ;    ******* TARGET *******
  2. ;
  3. ;A VIDEO TARGET SHOOTING GAME USING THE SOL VIDEO TERMINAL
  4. ;
  5. ;MODIFIED 6/2/78 FOR CP/M AND VDM
  6. ;
  7. ;
  8.     ORG    100H
  9. ;
  10. ;*****
  11. ; OBTAIN BIOS VECTORS
  12. ;*****
  13. VECTRS:    JMP    GETVEC
  14.     DS    42
  15. WBOOTE    EQU    VECTRS+3
  16. CSTS    EQU    VECTRS+6
  17. CI    EQU    VECTRS+9
  18. CO    EQU    VECTRS+12
  19. LO    EQU    VECTRS+15
  20. PO    EQU    VECTRS+18
  21. RI    EQU    VECTRS+21
  22. HOME    EQU    VECTRS+24
  23. SELDSK    EQU    VECTRS+27
  24. SETTRK    EQU    VECTRS+30
  25. SETSEC    EQU    VECTRS+33
  26. SETDMA    EQU    VECTRS+36
  27. READ    EQU    VECTRS+39
  28. WRITE    EQU    VECTRS+42
  29. GETVEC:    LXI    D,WBOOTE
  30.     LHLD    1
  31.     MVI    B,42
  32. GETVE1:    MOV    A,M
  33.     STAX    D
  34.     INX    H
  35.     INX    D
  36.     DCR    B
  37.     JNZ    GETVE1
  38. ;
  39. GLOC    EQU    0CDC0H        ;LOCATION OF GUN SYMBOL
  40. TLOC    EQU    0CFFFH        ;INITIAL TARGET LOCATION
  41. VDM    EQU    0C8H        ;VDM SETUP PORT
  42. WIN    EQU    0CFCDH
  43. LOSE    EQU    0CFC4H
  44. UPSYM    EQU    5EH
  45. MLOC    EQU    0CDC1H        ;MISSLE LOCATION
  46. MSYM    EQU    2DH        ;MISSILE SYMBOL
  47. TARGET    EQU    5EH        ;TARGET SYMBOL
  48. ;
  49. ;
  50. INIT:    LHLD    6
  51.     DCX    H
  52.     SPHL
  53.     CALL    SINT
  54.     LXI    H,GLOC
  55.     MVI    M,05H        ;GUN SYMBOL
  56.     LXI    H,TLOC        ;INITIAL TARGET POSITION
  57.     MVI    M,TARGET        ;TARGET UP ARROW
  58.     XCHG
  59.     LXI    B,8000H
  60.     XRA    A
  61.     OUT    VDM
  62.     LXI    H,3030H        ;ASCII ZERO
  63.     SHLD    WIN
  64.     SHLD    LOSE
  65. ;
  66. ;
  67. LOOP1:    CALL    INDEL
  68.     RAR
  69.     JC    TSTEM
  70. ;
  71. ;
  72. INCTME:    INR    C
  73.     MOV    A,C
  74.     CPI    24        ;MOVE TARGET EVERY 24TH TIME
  75.     JNZ    TSTMIS
  76.     MVI    C,0
  77.     LDAX    D
  78.     CPI    UPSYM
  79.     MVI    A,20H
  80.     STAX    D
  81.     JNZ    DOWN
  82. ;
  83. ;
  84. UP:    MOV    A,E
  85.     SUI    64
  86.     MOV    E,A
  87.     MOV    A,D
  88.     SBI    0
  89.     MOV    D,A
  90.     CPI    0CCH
  91.     JNZ    STUP
  92.     MOV    A,E
  93.     CPI    3FH
  94.     JNZ    STUP
  95. ;
  96. ;
  97. STDOWN:    MVI    A,0BH        ;DOWN SYMBOL
  98.     STAX    D
  99.     JMP    TSTMIS
  100. ;
  101. ;
  102. DOWN:    MOV    A,E
  103.     ADI    64
  104.     MOV    E,A
  105.     MOV    A,D
  106.     ACI    0
  107.     MOV    D,A
  108.     CPI    0CFH
  109.     JNZ    STDOWN
  110.     MOV    A,E
  111.     CPI    0FFH
  112.     JNZ    STDOWN
  113. ;
  114. ;
  115. STUP:    MVI    A,UPSYM
  116.     STAX    D
  117. TSTMIS:    MOV    A,B
  118.     RLC
  119.     JC    LOOP1
  120.     MVI    M,' '
  121.     INX    H
  122.     MOV    A,L
  123.     CPI    0FFH
  124.     JZ    TSTHIT
  125.     MVI    M,2DH
  126.     JMP    LOOP1
  127. ;
  128. ;
  129. TSTHIT:    MOV    A,M
  130.     CPI    20H
  131.     JZ    NOHIT
  132. ;
  133. ;
  134. HIT:    MVI    M,084H
  135.     LXI    H,WIN+1
  136.     CALL    INCR
  137.     PUSH    H
  138.     MVI    L,0FFH
  139.     MVI    H,08FH
  140. WAIT:    DCR    L
  141.     JNZ    WAIT
  142.     DCR    H
  143.     JNZ    WAIT
  144.     POP    H
  145.     JMP    ENABLE
  146. ;
  147. ;
  148. NOHIT:    LXI    H,LOSE+1
  149.     CALL    INCR
  150. ;
  151. ;
  152. ENABLE:    MVI    B,80H
  153.     JMP    LOOP1
  154. ;
  155. ;
  156. INCR:    MOV    A,M
  157.     CALL    INCR1
  158.     CPI    30H
  159.     RNZ
  160.     DCX    H
  161.     MOV    A,M
  162. INCR1:    INR    A
  163.     DAA
  164.     ORI    30H
  165.     ANI    3FH
  166.     MOV    M,A
  167.     RET
  168. ;
  169. ;
  170. TSTEM:    MOV    A,B
  171.     RLC
  172.     JNC    INCTME
  173.     MOV    B,A
  174.     LXI    H,MLOC
  175.     MVI    M,MSYM
  176.     JMP    INCTME
  177. ;
  178. ;
  179. INDEL:    PUSH    H
  180.     LXI    H,0FFH
  181. ;
  182. ;
  183. DELAY:    DCR    L
  184.     PUSH    H
  185.     POP    H
  186.     JNZ    DELAY
  187.     CALL    CSTS
  188.     ORA    A
  189.     JZ    DELAY1
  190.     CALL    CI
  191.     MVI    A,0FFH
  192. DELAY1:    POP    H
  193.     RET
  194. ;
  195. ;
  196. SINT:    LXI    H,0CC00H
  197. SB:    MVI    M,' '
  198.     INX    H
  199.     MOV    A,H
  200.     CPI    0D0H
  201.     JNZ    SB
  202.     RET
  203. END
  204.