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 / CPMUG015.ARK / TARGET.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  172 lines

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