home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug015.ark / BEASTIE.ASM < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  1.4 KB  |  141 lines

  1. ;    ******* BEASTIE *******
  2. ;
  3. ;    THE BOUNCING BEASTIE--
  4. ;        A RANDOM WALKER FOR THE SOL
  5. ;            COMPUTER TERMINAL
  6. ;
  7. ;
  8. ;
  9. VDM    EQU    0FEH
  10. DISP    EQU    0CC00H
  11. ;
  12.     ORG    0000H
  13. ;
  14. ;INITIALIZE SOL VIDEO DISPLAY
  15. ;
  16.     LXI    SP,AR+6
  17.     MVI    A,0
  18.     OUT    VDM
  19. AG:    LXI    H,DISP
  20. ST:    MVI    M,' '
  21.     INX    H
  22.     MOV    A,H
  23.     CPI    0D0H
  24.     JNZ    ST
  25.  
  26. ;
  27. ;START BEASTIE IN CENTER OF SCREEN
  28. ;
  29. N1:    LXI    H,0CE20H
  30. N2:    MVI    M,7
  31. ;
  32. ;DELAY ROUTINE TO SLOW DOWN ACTION
  33. ;
  34. N4:    MOV    A,B
  35.     ANI    3
  36.     JZ    N5
  37.     LXI    B,1FFFH
  38.     JMP    N3
  39. N5:    LXI    B,0FFFH
  40. N3:    DCX    B
  41.     MOV    A,B
  42.     CPI    07H
  43.     JNZ    N3
  44. ;LEAVE A TRAIL BEHIND
  45.     MVI    M,'.'
  46.     CALL    RND
  47. ;
  48. ;MOVE ROUTINE
  49. ;
  50.     MOV    B,A
  51.     ANI    1
  52.     CNZ    UP
  53.     MOV    A,B
  54.     ANI    2
  55.     CNZ    DN
  56.     MOV    A,B
  57.     ANI    40H
  58.     CNZ    RT
  59.     MOV    A,B
  60.     ANI    80H
  61.     CNZ    LF
  62.     JMP    N2
  63. ;
  64. ;MOVE RIGHT ROUTINE
  65. ;
  66. RT:    INX    H
  67.     MOV    A,H
  68.     CPI    0D0H
  69.     RNZ
  70.     MVI    H,0CCH
  71.     RET
  72. ;
  73. ;MOVE LEFT ROUTINE
  74. ;
  75. LF:    DCX    H
  76.     MOV    A,H
  77.     CPI    0CBH
  78.     RNZ
  79.     MVI    H,0CFH
  80.     RET
  81. ;
  82. ;MOVE UP ROUTINE
  83. ;
  84. UP:    LXI    D,0FFC0H
  85.     DAD    D
  86.     MOV    A,H
  87.     ANI    0FBH
  88.     ORI    0CH
  89.     MOV    H,A
  90.     RET
  91. ;
  92. ;MOVE DOWN ROUTINE
  93. ;
  94. DN:    LXI    D,40H
  95.     DAD    D
  96.     MOV    A,H
  97.     ANI    0C7H
  98.     ORI    0CH
  99.     MOV    H,A
  100.     RET
  101. ;
  102. ;RANDOM NUMBER GENERATOR
  103. ;
  104. RND:    PUSH    H
  105.     LXI    H,SH+3
  106.     MVI    B,8
  107.     MOV    A,M
  108. RTOP:    RLC
  109.     RLC
  110.     RLC
  111.     XRA    M
  112.     RAL
  113.     RAL
  114.     DCR    L
  115.     DCR    L
  116.     DCR    L
  117.     MOV    A,M
  118.     RAL
  119.     MOV    M,A
  120.     INR    L
  121.     MOV    A,M
  122.     RAL
  123.     MOV    M,A
  124.     INR    L
  125.     MOV    A,M
  126.     RAL
  127.     MOV    M,A
  128.     INR    L
  129.     MOV    A,M
  130.     RAL
  131.     MOV    M,A
  132.     DCR    B
  133.     JNZ    RTOP
  134.     POP    H
  135.     RET
  136. ;
  137. ;
  138. SH    DB    128,4,37,212
  139. AR    DS    6
  140. END
  141.