home *** CD-ROM | disk | FTP | other *** search
- ; ******* BEASTIE *******
- ;
- ; THE BOUNCING BEASTIE--
- ; A RANDOM WALKER FOR THE SOL
- ; COMPUTER TERMINAL
- ;
- ;
- ;
- VDM EQU 0FEH
- DISP EQU 0CC00H
- ;
- ORG 0000H
- ;
- ;INITIALIZE SOL VIDEO DISPLAY
- ;
- LXI SP,AR+6
- MVI A,0
- OUT VDM
- AG: LXI H,DISP
- ST: MVI M,' '
- INX H
- MOV A,H
- CPI 0D0H
- JNZ ST
-
- ;
- ;START BEASTIE IN CENTER OF SCREEN
- ;
- N1: LXI H,0CE20H
- N2: MVI M,7
- ;
- ;DELAY ROUTINE TO SLOW DOWN ACTION
- ;
- N4: MOV A,B
- ANI 3
- JZ N5
- LXI B,1FFFH
- JMP N3
- N5: LXI B,0FFFH
- N3: DCX B
- MOV A,B
- CPI 07H
- JNZ N3
- ;LEAVE A TRAIL BEHIND
- MVI M,'.'
- CALL RND
- ;
- ;MOVE ROUTINE
- ;
- MOV B,A
- ANI 1
- CNZ UP
- MOV A,B
- ANI 2
- CNZ DN
- MOV A,B
- ANI 40H
- CNZ RT
- MOV A,B
- ANI 80H
- CNZ LF
- JMP N2
- ;
- ;MOVE RIGHT ROUTINE
- ;
- RT: INX H
- MOV A,H
- CPI 0D0H
- RNZ
- MVI H,0CCH
- RET
- ;
- ;MOVE LEFT ROUTINE
- ;
- LF: DCX H
- MOV A,H
- CPI 0CBH
- RNZ
- MVI H,0CFH
- RET
- ;
- ;MOVE UP ROUTINE
- ;
- UP: LXI D,0FFC0H
- DAD D
- MOV A,H
- ANI 0FBH
- ORI 0CH
- MOV H,A
- RET
- ;
- ;MOVE DOWN ROUTINE
- ;
- DN: LXI D,40H
- DAD D
- MOV A,H
- ANI 0C7H
- ORI 0CH
- MOV H,A
- RET
- ;
- ;RANDOM NUMBER GENERATOR
- ;
- RND: PUSH H
- LXI H,SH+3
- MVI B,8
- MOV A,M
- RTOP: RLC
- RLC
- RLC
- XRA M
- RAL
- RAL
- DCR L
- DCR L
- DCR L
- MOV A,M
- RAL
- MOV M,A
- INR L
- MOV A,M
- RAL
- MOV M,A
- INR L
- MOV A,M
- RAL
- MOV M,A
- INR L
- MOV A,M
- RAL
- MOV M,A
- DCR B
- JNZ RTOP
- POP H
- RET
- ;
- ;
- SH DB 128,4,37,212
- AR DS 6
- END
-