PUS . push bp ; push bp onto stack PUS
CMP . cmp dx, bx ; compare to the current paragraph CMP
INC . inc bx ; next search paragraph into bx INC
PUS . push cs ; move the current paragraph PUS
INC . inc bx ; next search paragraph into bx INC
POP . pop dx ; into dx (program segment) POP
RET . ret ; near return to TC RET
POP . pop dx ; and pop it into dx POP
INC . inc bx ; next search paragraph into bx INC
MOV . mov bp, sp ; move stack pointer into bp MOV
POP . pop dx ; into dx (program segment) POP
CLD . cld ; clear the direction flag CLD
INC . inc bx ; next search paragraph into bx INC
REP . rep stosw ; move zeros to CDA REP
CMP . cmp dx, bx ; compare to the current paragraph CMP
POP . pop dx ; and pop it into dx POP
REP . rep stosw ; move zeros to CDA REP
AND . and cx, cx ; all matched? AND
REP . rep cmpsb ; search 9 bytes REP
CLD . cld ; clear the direction flag CLD
JNE . jbe Exit1 ; and jump if not equal JNE
AND . and cx, cx ; all matched? AND
AND . and cx, cx ; all matched? AND
MOV . mov di, 00070h ; destin offset in di MOV
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov cx, 0096Fh ; word count in cx MOV
CLD . cld ; clear the direction flag CLD
CLD . cld ; clear the direction flag CLD
INC . inc bx ; next search paragraph into bx INC
XOR . xor ax, ax ; zero into ax (not found) XOR
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
XOR . xor ax, ax ; zero into ax (not found) XOR
MOV . mov di, 0005Dh ; destin offset in di MOV
PUS . push bp ; push bp onto stack PUS
MOV . mov cx, 00009h ; search length is 9 bytes MOV
JNE . jbe Exit1 ; and jump if not equal JNE
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov ax, es ; move CDA segment (found) into ax MOV
CLD . cld ; clear the direction flag CLD
INC . inc bx ; next search paragraph into bx INC
PUS . push bp ; push bp onto stack PUS
RET . ret ; near return to TC RET
JNE . jbe Exit1 ; and jump if not equal JNE
JNZ . jnz Srch1 ; go again if not matched JNZ
PUS . push bp ; save TC registers PUS
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
MOV . mov es, bx ; and into es MOV
POP . pop dx ; into dx (program segment) POP
AND . and cx, cx ; all matched? AND
INC . inc bx ; next search paragraph into bx INC
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
PUS . push bp ; save TC registers PUS
REP . rep stosw ; move zeros to CDA REP
MOV . mov es, bx ; and into es MOV
PUS . push cs ; move the current paragraph PUS
PUS . push bp ; save TC registers PUS
REP . rep cmpsb ; search 9 bytes REP
POP . pop dx ; and pop it into dx POP
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
MOV . mov cx, 00009h ; search length is 9 bytes MOV
AND . and cx, cx ; all matched? AND
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov di, 0005Dh ; destin offset in di MOV
MOV . mov bp, sp ; move stack pointer into bp MOV
JNZ . jnz Srch1 ; go again if not matched JNZ
PUS . push bp ; push bp onto stack PUS
AND . and cx, cx ; all matched? AND
PUS . push cs ; move the current paragraph PUS
PUS . push bp ; save TC registers PUS
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
PUS . push cs ; move the current paragraph PUS
REP . rep stosw ; move zeros to CDA REP
MOV . mov ax, es ; move CDA segment (found) into ax MOV
REP . rep cmpsb ; search 9 bytes REP
INC . inc bx ; next search paragraph into bx INC
CLD . cld ; clear the direction flag CLD
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
CLD . cld ; clear the direction flag CLD
MOV . mov cx, 0096Fh ; word count in cx MOV
MOV . mov cx, 0096Fh ; word count in cx MOV
POP . pop dx ; and pop it into dx POP
MOV . mov di, 00070h ; destin offset in di MOV
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov cx, 00009h ; search length is 9 bytes MOV
CLD . cld ; clear the direction flag CLD
POP . pop di ; restore TC registers POP
POP . pop dx ; and pop it into dx POP
MOV . mov di, 00070h ; destin offset in di MOV
RET . ret ; near return to TC RET
JNE . jbe Exit1 ; and jump if not equal JNE
XOR . xor ax, ax ; zero into ax (not found) XOR
RET . ret ; near return to TC RET
JNZ . jnz Srch1 ; go again if not matched JNZ
MOV . mov es, bx ; and into es MOV
JNZ . jnz Srch1 ; go again if not matched JNZ
CMP . cmp dx, bx ; compare to the current paragraph CMP
POP . pop dx ; and pop it into dx POP
POP . pop dx ; into dx (program segment) POP
POP . pop dx ; and pop it into dx POP
MOV . mov bp, sp ; move stack pointer into bp MOV
POP . pop dx ; into dx (program segment) POP
REP . rep stosw ; move zeros to CDA REP
PUS . push bp ; push bp onto stack PUS
MOV . mov es, bx ; and into es MOV
RET . ret ; near return to TC RET
PUS . push cs ; move the current paragraph PUS
MOV . mov cx, 00009h ; search length is 9 bytes MOV
JNE . jbe Exit1 ; and jump if not equal JNE
MOV . mov cx, 00009h ; search length is 9 bytes MOV
MOV . mov cx, 0096Fh ; word count in cx MOV
PUS . push cs ; move the current paragraph PUS
CMP . cmp dx, bx ; compare to the current paragraph CMP
POP . pop dx ; and pop it into dx POP
JNZ . jnz Srch1 ; go again if not matched JNZ
MOV . mov es, bx ; and into es MOV
CLD . cld ; clear the direction flag CLD
JNZ . jnz Srch1 ; go again if not matched JNZ
MOV . mov bp, sp ; move stack pointer into bp MOV
JNE . jbe Exit1 ; and jump if not equal JNE
MOV . mov di, 0005Dh ; destin offset in di MOV
PUS . push bp ; push bp onto stack PUS
POP . pop dx ; and pop it into dx POP
JNE . jbe Exit1 ; and jump if not equal JNE
 
 
 
 
 
MOV . mov cx, 00009h ; search length is 9 bytes MOV
POP . pop dx ; and pop it into dx POP
MOV . mov cx, 0096Fh ; word count in cx MOV
PUS . push bp ; save TC registers PUS
JNE . jbe Exit1 ; and jump if not equal JNE
INC . inc bx ; next search paragraph into bx INC
JNZ . jnz Srch1 ; go again if not matched JNZ
JNZ . jnz Srch1 ; go again if not matched JNZ
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov si, cda_id ; source offset in si MOV
POP . pop dx ; into dx (program segment) POP
MOV . mov cx, 0096Fh ; word count in cx MOV
MOV . mov cx, 00009h ; search length is 9 bytes MOV
JNZ . jnz Srch1 ; go again if not matched JNZ
PUS . push cs ; move the current paragraph PUS
JNE . jbe Exit1 ; and jump if not equal JNE
MOV . mov cx, 00009h ; search length is 9 bytes MOV
XOR . xor ax, ax ; zero into ax (not found) XOR
INC . inc bx ; next search paragraph into bx INC
REP . rep cmpsb ; search 9 bytes REP
PUS . push bp ; push bp onto stack PUS
JNZ . jnz Srch1 ; go again if not matched JNZ
MOV . mov es, bx ; and into es MOV
POP . pop dx ; and pop it into dx POP
MOV . mov si, cda_id ; source offset in si MOV
MOV . mov di, 00070h ; destin offset in di MOV
RET . ret ; near return to TC RET
MOV . mov si, cda_id ; source offset in si MOV
POP . pop di ; restore TC registers POP
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov bp, sp ; move stack pointer into bp MOV
PUS . push cs ; move the current paragraph PUS
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov cx, 00009h ; search length is 9 bytes MOV
RET . ret ; near return to TC RET
MOV . mov cx, 00009h ; search length is 9 bytes MOV
PUS . push bp ; push bp onto stack PUS
XOR . xor ax, ax ; zero into ax (not found) XOR
POP . pop di ; restore TC registers POP
MOV . mov di, 00070h ; destin offset in di MOV
POP . pop di ; restore TC registers POP
JNE . jbe Exit1 ; and jump if not equal JNE
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
POP . pop dx ; and pop it into dx POP
PUS . push cs ; move the current paragraph PUS
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
MOV . mov es, bx ; and into es MOV
MOV . mov ax, es ; move CDA segment (found) into ax MOV
MOV . mov es, bx ; and into es MOV
XOR . xor ax, ax ; zero into ax (not found) XOR
JNE . jbe Exit1 ; and jump if not equal JNE
MOV . mov di, 0005Dh ; destin offset in di MOV
MOV . mov cx, 00009h ; search length is 9 bytes MOV
PUS . push bp ; save TC registers PUS
REP . rep stosw ; move zeros to CDA REP
RET . ret ; near return to TC RET
MOV . mov si, cda_id ; source offset in si MOV
MOV . mov cx, 0096Fh ; word count in cx MOV
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
POP . pop dx ; and pop it into dx POP
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
XOR . xor ax, ax ; zero into ax (not found) XOR
PUS . push cs ; move the current paragraph PUS
XOR . xor ax, ax ; zero into ax (not found) XOR
MOV . mov di, 00070h ; destin offset in di MOV
INC . inc bx ; next search paragraph into bx INC
MOV . mov cx, 00009h ; search length is 9 bytes MOV
PUS . push bp ; save TC registers PUS
CLD . cld ; clear the direction flag CLD
MOV . mov es, bx ; and into es MOV
MOV . mov cx, 0096Fh ; word count in cx MOV
MOV . mov es, bx ; and into es MOV
MOV . mov di, 0005Dh ; destin offset in di MOV
CMP . cmp dx, bx ; compare to the current paragraph CMP
REP . rep cmpsb ; search 9 bytes REP
CLD . cld ; clear the direction flag CLD
INC . inc bx ; next search paragraph into bx INC
REP . rep stosw ; move zeros to CDA REP
PUS . push cs ; move the current paragraph PUS
MOV . mov bx, 09FFFh ; set search paragraph to himem MOV
CMP . cmp dx, bx ; compare to the current paragraph CMP
RET . ret ; near return to TC RET
REP . rep stosw ; move zeros to CDA REP
PUS . push bp ; save TC registers PUS
MOV . mov es, bx ; and into es MOV
 
 
 
 
 xorxor
 cmpcmp
 reprep
 cldcld
 retret
 reprep
 incinc
 xorxor
 andand
 cmpcmp
 retret
 reprep
 xorxor
 incinc
 jnzjnz
 jnzjnz
 cmpcmp
 cmpcmp
 
 
 
 
 
PUS . push cs ; move the current paragraph PUS
MOV . mov cx, 00009h ; search length is 9 bytes MOV
PUS . push bp ; save TC registers PUS
 
 
 
 
CMP . cmp dx, bx ; compare to the current paragraph CMP
MOV . mov bp, sp ; move stack pointer into bp MOV
PUS . push bp ; save TC registers PUS
 
Poem by Nari IO:
 
Char Tartan  © 2004  Warnell, Canada
Source material: Mary Warnell, Canada
 
inc