; Text(rp,string,count)(a1,a0,d0)
Text:
  movem.l D2-D7/A2-A5,-(A7)
  tst.w D0
   beq.w JL_0_574 ;exit
  move.l (A1),D1
   beq.b 7$
  movea.l D1,A5
  ; LockLayerRom
  move.l a0,d2
  move.l a6,d3
  lea $48(A5),A0
  movea.l gb_ExecBase(a6),A6
   jsr _LVOObtainSemaphore(A6)
  movea.l d3,a6
  movea.l d2,a0
  ;
7$:
  movem.l D0/A0-A1,-(A7)
   bsr.w JL_0_B28
  movem.l (A7)+,d7/a3-a4
  lea -$68(A7),A7
  movea.l A7,A5
  move.b #$1,$18(A5)
  movem.w D0-D2,$6(A5)
  movea.l $34(A4),A2
  move.l (A4),D3
   beq.b 9$
  movea.l D3,A0
  tst.l $24(A0)
   bne.b 9$
  move.w $24(A4),D4
  add.w $10(A0),D4
  sub.w $2C(A0),D4
  move.w $26(A4),D5
  add.w $12(A0),D5
  sub.w $2E(A0),D5
  move.w D4,D6
  add.w D2,D4
  add.w D1,D6
  sub.w $1A(A2),D5
  movea.w D5,A1
  adda.w $14(A2),A1
  addq.l #8,A0
8$:
  move.l (A0),D3
   beq.w JL_0_55E
  movea.l D3,A0
  cmp.w $14(A0),D4
   bgt.b 8$
  cmp.w $10(A0),D6
   blt.b 8$
  cmp.w $16(A0),D5
   bgt.b 8$
  cmpa.w $12(A0),A1
   blt.b 8$
  tst.l $8(A0)
   beq.b 9$
  tst.l $C(A0)
   beq.b 8$
9$:
  move.w $14(A2),D6
   beq.w JL_0_55E
  move.w D1,D3
  sub.w D2,D3
   beq.w JL_0_55E
  moveq.l #$00,D5
  move.l $E(A2),D1
   beq.w JL_0_1DC
  movea.l D1,A0
  cmpi.w #$4E1B,(A0)
   bne.w JL_0_1DC
  cmpa.l $4(A0),A2
   bne.w JL_0_1DC
  btst #$1,$2(A0)
   beq.w JL_0_1DC
  tst.w $40(A4)
   bne.w JL_0_1DC
  move.b $38(A4),D5
  andi.b #$7,D5
   bne.w JL_0_1DC
  addq.w #8,D3
   bsr.b JL_0_1BC
  tst.l D1
   beq.b FJL_0_19C
  move.l A1,$48(A5)
  btst #6,_custom+dmaconr
   beq.w JL_0_21A
  move.w #$8400,_custom+dmacon
.wait:
  btst #6,_custom+dmaconr
   bne.b .wait
  move.w #$0400,_custom+dmacon
.exit:
 bra.w JL_0_21A
 cnop 0,4


FJL_0_19C:
  subq.w #1,D7
   beq.w JL_0_566
11$:
  subq.l #2,A7
  move.b (A3)+,(A7)
  movea.l A7,A0
  movea.l A4,A1
  moveq.l #$01,D0
   bsr.w Text
  addq.l #2,A7
   dbf D7,11$
 bra.w JL_0_566
 cnop 0,4


JL_0_1BC:
  lsr.w #4,D3
  add.w D3,D3
  move.w D3,$18(A5)
  move.w D6,D0
  mulu D3,D0
  move.l D0,$14(A5)
  moveq.l #0,D1
   bsr.w JL_0_C14
  move.l D0,D1
  movea.l D1,A1
  move.l A1,$20(A5)
 rtS
 cnop 0,4


JL_0_1DC:
  add.w #$4F,D3
  add.w $1A(A2),D3
  btst #$6,$16(A2)
   bne.w JL_0_5BC
JL_0_1EE:
   bsr.b JL_0_1BC
  tst.l D1
   beq.b FJL_0_19C
  sub.w $1A(A2),D2
  move.w D2,D0
  asr.w #4,D0
  add.w D0,D0
  neg.w D0
  lea $4(A1,D0.W),A0
  move.l A0,$48(A5)
  tst.b D5
   beq.w JL_0_2BC
  move.w D6,D0
  mulu D3,D0
   bsr.w JL_0_CA8
  movea.l $48(A5),A1
JL_0_21A:
  movem.l A2/A4-A6,-(A7)
  move.w D6,D2
  subq.w #1,D2
  move.w D2,D0
  and.w #$7,D0
  move.b L_0_270(PC,D0.W),D0
  lea JL_0_27C(PC,D0.W),A6
  lsr.w #3,D2
  subq.w #1,D7
  move.b $21(A2),D6
  move.w $26(A2),D4
  move.b $20(A2),D1
  movea.l $28(A2),A4
  movea.l $22(A2),A2
  movea.l A1,A5
JL_0_24A:
  moveq.l #$00,D5
  move.b (A3)+,D5
  cmp.b D6,D5
   bhi.b 17$
  sub.b D1,D5
   bcc.b 18$
17$:
  move.b D6,D5
  sub.b D1,D5
  addq.w #1,D5
18$:
  add.w D5,D5
  add.w D5,D5
  move.w $0(A4,D5.W),D0
  lsr.w #3,D0
  lea $0(A2,D0.W),A1
  movea.l A5,A0
  move.w D2,D0
19$:
 jmp (A6)
 cnop 0,4
L_0_270:
   dc.b "*$"
   dc.b $1E,$18,$12,$0C
   dc.b $06,$00
JL_0_278:
  adda.w D4,A1
  adda.w D3,A0
JL_0_27C:
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
   dbf D0,JL_0_278
  addq.w #1,A5
   dbf D7,JL_0_24A
  movem.l (A7)+,a2/a4-a6
 bra.w JL_0_41A
 cnop 0,4


JL_0_2BC:
  move.w D6,D0
  mulu D3,D0
   bsr.w JL_0_CA8
  move.w D7,(A5)
  move.l A3,$2(A5)
  clr.w $6(A5)
24$:
  moveq.l #$00,D5
  movea.l $2(A5),A0
  move.b (A0)+,D5
  move.l A0,$2(A5)
  cmp.b $21(A2),D5
   bhi.b 25$
  sub.b $20(A2),D5
   bcc.b 26$
25$:
  move.b $21(A2),D5
  sub.b $20(A2),D5
  addq.w #1,D5
26$:
  add.w D5,D5
  move.w $6(A5),D3
  move.l $30(A2),D0
   beq.b 27$
  movea.l D0,A0
  add.w $0(A0,D5.W),D3
27$:
  move.w D3,D7
  move.l $2C(A2),D0
   bne.b 28$
  add.w $18(A2),D3
 bra.b 29$
 cnop 0,4


28$:
  movea.l D0,A0
  add.w $0(A0,D5.W),D3
29$:
  add.w $40(A4),D3
  move.w D3,$6(A5)
  add.w D5,D5
  movea.l $28(A2),A0
  move.l $0(A0,D5.W),D0
  move.w D0,D5
   beq.w 39$
  swap D0
  move.w D0,D3
  and.w #$F,D3
  lsr.w #4,D0
  add.w D0,D0
  movea.l $22(A2),A1
  adda.w D0,A1
  movea.w $26(A2),A3
  move.w $14(A2),D6
  move.w D5,D0
  subq.w #1,D0
  and.w #$F,D0
  add.w D0,D0
  lea L_0_C5C(PC),A0
  move.w $0(A0,D0.W),D4
  swap D4
  clr.w D4
  lsr.l D3,D4
  move.w D7,D0
  andi.w #$F,D7
  asr.w #4,D0
  add.w D0,D0
  movea.l $48(A5),A0
  adda.w D0,A0
  movea.w $18(A5),A2
  cmpi.w #$10,D5
   bls.b 34$
  move.l #$FFFF0000,D2
  lsr.l D3,D2
  sub.w #$11,D5
  lsr.w #4,D5
  move.w D5,D0
  add.w D0,D0
  addq.w #2,D0
  suba.w D0,A2
  suba.w D0,A3
  sub.w D7,D3
   bge.b 33$
  neg.w D3
 bra.b 31$
 cnop 0,4


30$:
  move.l (A1),D0
  and.l D2,D0
  lsr.l D3,D0
  or.l D0,(A0)
  addq.l #2,A1
  addq.l #2,A0
   dbf D1,30$
  move.l (A1),D0
  and.l D4,D0
  lsr.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
31$:
  move.w D5,D1
   dbf D6,30$
 bra.b 39$
 cnop 0,4


32$:
  move.l (A1),D0
  and.l D2,D0
  lsl.l D3,D0
  or.l D0,(A0)
  addq.l #2,A1
  addq.l #2,A0
   dbf D1,32$
  move.l (A1),D0
  and.l D4,D0
  lsl.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
33$:
  move.w D5,D1
   dbf D6,32$
 bra.b 39$
 cnop 0,4


34$:
  sub.w D7,D3
   bge.b 38$
  neg.w D3
 bra.b 36$
 cnop 0,4


35$:
  move.l (A1),D0
  and.l D4,D0
  lsr.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
36$:
   dbf D6,35$
 bra.b 39$
 cnop 0,4


37$:
  move.l (A1),D0
  and.l D4,D0
  lsl.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
38$:
   dbf D6,37$
39$:
  movea.l $34(A4),A2
  subq.w #1,(A5)
   bne.w 24$
JL_0_41A:
  btst #$1,$38(A4)
   beq.b 43$
  move.w $1C(A2),D1
  cmpi.w #$10,D1
   bgt.b 42$
  movea.l $20(A5),A0
  move.l $14(A5),D0
  lsr.l #1,D0
  subq.l #2,D0
  moveq.l #$00,D3
  move.w (A0)+,D3
41$:
  swap D3
  move.l D3,D2
  lsr.l D1,D2
  moveq.l #$00,D3
  move.w (A0)+,D3
  or.l D2,-$4(A0)
   dbf D0,41$
 bra.b 43$
 cnop 0,4


42$:
  movem.l D2-D7/A2,-(A7)
  lea $18(A5),A0
  movea.l A0,A1
  moveq.l #$00,D0
  move.w D1,D2
  moveq.l #$00,D1
  moveq.l #$00,D3
  move.w (A0),D4
  lsl.w #3,D4
  sub.w D2,D4
  move.w $14(A2),D5
  move.w #$00E5,D6
  moveq.l #$01,D7
  suba.l A2,A2
   jsr _LVOBltBitMap(A6)
  movem.l (A7)+,D2-D7/A2
43$:
  btst #$2,$38(A4)
   beq.w 50$
  movea.l $20(A5),A0
  move.w $1A(A2),D0
  move.w D0,D6
  addq.w #1,D0
  mulu $18(A5),D0
  adda.l D0,A0
  movea.l A0,A1
  addq.w #1,D6
  move.w $14(A2),D5
  sub.w D6,D5
   blt.b 50$
  moveq.l #$01,D1
  move.w $18(A5),D7
  lsr.w #1,D7
  subq.w #1,D7
  move.w D7,-(A7)
 bra.b 46$
 cnop 0,4


44$:
  move.w (A7),D7
  addq.w #1,D1
  move.w D1,D2
  lsr.w #1,D2
  move.w D2,D3
  andi.w #$F,D2
  lsr.w #4,D3
  add.w D3,D3
45$:
  move.l $0(A0,D3.W),D0
  lsl.l D2,D0
  swap D0
  move.w D0,(A0)+
   dbf D7,45$
46$:
   dbf D5,44$
  moveq.l #-$01,D1
 bra.b 49$
 cnop 0,4


47$:
  move.w (A7),D7
  addq.w #1,D1
  move.w D1,D2
  lsr.w #1,D2
  move.w D2,D3
  andi.w #$F,D2
  lsr.w #4,D3
  add.w D3,D3
  neg.w D3
48$:
  move.l -$4(A1,D3.W),D0
  lsr.l D2,D0
  move.w D0,-(A1)
   dbf D7,48$
49$:
   dbf D6,47$
  addq.l #2,A7
50$:
  btst #$0,$38(A4)
   beq.b 51$
  movea.l $20(A5),A0
  move.w $1A(A2),D0
  addq.w #1,D0
  cmp.w $14(A2),D0
   bge.b 51$
  mulu $18(A5),D0
  adda.l D0,A0
  movea.l A0,A1
   bsr.w JL_0_57C
51$:
  movea.l $48(A5),A0
  movea.l A4,A1
  move.w $A(A5),D0
  move.w $18(A5),D1
  move.w $24(A4),D2
  add.w D0,D2
  move.w $26(A4),D3
  sub.w $1A(A2),D3
  move.w $8(A5),D4
  sub.w D0,D4
  move.w $14(A2),D5
   jsr _LVOBltTemplate(A6)
  move.l $14(A5),D0
  btst #6,_custom+dmaconr
   beq.b .exit
  move.w #$8400,_custom+dmacon
.wait:
  btst #6,_custom+dmaconr
   bne.b .wait
  move.w #$0400,_custom+dmacon
.exit:
  movea.l $20(A5),A1
   bsr.w JL_0_C84
JL_0_55E:
  move.w $6(A5),D0
  add.w D0,$24(A4)
JL_0_566:
  lea $68(A7),A7
  move.l (A4),D0
   beq.b JL_0_574
  movea.l D0,A5
  ; UnlockLayerRom
  move.l a0,d2
  move.l a6,d3
  lea $48(A5),A0
  movea.l gb_ExecBase(a6),a6
   bsr.w ReleaseSemaphore
  movea.l d3,a6
  movea.l d2,a0
  ;
JL_0_574:
  movem.l (A7)+,D2-D7/A2-A5
 rtS
 cnop 0,4


JL_0_57C:
  move.w $18(A5),D4
  lsr.w #1,D4
  subq.w #1,D4
  move.l (A0),D0
  move.l D0,D1
  swap D1
  lsr.w #1,D1
 bra.b 57$
 cnop 0,4


56$:
  or.w D3,(A1)+
  move.l D0,D1
  addq.l #2,A0
  move.l (A0),D0
  lsr.l #1,D1
57$:
  move.l D0,D2
  add.l D2,D2
  swap D2
  move.l D0,D3
  swap D3
  or.w D2,D3
  or.w D1,D3
  not.w D3
   dbf D4,56$
  btst #$10,D0
   bne.b 58$
  bset #$0,D3
58$:
  or.w D3,(A1)+
 rtS
 cnop 0,4


JL_0_5BC:
  moveq.l #$00,D4
  movea.l $4(A4),A0
  move.b $5(A0),D4
  moveq.l #$00,D1
  move.b $36(A2),D1
  btst #$0,$35(A2)
   beq.b 60$
  move.b $37(A2),D0
  cmp.b $39(A2),D0
   bhi.b 60$
  cmp.b $38(A2),D0
   bcc.b 61$
60$:
  cmp.b D1,D4
   bge.b 61$
  move.b D4,D1
61$:
  move.w D1,$C(A5)
  cmp.b D1,D4
   bge.b 62$
  move.b D1,D4
62$:
  move.w D3,D0
  lsr.w #4,D0
  add.w D0,D0
  move.w D0,$18(A5)
  move.w D0,$40(A5)
  mulu D6,D0
  move.l D0,$14(A5)
  move.w D4,$1C(A5)
   beq.w JL_0_1EE
  move.w D4,$44(A5)
  clr.w $1E(A5)
  clr.w $46(A5)
  move.w D6,$1A(A5)
  move.w D6,$42(A5)
  moveq.l #$07,D5
  lea $20(A5),A0
63$:
  clr.l (A0)+
   dbf D5,63$
  move.w D4,D5
  subq.w #1,D5
  move.l A6,-(A7)
  movea.l $1A4(A6),A6
64$:
  move.l $14(A5),D0
  moveq.l #$00,D1
   jsr _LVOAllocMem(A6)
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l D0,$20(A5,D1.W)
   beq.b 66$
  movea.l D0,A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
   dbf D5,64$
  move.l $14(A5),D0
  moveq.l #0,D1
   jsr _LVOAllocMem(A6)
  move.l D0,D1
  moveq.l #7,D0
  lea $48(A5),A0
65$:
  move.l D1,(A0)+
   dbeq D0,65$
   bne.b 69$
66$:
  btst #6,_custom+dmaconr
   beq.b .exit
  move.w #$8400,_custom+dmacon
.wait:
  btst #6,_custom+dmaconr
   bne.b .wait
  move.w #$0400,_custom+dmacon
.exit:
  moveq.l #7,D5
67$:
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l $20(A5,D1.W),D0
   beq.b 68$
  movea.l D0,A1
  move.l $14(A5),D0
   jsr _LVOFreeMem(A6)
68$:
   dbf D5,67$
  move.l (A7)+,a6
  moveq.l #$00,D5
 bra.w JL_0_1EE
 cnop 0,4


69$:
  movea.l (a7)+,a6
  move.w D2,D0
  neg.w D0
  asr.w #4,D0
  add.w D0,D0
  addq.w #2,D0
  move.w D0,$E(A5)
  move.w D7,(A5)
  move.l A3,$2(A5)
  clr.w $6(A5)
  btst #6,_custom+dmaconr
   beq.b 70$
  move.w #$8400,_custom+dmacon
.wait2:
  btst #6,_custom+dmaconr
   bne.b .wait2
  move.w #$0400,_custom+dmacon
70$:
  movea.l $2(A5),A0
  moveq.l #0,d2
  move.b (A0)+,D2
  move.l A0,$2(A5)
  cmp.b $21(A2),D2
   bhi.b 71$
  sub.b $20(A2),D2
   bcc.b 72$
71$:
  move.b $21(A2),D2
  sub.b $20(A2),D2
  addq.w #1,D2
72$:
  add.w D2,D2
  move.w $6(A5),D1
  move.l $30(A2),D0
   beq.b 73$
  movea.l D0,A0
  add.w $0(A0,D2.W),D1
73$:
  move.w D1,D3
  move.l $2C(A2),D0
   bne.b 74$
  add.w $18(A2),D3
 bra.b 75$
 cnop 0,4




74$:
  movea.l D0,A0
  add.w $0(A0,D2.W),D3
75$:
  add.w $40(A4),D3
  move.w D3,$6(A5)
  move.w D1,D0
  andi.w #$F,D1
  asr.w #4,D0
  add.w D0,D0
  add.w $E(A5),D0
  move.w D0,$10(A5)
  add.w D2,D2
  movea.l $28(A2),A0
  move.l $0(A0,D2.W),D0
  move.w D0,D7
   beq.w 87$
  swap D0
  move.w D0,D6
  and.w #$F,D6
  lsr.w #4,D0
  add.w D0,D0
  move.w D0,$12(A5)
  move.w D7,D0
  subq.w #1,D7
  lsr.w #4,D7
  subq.w #1,D0
  and.w #$F,D0
  add.w D0,D0
  lea L_0_C5C(PC),A0
  move.w $0(A0,D0.W),D5
  swap D5
  clr.w D5
  lsr.l D6,D5
  moveq.l #-$01,D4
  not.w D4
  lsr.l D6,D4
  move.w $C(A5),D3
  move.l A4,-(A7)
  lea $20(A5),A3
  lea $40(A2),A4
  sub.w D1,D6
   bge.w 85$
  neg.w D6
 bra.b 80$
 cnop 0,4




76$:
  movea.l (A4)+,A0
  adda.w $12(A5),A0
  movea.l (A3)+,A1
  adda.w $10(A5),A1
77$:
  move.w D7,D1
  movem.l A0-A1,-(A7)
 bra.b 79$
 cnop 0,4


78$:
  move.l (A0),D0
  and.l D4,D0
  lsr.l D6,D0
  or.l D0,(A1)
  addq.l #2,A1
  addq.l #2,A0
79$:
   dbf D1,78$
  move.l (A0),D0
  and.l D5,D0
  lsr.l D6,D0
  or.l D0,(A1)
  movem.l (a7)+,a0-a1
  adda.w $26(A2),A0
  adda.w $18(A5),A1
   dbf D2,77$
80$:
  move.w $14(A2),D2
  subq.w #1,D2
   dbf D3,76$
 bra.b 86$
 cnop 0,4


81$:
  movea.l (A4)+,A0
  adda.w $12(A5),A0
  movea.l (A3)+,A1
  adda.w $10(A5),A1
82$:
  move.w D7,D1
  movem.l A0-A1,-(A7)
 bra.b 84$
 cnop 0,4


83$:
  move.l (A0),D0
  and.l D4,D0
  lsl.l D6,D0
  or.l D0,(A1)
  addq.l #2,A1
  addq.l #2,A0
84$:
   dbf D1,83$
  move.l (A0),D0
  and.l D5,D0
  lsl.l D6,D0
  or.l D0,(A1)
  movem.l (a7)+,a0-a1
  adda.w $26(A2),A0
  adda.w $18(A5),A1
   dbf D2,82$
85$:
  move.w $14(A2),D2
  subq.w #1,D2
   dbf D3,81$
86$:
  movea.l (A7)+,A4
87$:
  subq.w #1,(A5)
   bne.w 70$
  btst #$1,$38(A4)
   beq.b 88$
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  movea.l A0,A1
  move.w $1C(A2),D2
  moveq.l #$00,D3
  move.w $18(A5),D4
  lsl.w #3,D4
  sub.w D2,D4
  move.w $14(A2),D5
  moveq.l #-$16,D6
  moveq.l #-$01,D7
  movea.l D0,A2
   jsr _LVOBltBitMap(A6)
  movea.l $34(A4),A2
88$:
  btst #$2,$38(A4)
   beq.w 96$
  move.w $14(A2),D3
  move.w $1A(A2),D5
  sub.w D3,D5
   bge.w 96$
  moveq.l #$00,D0
  move.w $18(A5),D0
  addq.w #2,D0
  move.l D0,-(A7)
  moveq.l #0,D1
   bsr.w JL_0_C14
  movea.l D0,A2
  move.w D5,D0
  neg.w D0
  lsr.w #1,D0
   bcc.b 89$
  moveq.l #2,D5
 bra.b 90$
 cnop 0,4


89$:
  moveq.l #1,D5
90$:
  moveq.l #0,D2
  move.w $18(A5),D4
  lsl.w #3,D4
  sub.w D0,D4
  moveq.l #-1,D7
91$:
  sub.w D5,D3
   bpl.b 92$
  addq.w #1,D3
   bmi.b 95$
  moveq.l #1,D5
92$:
  cmp.w D0,D2
   beq.b 94$
  move.w D3,D1
  movem.w D0/D2/D4,-(A7)
  moveq.l #-$40,D6
  lea $18(A5),A0
  movea.l A0,A1
   jsr _LVOBltBitMap(A6)
  cmp.w (A7),D2
   blt.b 93$
  move.w D2,D4
   beq.b 93$
  moveq.l #$00,D0
  moveq.l #$00,D1
  moveq.l #$00,D2
  moveq.l #$00,D6
  lea $18(A5),A0
  movea.l A0,A1
   jsr _LVOBltBitMap(A6)
93$:
  movem.w (A7)+,D0/D2/D4
94$:
  addq.w #1,D2
  subq.w #1,D4
  moveq.l #$02,D5
 bra.b 91$
 cnop 0,4


95$:
  btst #6,_custom+dmaconr
   beq.b .exit3
  move.w #$8400,_custom+dmacon
.wait3:
  btst #6,_custom+dmaconr
   bne.b .wait3
  move.w #$0400,_custom+dmacon
.exit3:
  move.l (A7)+,D0
  movea.l A2,A1
   bsr.w JL_0_C84
  movea.l $34(A4),A2
96$:
  btst #$0,$35(A2)
   beq.w 97$
  move.b $37(A2),D7
  cmp.b $39(A2),D7
   bhi.w 97$
  cmp.b $38(A2),D7
   bcs.w 97$
  moveq.l #-$01,D0
  clr.w D0
  movea.l $4(A4),A0
  move.b $5(A0),D1
  rol.l D1,D0
  and.b $19(A4),D0
  cmp.b D0,D7
   beq.b 97$
  movea.l $48(A5),A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #$00,D2
  moveq.l #$00,D3
  moveq.l #$00,D4
  move.w $18(A5),D4
  lsl.l #3,D4
  moveq.l #$00,D5
  move.w $1A(A5),D5
  moveq.l #-$46,D6
  move.b $37(A2),D7
   jsr _LVOBltBitMap(A6)
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #-$16,D6
  not.b D7
   jsr _LVOBltBitMap(A6)
  lea $40(A5),A0
  moveq.l #0,D0
  moveq.l #0,D1
  lea $18(A5),A1
  moveq.l #-$46,D6
  move.b $19(A4),D7
   jsr _LVOBltBitMap(A6)
  lea $40(A5),A0
  moveq.l #0,D0
  moveq.l #0,D1
  lea $18(A5),A1
  moveq.l #-$76,D6
  not.b D7
   jsr _LVOBltBitMap(A6)
97$:
  btst #0,$38(A4)
   beq.w 105$
   bsr.w JL_0_AC0
  moveq.l #0,D0
  move.w $18(A5),D0
  move.l D0,D7
  moveq.l #0,D1
   bsr.w JL_0_C14
  movea.l D0,A3
  move.l D7,D0
  movea.l A3,A1
   bsr.w JL_0_CA8
  movea.l $48(A5),A0
  move.w $1A(A2),D6
  addq.w #1,D6
  cmp.w $14(A2),D6
   bge.b 104$
  mulu $18(A5),D6
  adda.l D6,A0
  movea.l A3,A1
   bsr.w JL_0_57C
  lea $20(A5),A2
  moveq.l #0,D5
  move.b $1D(A5),D5
  moveq.l #0,D4
  move.b $19(A4),D4
 bra.b 103$
 cnop 0,4


98$:
  movea.l A3,A0
  movea.l (A2)+,A1
  adda.l D6,A1
  move.w $18(A5),D3
  lsr.w #1,D3
  lsr.w #1,D4
   bcc.b 100$
 bra.b 102$
 cnop 0,4


99$:
  move.w (A0)+,D0
  not.w D0
  and.w D0,(A1)+
100$:
   dbf D3,99$
 bra.b 103$
 cnop 0,4


101$:
  move.w (A0)+,D0
  or.w D0,(A1)+
102$:
   dbf D3,101$
103$:
   dbf D5,98$
104$:
  move.l D7,D0
  movea.l A3,A1
   bsr.w JL_0_C84
  movea.l $34(A4),A2
105$:
  btst #$2,$1C(A4)
   beq.b 106$
  lea $18(A5),A0
  movea.l A0,A1
  moveq.l #0,D0
  moveq.l #0,D1
  moveq.l #0,D2
  moveq.l #0,D3
  move.w $18(A5),D4
  lsl.l #3,D4
  move.w $1A(A5),D5
  moveq.l #$3A,D6
  moveq.l #-1,D7
   jsr _LVOBltBitMap(A6)
106$:
  move.b $1C(A4),D0
  and.b #$3,D0
   bne.b 107$
   bsr.b JL_0_AC0
   bsr.w JL_0_AF4
  lea $40(A5),A0
  moveq.l #$2A,D6
   jsr _LVOBltBitMapRastPort(A6)
107$:
   bsr.w JL_0_AF4
  lea $18(A5),A0
  moveq.l #0,D6
  move.b $1C(A4),D6
  and.b #$3,D6
  move.b L_0_ABC(PC,D6.W),D6
   jsr _LVOBltBitMapRastPort(A6)
  move.l $14(A5),D0
  movea.l $48(A5),A1
  move.l A6,-(A7)
  movea.l $1A4(A6),A6
   jsr _LVOFreeMem(A6)
  moveq.l #7,D5
108$:
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l $20(A5,D1.W),D0
   beq.b 109$
  movea.l D0,A1
  move.l $14(A5),D0
   jsr _LVOFreeMem(A6)
109$:
   dbf D5,108$
 movea.l (A7)+,a6
 bra.w JL_0_55E
 cnop 0,4


L_0_ABC:   ;minterms
   dc.b $EA
   dc.b $CA
   dc.b $6a
   dc.b $5a

JL_0_AC0:
  movea.l $48(A5),A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #0,D2
  moveq.l #0,D3
  moveq.l #0,D4
  move.w $18(A5),D4
  lsl.l #3,D4
  moveq.l #$00,D5
  move.w $1A(A5),D5
  moveq.l #-$16,D6
  moveq.l #-1,D7
 jmp _LVOBltBitMap(A6)
 cnop 0,4


JL_0_AF4:
  movea.l A4,A1
  move.w $E(A5),D0
  lsl.w #3,D0
  move.w $A(A5),D6
  add.w D6,D0
  ext.l D0
  moveq.l #0,D1
  move.w $24(A4),D2
  add.w D6,D2
  ext.l D2
  move.w $26(A4),D3
  sub.w $1A(A2),D3
  ext.l D3
  move.w $8(A5),D4
  sub.w D6,D4
  ext.l D4
  move.w $14(A2),D5
  ext.l D5
 rtS
 cnop 0,4


JL_0_B28:
  move.b $38(A1),D4
  swap D4
  move.w $40(A1),D4
  movea.l $34(A1),A1
  movea.l $E(A1),A3
   bne.b 114$
  btst #$1,$2(A3)
   bne.w 123$
114$:
  btst #$2,$2(A3)
   bne.w 124$
  move.w D0,D3
  moveq.l #0,D0
  moveq.l #0,D1
  moveq.l #0,D2
  movea.l $2C(A1),A3
  movea.l $30(A1),A4
  movea.l $28(A1),A5
 bra.b 122$
 cnop 0,4


115$:
  clr.w D5
  move.b (A0)+,D5
  cmpi.w #$20FF,$20(A1)
   beq.b 117$
  cmp.b $21(A1),D5
   bhi.b 116$
  sub.b $20(A1),D5
   bcc.b 118$
116$:
  move.b $21(A1),D5
  sub.b $20(A1),D5
  addq.w #1,D5
 bra.b 118$
 cnop 0,4


117$:
  sub.b #$20,D5
   bcs.b 116$
118$:
  add.w D5,D5
  add.w $0(A4,D5.W),D0
  cmp.w D0,D2
   ble.b 119$
  move.w D0,D2
119$:
  move.w D0,D6
  add.w $0(A3,D5.W),D0
  add.w D4,D0
  add.w D5,D5
  add.w $2(A5,D5.W),D6
  cmp.w D6,D1
   bge.b 120$
  move.w D6,D1
120$:
  cmp.w D0,D1
   bge.b 121$
  move.w D0,D1
 bra.b 122$
 cnop 0,4


121$:
  cmp.w D0,D2
   ble.b 122$
  move.w D0,D2
122$:
   dbf D3,115$
 bra.b 125$
 cnop 0,4


123$:
  lsl.w #3,D0
  move.w D0,D1
  moveq.l #$00,D2
 bra.b 125$
 cnop 0,4


124$:
  moveq.l #$00,D2
  move.w $18(A1),D3
  add.w D4,D3
   bmi.b 128$
  mulu D3,D0
  move.w D0,D1
  tst.w D4
   bpl.b 125$
  sub.w D4,D1
125$:
  btst #$11,D4
   beq.b 126$
  add.w $1C(A1),D1
126$:
  btst #$12,D4
   beq.b 127$
  move.w $1A(A1),D5
  move.w $14(A1),D6
  sub.w D5,D6
  addq.w #1,D6
  lsr.w #1,D5
  lsr.w #1,D6
  add.w D5,D1
  sub.w D6,D2
127$:
 rtS
 cnop 0,4


128$:
  moveq.l #0,D0
  moveq.l #0,D1
 rts
 cnop 0,4


JL_0_C14:
  cmpi.l #$1000,D0       ; if we need more than 4096 bytes of buffer
   bgt.b ft130           ; alloc a new buffer
  movea.l FTextSwap(pc),a0   ;
  bset #0,(A0)           ; or buffer is already in use
   bne.b ft130           ; alloc a new buffer
  move.l FTextMem(pc),D0 ; else use pre-allocated buffer
 rtS
 cnop 0,4


ft130:
  movem.l D2/A6,-(A7)
  movea.l gb_ExecBase(A6),A6
  move.l D0,D2
   jsr _LVOAllocMem(A6)
  tst.l D0
   bne.b ft132     ; ok buffer allocated, return
  cmpi.l #$1000,D2 ; if there is not enough memory
   bgt.b ft132     ; and we need more than 4096 bytes of buffer, return(0)
  movea.l FTextSwap(pc),a0
131$:
  bset #0,(A0)     ; else wait for pre-allocated buffer to become free
   bne.b 131$      ; and use it
  move.l FTextMem(pc),D0
ft132:
  move.l (A7)+,D2
  move.l (A7)+,A6
 rtS
 cnop 0,4


L_0_C5C:
  dc.b $80,$00,$C0,$00
  dc.b $E0,$00,$F0,$00
  dc.b $F8,$00,$FC,$00
  dc.b $FE,$00,$FF,$00
  dc.b $FF,$80,$FF,$C0
  dc.b $FF,$E0,$FF,$F0
  dc.b $FF,$F8,$FF,$FC
  dc.b $FF,$FE,$FF,$FF


JL_0_C84:
  movea.l FTextMem(PC),A0
  cmpa.l A0,A1
   beq.b 138$
  move.l A1,D1
   beq.b 137$
  move.l A6,-(A7)
  movea.l gb_ExecBase(A6),A6
   jsr _LVOFreeMem(A6)
  movea.l (A7)+,A6
137$:
 rtS
 cnop 0,4


138$:
  movea.l FTextSwap(pc),a0
  clr.l (A0)
 rtS
 cnop 0,4


JL_0_CA8:
  movea.l D2,A0
  lsr.l #1,D0
   beq.b JL_0_D1C
  move.l A1,D2
  moveq.l #$00,D1
  lsr.l #2,D2
  lea (D2.L*4),A1
   bcc.b 140$
  addq.l #2,A1
  move.w D1,(A1)+
  subq.l #1,D0
   beq.b JL_0_D1C
140$:
  moveq.l #$10,D2
  cmp.l D2,D0
   blt.b 142$
141$:
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  sub.l D2,D0
  move.l D1,(A1)+
  cmp.l D2,D0
   bge.b 141$
142$:
  move.b L_0_CE8(PC,D0.L),D0
 jmp L_0_CE8(PC,D0.L)
 cnop 0,4


L_0_CE8:
  dc.b .1e-L_0_CE8
  dc.b .32-L_0_CE8
  dc.b .1c-L_0_CE8
  dc.b .30-L_0_CE8
  dc.b .1a-L_0_CE8
  dc.b .2e-L_0_CE8
  dc.b .18-L_0_CE8
  dc.b .2c-L_0_CE8
  dc.b .16-L_0_CE8
  dc.b .2a-L_0_CE8
  dc.b .14-L_0_CE8
  dc.b .28-L_0_CE8
  dc.b .12-L_0_CE8
  dc.b .26-L_0_CE8
  dc.b .10-L_0_CE8
  dc.b .24-L_0_CE8


.10:  move.l D1,(A1)+
.12:  move.l D1,(A1)+
.14:  move.l D1,(A1)+
.16:  move.l D1,(A1)+
.18:  move.l D1,(A1)+
.1a:  move.l D1,(A1)+
.1c:  move.l D1,(A1)
.1e:  move.l A0,D2
 rtS
 cnop 0,4


.24:  move.l D1,(A1)+
.26:  move.l D1,(A1)+
.28:  move.l D1,(A1)+
.2a:  move.l D1,(A1)+
.2c:  move.l D1,(A1)+
.2e:  move.l D1,(A1)+
.30:  move.l D1,(A1)+
.32:  move.w D1,(A1)
JL_0_D1C: move.l A0,D2
 rtS
 cnop 0,4


FTextMem: ds.l 1
FTextSwap: ds.l 1
