Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. tks = 177560
  2. tkb = 177562
  3. tps = 177564
  4. tpb = 177566
  5. .=torg+1000
  6. Board: .word 0, 2, 0, 2, 0, 2, 0, 2
  7. .word 2, 0, 2, 0, 2, 0, 2, 0
  8. .word 0, 2, 0, 2, 0, 2, 0, 2
  9. .word 0, 0, 0, 0, 0, 0, 0, 0
  10. .word 0, 0, 0, 0, 0, 0, 0, 0
  11. .word 1, 0, 1, 0, 1, 0, 1, 0
  12. .word 0, 1, 0, 1, 0, 1, 0, 1
  13. .word 1, 0, 1, 0, 1, 0, 1, 0
  14. main:
  15. ; inc @#tks ; RE = 1
  16. ; in: tstb @#tks ; While ( there is no input)
  17. ; bpl in ; wait for input
  18. ; movb @#tkb, r1 ; R1 = input character
  19. mov r1,-(sp);saving environment
  20. mov r2,-(sp);saving environment
  21. clr r1;index in board
  22. clr r2;index in row
  23. p_row:;loop for printing every single row
  24. tstb @#tps ; while ( the printer is busy )
  25. bpl p_row ; wait for printer to be ready
  26.  
  27. cmp Board(r1),#1
  28. beq print_w
  29.  
  30. cmp Board(r1),#2
  31. beq print_b
  32.  
  33. cmp Board(r1),#0
  34. beq print_empt
  35.  
  36. print_w:
  37. mov wite_wrd,@#tpb ; print white
  38. jmp next_cell
  39.  
  40. print_b:
  41. mov blk_wrd,@#tpb ; print black
  42. jmp next_cell
  43.  
  44. print_empt:
  45. mov emp_wrd,@#tpb ; print empty cell
  46. jmp next_cell
  47.  
  48. next_cell:
  49. inc r2;next cell in row
  50. add #2,r1;
  51. cmp r1,#200;end of board
  52. beq finish
  53. cmp r2,#10;last cell in row
  54. beq nxt_row;
  55. jmp p_row
  56.  
  57.  
  58. nxt_row:
  59. tstb @#tps ; while ( the printer is busy )
  60. bpl nxt_row ; wait for printer to be ready
  61. movb strt_lin,@#tpb;
  62. prp_out2:
  63. tstb @#tps ; while ( the printer is busy )
  64. bpl prp_out2 ; wait for printer to be ready
  65. movb new_line,@#tpb ; print new line
  66. clr r2;
  67. jmp p_row
  68.  
  69.  
  70.  
  71.  
  72. finish:
  73. mov(sp)+,r2;saving environment
  74. mov(sp)+,r1;saving environment
  75. halt
  76. ;out: tstb @#tps ; while ( the printer is busy )
  77. ;bpl out ; wait for printer to be ready
  78. ;movb Board(r1),@#tpb ; print R1
  79. ;bic mask1, r1 ; Clear irrelevant bits (high byte)
  80. ; cmpb r1, end ; if ( r1 == ‘\r’ )
  81. ; bne main ; go to sof
  82.  
  83. ; sof:
  84. ; tstb @#tps ; while ( the printer is busy )
  85. ; bpl sof ; wait for printer to be ready
  86. ;
  87. ; mov new_line, @#tpb
  88. ; jmp main
  89. ; halt
  90. ;halt ; Stop the program
  91. strt_lin: .ascii<\r>
  92. .even
  93. new_line: .ascii <\n>
  94. .even
  95. wite_wrd: .ascii <W>
  96. .even
  97. blk_wrd: .ascii<B>
  98. .even
  99. emp_wrd: .ascii<_>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement