buckoka

what

Mar 4th, 2022
2,157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $eject
  2. main:   retad   main        ;main loop
  3.     tst kyflag
  4.     jnz ertst       ;test timeout error
  5.     call    keytst
  6.     jnz main0       ;no
  7.     lda clock
  8.     adi 100
  9.     jnz nzero
  10.     inr a
  11. nzero:  sta kyflag      ;set 40ms error delay
  12. main0:  di
  13.     tst bbsyf
  14.     jnz sendnw      ;only play control
  15.     tst commf       ;valid command?
  16.     jm  comexe      ;execute new command
  17.     call    keytst      ;test "open" key
  18.     jz  keyon
  19.     call    sstat       ;no valid status
  20. sendnw: ei
  21.     lhld    searr       ;search & play routines
  22.     pchl            ;branch
  23.  
  24. ertst:  lda clock
  25.     lxi h,kyflag
  26.     cmp m
  27.     jnz main0
  28.     mvi m,0     ;timeout, reset timer
  29.     di
  30.     jmp keyon
  31.  
  32. sstat:  tst stval       ;test status valid
  33.     rnz
  34.     tst playd
  35.     rnz         ;play disabled
  36.     fifost  sfifo       ;test status fifo
  37.     rz          ;empty
  38.     rdff    sfifo       ;read next status
  39.     mov c,a
  40.     ani 3
  41.     sta modeb
  42.     mov a,c
  43.     ani daterr
  44.     ori dready      ;set data ready
  45.     sta status      ;write status
  46.     mvi a,1
  47.     sta stval       ;set status valid flag
  48.     ret
  49.  
  50.     mark
  51. keytst: lda inerr
  52.     ani key
  53.     ret
  54. $eject
Advertisement
Add Comment
Please, Sign In to add comment