Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $eject
- main: retad main ;main loop
- tst kyflag
- jnz ertst ;test timeout error
- call keytst
- jnz main0 ;no
- lda clock
- adi 100
- jnz nzero
- inr a
- nzero: sta kyflag ;set 40ms error delay
- main0: di
- tst bbsyf
- jnz sendnw ;only play control
- tst commf ;valid command?
- jm comexe ;execute new command
- call keytst ;test "open" key
- jz keyon
- call sstat ;no valid status
- sendnw: ei
- lhld searr ;search & play routines
- pchl ;branch
- ertst: lda clock
- lxi h,kyflag
- cmp m
- jnz main0
- mvi m,0 ;timeout, reset timer
- di
- jmp keyon
- sstat: tst stval ;test status valid
- rnz
- tst playd
- rnz ;play disabled
- fifost sfifo ;test status fifo
- rz ;empty
- rdff sfifo ;read next status
- mov c,a
- ani 3
- sta modeb
- mov a,c
- ani daterr
- ori dready ;set data ready
- sta status ;write status
- mvi a,1
- sta stval ;set status valid flag
- ret
- mark
- keytst: lda inerr
- ani key
- ret
- $eject
Advertisement
Add Comment
Please, Sign In to add comment