Specifications

CONSTRUCTION
0294 DA A5 02 JC RIG_NIB ;if flag set go to start writing from right
nible
;LEFT NIBBLE ROUTINE
0297 3E FF LEFT_NIB:MVI A,FFH
0299 13 INX D
029A 1A LDAX D
029B E6 0F ANI 0FH
029D 06 F0 MVI B,F0H
029F B0 ORA B
02A0 12 STAX D
02A1 1B DCX D
02A2 C3 6F 02 JMP NXTL
;RIGHT NIBBLE
02A5 1A RIG_NIB: LDAX D
02A6 E6 F0 ANI F0H
02A8 06 0F MVI B,0FH
02AA B0 ORA B
02AB 12 STAX D
02AC 13 INX D
02AD 3E FF MVI A,FFH
02AF 12 STAX D
02B0 1B DCX D
02B1 C3 6F 02 JMP NXTL
;COMPARE HOOK CHARACTER (TAMIL)
02B4 FE 50 CHOOKT: CPI 50H ;HOOK CHARACTER( )
02B6 CA D0 02 JZ NM ;JUMP- NON-MOVING CHARC.
02B9 FE 70 CPI 70H ;HOOK CHAR ( )
02BB CA D0 02 JZ NM
02BE FE 5B CPI 5BH
02C0 CA D0 02 JZ NM
02C3 FE 7B CPI 7BH
02C5 CA D0 02 JZ NM
02C8 FE 2B CPI 2BH
02CA CA D0 02 JZ NM
02CD 37 STC
02CE 3F CMC
02CF C9 RET
02D0 37 NM: STC ;CARRY SET FOR HOOK
CHARACTER
02D1 C9 RET
;COMPARE HOOK CHARACTER FOR HINDI
02D2 FE 2D HIHOCK: CPI 2DH
02D4 CA 11 03 JZ NH
02D7 FE 3D CPI 3DH
02D9 CA 11 03 JZ NH
02DC FE 51 CPI 51H
02DE CA 11 03 JZ NH
02E1 FE 71 CPI 71H
02E3 CA 11 03 JZ NH
02E6 FE 41 CPI 41H
02E8 CA 11 03 JZ NH
02EB FE 53 CPI 53H
02ED CA 11 03 JZ NH
02F0 FE 57 CPI 57H
02F2 CA 11 03 JZ NH
02F5 FE 77 CPI 77H
02F7 CA 11 03 JZ NH
02FA FE 5A CPI 5AH
02FC CA 11 03 JZ NH
02FF FE 61 CPI 61H
0301 CA 11 03 JZ NH
0304 FE 73 CPI 73H
0306 CA 11 03 JZ NH
0309 FE 7A CPI 7AH
030B CA 11 03 JZ NH
030E 37 STC ;NON-HOOK CHAR.
030F 3F CMC ;CLEARS CARRY FLAG
0310 C9 RET
0311 37 NH: STC ;SETS CARRY FLAG FOR
0312 C9 RET ; HOOK CHARACTER
;HOOK CHARACTER FILL ROUTINE(OTHER THAN HINDI)
0313 CD E5 00 HIHKFIL: CALL NIBST ;store nibbles of chra. code in
;1100h - 1124h
0316 21 50 11 QA: LXI H,1150H
0319 11 50 11 LXI D,1150H ;Aux. store
031C 7E PA: MOV A,M ;store all data in aux. store
031D 12 STAX D
031E 23 INX H
031F 13 INX D
0320 7D MOV A,L
0321 FE 24 CPI 24H
0323 C2 1C 03 JNZ PA
0326 CD 12 04 CALL KBD
0329 CD E5 00 CALL NIBST ;get pixel data in 1100h - 1124h
032C 21 00 11 LXI H,1100H
032F 11 50 11 LXI D,1150H
0332 7E PB: MOV A,M
0333 2F CMA ;compliment it as data
0334 47 MOV B,A ;were entered like that
0335 1A LDAX D
0336 2F CMA
0337 B0 ORA B ;OR with ‘hook’ dots
0338 2F CMA
0339 77 MOV M,A
033A 23 INX H
033B 13 INX D
033C 7D MOV A,L
033D FE 24 CPI 24H ;36 nibbles
033F C2 32 03 JNZ PB
0342 CD 1A 01 CALL VDUST ;store it
0345 37 STC
0346 3F CMC ;clear carry flag
0347 C9 RET
;HINDI HOOK CHAR. FILL (MULTIPLE HOOKS)
0348 CD E5 00 HI_HO_
CHFI: CALL NIBST
034B 21 00 11 PQ1: LXI H,1100H
034E 11 50 11 LXI D,1150H
0351 7E PP1: MOV A,M
0352 12 STAX D
0353 13 INX D
0354 23 INX H
0355 7D MOV A,L
0356 FE 24 CPI 24H
0358 C2 51 03 JNZ PP1
035B CD 12 04 CALL KBD
035E F5 PUSH PSW
035F CD E5 00 CALL NIBST
0362 21 00 11 LXI H,1100H
0365 11 50 11 LXI D,1150H
0368 7E PP2: MOV A,M
0369 2F CMA
036A 47 MOV B,A
036B 1A LDAX D
036C 2F CMA
036D B0 ORA B ;OR WITH HOOK DATA
036E 2F CMA ;OF PREVIOUS KEY
036F 77 MOV M,A
0370 23 INX H
0371 13 INX D
0372 7D MOV A,L
0373 FE 24 CPI 24H
0375 C2 68 03 JNZ PP2
0378 F1 POP PSW
0379 CD D2 02 CALL HIHOCK ;Hindi hook character check
037C F5 PUSH PSW
037D CD 8A 03 CALL ROW13FIL ;For some characters 13th line has a
few dots
0380 F1 POP PSW
0381 DA 4B 03 JC PQ1
0384 CD 1A 01 CALL VDUST
0387 37 STC
0388 3F CMC
0389 C9 RET
;13th LINE FILLING FOR SOME HINDI HOOKS
038A F5 ROW13FIL:PUSH PSW
038B FE 71 CPI 71H ;HOOK CODE
038D CA 9C 03 JZ HOOKU
0390 FE 77 CPI 77H
0392 CA AA 03 JZ HOOKV
0395 FE 2D CPI 2DH
0397 CA B8 03 JZ HOOKW
039A F1 POP PSW
039B C9 RET
039C 21 00 11 HOOKU: LXI H,1100H ;Fill hook data at 1100 -01
039F 3E E0 MVI A,E0H ;Hook dot for 13th line
03A1 77 MOV M,A
03A2 23 INX H
03A3 3E 7F MVI A,7FH
03A5 77 MOV M,A
03A6 2B DCX H
03A7 C3 C6 03 JMP K
03AA 21 00 11 HOOKV: LXI H,1100H
03AD 3E FF MVI A,FFH ;FFEF, one dot
03AF 77 MOV M,A ;for “Hoo”- hook
03B0 23 INX H
03B1 3E EF MVI A,EFH
03B3 77 MOV M,A
03B4 2B DCX H
03B5 C3 C6 03 JMP K
03B8 21 00 11 HOOKW: LXI H,1100H
03BB 3E FC MVI A,FCH ;FCFF, two dots
03BD 77 MOV M,A
03BE 23 INX H
03BF 3E FF MVI A,FFH
03C1 77 MOV M,A
03C2 2B DCX H
03C3 C3 C6 03 JMP K
03C6 CD CA 03 K: CALL THIRL ;call thirteenth line fill
03C9 F1 POP PSW
143