在R0中获取,在R4中获取指向输出缓冲区的指针。将所有匹配的字符写入缓冲区,并使用NUL标记结果的结尾。N
ROMW 10 ; use 10-bit ROM width
ORG $4800 ; map this program at $4800
;; ------------------------------------------------------------- ;;
;; test code ;;
;; ------------------------------------------------------------- ;;
4800 EIS ; enable interrupts
4801 MVII #$103, R4 ; set the output buffer at $103 (8-bit RAM)
4803 MVII #2, R0 ; test with N = 2
4805 CALL getChars ; invoke our routine
4808 MVII #$103, R4 ; R4 = pointer into the output buffer
480A MVII #$215, R5 ; R5 = backtab pointer
480C draw MVI@ R4, R0 ; read R0 from the buffer
480D SLL R0, 2 ; R0 *= 8
480E SLL R0
480F BEQ done ; stop if it's zero
4811 ADDI #7-256, R0 ; draw it in white
4815 MVO@ R0, R5
4816 B draw ; go on with the next entry
4818 done DECR R7 ; loop forever
;; ------------------------------------------------------------- ;;
;; routine ;;
;; ------------------------------------------------------------- ;;
getChars PROC
4819 MVII #32, R1 ; start with R1 = 32
481B @loop MOVR R1, R3 ; copy R1 to R3
481C CLRR R2 ; clear R2
481D SETC ; start with the carry set
481E @count ADCR R2 ; add the carry to R2
481F SARC R3 ; shift R3 to the right (the least
; significant bit is put in the carry)
4820 BNEQ @count ; loop if R3 is not zero
4822 CMPR R2, R0 ; if R2 is equal to R0 ...
4823 BNEQ @next
4825 MVO@ R1, R4 ; ... write R1 to the output buffer
4826 @next INCR R1 ; advance to the next character
4827 CMPI #127, R1 ; and loop until 127 is reached
4829 BLT @loop
482B MVO@ R3, R4 ; write NUL to mark the end of the output
482C JR R5 ; return
ENDP
N = 2的输出
注意:圆括号看起来很像Intellivision字体中的圆括号。不过,两个字符是不同的。

jzIntv的屏幕截图
1. CP-1610操作码使用10位值(称为“ DECLE”)进行编码。该例程的长度为20 DECLE,起始于$ 4819,结束于$ 482C(包括)。
63vs?)使用它们?