#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  asm("move.l a0,d0");
  asm("and.l #16_ffffff,d0");
  asm("movea.l d0,a0");
  asm("move.l a2,d0");
  asm("and.l #16_ffffff,d0");
  asm("move.b #0,d0");
  asm("movea.l d0,a2");
  asm("move.l a0,d0");
  asm("move.b #1,d0");
  asm("movea.l d0,a0");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  X -= X1 * 10;
  asm("addi.l #48,x");
  asm("addi.l #48,x1");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #22,a0");
  asm("move.l x1,d0");
  asm("move.b d0,(a0)+");
  asm("move.l x,d0");
  asm("move.b d0,(a0)+");
  asm("movea.l top,a0");
  asm("move.b 5(a0),d4");
  asm("move.l d4,y");
  asm("subq.l #2,y");
  Y -= Y1 * 10;
  asm("addi.l #48,y");
  asm("addi.l #48,y1");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #29,a0");
  asm("move.l y1,d0");
  asm("move.b d0,(a0)+");
  asm("move.l y,d0");
  asm("move.b d0,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #1,a0");
  asm("move.b #16_43,(a0)+");
  asm("move.b #16_41,(a0)+");
  asm("move.b #16_50,(a0)+");
  asm("move.b #16_53,(a0)");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #1,a0");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #7,a0");
  asm("move.b #16_49,(a0)+");
  asm("move.b #16_4e,(a0)+");
  asm("move.b #16_53,(a0)+");
  asm("move.b #16_20,(a0)");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #7,a0");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("move.b #32,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #12,a0");
  asm("move.b #16_46,(a0)+");
  asm("move.b #16_4f,(a0)+");
  asm("move.b #16_52,(a0)+");
  asm("move.b #16_45,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #12,a0");
  asm("move.b #16_42,(a0)+");
  asm("move.b #16_41,(a0)+");
  asm("move.b #16_43,(a0)+");
  asm("move.b #16_4b,(a0)");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #50,a0");
  asm("move.b #16_55,(a0)+");
  asm("move.b #16_4e,(a0)+");
  asm("move.b #16_44,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #50,a0");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #44,a0");
  asm("move.b #16_53,(a0)+");
  asm("move.b #16_54,(a0)+");
  asm("move.b #16_52,(a0)+");
  asm("move.b #16_4b,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #44,a0");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #34,a0");
  asm("move.b #16_53,(a0)+");
  asm("move.b #16_55,(a0)+");
  asm("move.b #16_42,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #34,a0");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #34,a0");
  asm("move.b #16_53,(a0)+");
  asm("move.b #16_55,(a0)+");
  asm("move.b #16_50,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #34,a0");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #39,a0");
  asm("move.b #16_52,(a0)+");
  asm("move.b #16_45,(a0)+");
  asm("move.b #16_56,(a0)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #39,a0");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("move.b #16_20,(a0)+");
  asm("movea.l rcb1,a0");
  asm("movea.l 6(a0),a0");
  asm("movea.l a0,a3");
  asm("move.b #46,(a3)+");
  asm("move.b #33,(a3)+");
  asm("movea.l rcb0,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l #19,a0");
  asm("move.b #16_58,(a0)+");
  asm("move.b #16_2d,(a0)+");
  asm("adda.l #5,a0");
  asm("move.b #16_59,(a0)+");
  asm("move.b #16_2d,(a0)+");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x1");
  asm("move.b 5(a0),d4");
  asm("move.l d4,y1");
  Ax = X1 * 2;
  asm("movea.l currentrcb,a0");
  asm("movea.l 10(a0),a1           {attribs in a1}");
  asm("movea.l 6(a0),a0            {chars in a0}");
  asm("adda.l x1,a0");
  asm("adda.l ax,a1");
  asm("move.b char,(a0)");
  asm("move.w attrib,(a1)");
  asm("move.w #1,d0");
  asm("or.w d0,(a1)");
  asm("move.b #0,i");
  asm("move.l #65537,d1                {....001 00000000 00000001 }");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 10(a0),a1");
  asm("or.l d1,(a1)+");
  asm("addq.b #1,i");
  asm("move.b #0,i");
  asm("move.w #65534,d1");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 10(a0),a1");
  asm("and.w d1,(a1)+");
  asm("and.w d1,(a1)+");
  asm("addq.b #1,i");
  asm("clr.b i");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 10(a0),a1");
  asm("movea.l 6(a0),a0");
  asm("movea.l a0,a2");
  asm("move.w (a1),att");
  asm("move.b #32,(a2)+");
  asm("move.w #64,att");
  asm("move.b (a2),(a2)+");
  asm("move.w att,(a1)+");
  asm("addq.b #1,i");
  asm("subq.b #1,n");
  asm("movea.l rcb1,a0");
  asm("movea.l (a0),a0");
  asm("subq.b #1,n");
  asm("movea.l p,a1");
  asm("move.l a0,(a1)");
  asm("clr.b i");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 6(a0),a0");
  asm("movea.l a0,a1                {address of chars in a1}");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 10(a0),a0            {address of attribs in a0}");
  asm("move.w #8224,(a1)+           {blank chars             }");
  asm("move.w amask,(a0)+        {blank attribs with amask}");
  asm("move.w amask,(a0)+");
  asm("addq.b #1,i");
  asm("movea.l top,a0");
  asm("move.b 4(a0),i");
  K = J * 2;
  asm("movea.l rcbpointer,a0");
  asm("movea.l 6(a0),a0");
  asm("movea.l a0,a1              {address of chars in a1}");
  asm("movea.l rcbpointer,a0");
  asm("movea.l 10(a0),a0          {address of attribs in a0}");
  asm("adda.l j,a1");
  asm("adda.l k,a0");
  asm("move.b #32,(a1)+");
  asm("move.w amask,(a0)+");
  asm("subq.b #1,i");
  asm("movea.l top,a0");
  asm("move.w #2,4(a0)");
  asm("movea.l rcb1,a0");
  asm("move.l (a0),currentrcb");
  asm("movea.l top,a0");
  asm("move.b 5(a0),t1");
  asm("subq.b #1,5(a0)");
  asm("move.b 5(a0),t1");
  asm("movea.l top,a0");
  asm("move.b 5(a0),t1");
  asm("addq.b #1,5(a0)");
  asm("movea.l currentrcb,a0");
  asm("move.l (a0),currentrcb");
  asm("movea.l top,a0");
  asm("move.b 4(a0),t1");
  asm("addq.b #1,4(a0)");
  asm("movea.l top,a0");
  asm("move.b 4(a0),t1");
  asm("subq.b #1,4(a0)");
  asm("movea.l top,a0");
  asm("move.b 5(a0),t1");
  asm("movea.l rcb1,a0          {a0=rcb1}");
  asm("movea.l sparercb,a1      {a1=sparercb}");
  asm("move.l sparercb,currentrcb");
  asm("move.l (a0),(a1)");
  asm("move.l a1,(a0)");
  asm("move.l lastrcb,sparercb");
  asm("move.w #0,amask");
  asm("movea.l lastrcb,a1");
  asm("move.l dummyrcb,(a1)");
  asm("movea.l top,a0");
  asm("move.b x,4(a0)");
  asm("move.b y,5(a0)");
  asm("movea.l top,a0");
  asm("move.b 4(a0),x");
  asm("addq.b #1,x");
  asm("movea.l top,a0");
  asm("move.b 4(a0),x");
  Ax = X * 2;
  asm("movea.l currentrcb,a0");
  asm("move.l 10(a0),a1");
  asm("adda.l ax,a1");
  asm("move.w (a1)+,att");
  asm("move.w (a1)+,att");
  asm("addq.b #1,x");
  asm("move.w (a1)+,att");
  asm("addq.b #1,x");
  asm("movea.l top,a0");
  asm("move.b x,4(a0)");
  asm("movea.l top,a0");
  asm("move.l 4(a0),x");
  asm("subq.b #1,x");
  asm("movea.l top,a0");
  asm("move.b 4(a0),x");
  asm("subq.b #1,x");
  Ax = X * 2;
  asm("movea.l currentrcb,a0");
  asm("move.l 10(a0),a1");
  asm("adda.l ax,a1");
  asm("move.w (a1),att");
  asm("move.w -(a1),att");
  asm("subq.b #1,x");
  asm("move.w -(a1),att");
  asm("subq.b #1,x");
  asm("addq.b #1,x");
  asm("movea.l top,a0");
  asm("move.l x,4(a0)");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  asm("movea.l rcb1,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l x,a0");
  asm("move.b #33,(a0)");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  asm("movea.l rcb1,a0");
  asm("movea.l 6(a0),a0");
  asm("adda.l x,a0");
  asm("move.b #46,(a0)");
  asm("movea.l top,a0");
  asm("move.b #0,4(a0)");
  asm("movea.l rcb1,a0");
  asm("movea.l (a0),a0");
  asm("move.l a0,currentrcb");
  asm("movea.l currentrcb,a0");
  asm("movea.l top,a0");
  asm("move.b 5(a0),y");
  asm("move.l currentrcb,temprcb");
  asm("movea.l temprcb,a0");
  asm("movea.l (a0),a0");
  asm("move.l a0,temprcb");
  asm("subq.b #1,y");
  asm("move.l currentrcb,temprcb");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  Ax = X * 2;
  asm("movea.l temprcb,a0");
  asm("movea.l 10(a0),a1");
  asm("movea.l 6(a0),a0");
  asm("adda.l x,a0");
  asm("adda.l ax,a1");
  asm("move.w (a1),att");
  asm("movea.l a0,a2");
  asm("move.b #32,(a2)+");
  asm("move.w amask,(a1)+");
  asm("addq.l #1,x");
  asm("movea.l temprcb,a2");
  asm("move.l (a2),temprcb");
  asm("movea.l temprcb,a2");
  asm("movea.l 10(a2),a1");
  asm("movea.l 6(a2),a2");
  asm("move.l #0,x");
  asm("move.w (a1),att");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  Ax = X * 2;
  asm("movea.l currentrcb,a0");
  asm("movea.l 10(a0),a1");
  asm("movea.l 6(a0),a0");
  asm("adda.l x,a0");
  asm("adda.l ax,a1");
  asm("movea.l a0,a2");
  asm("subq.l #1,x");
  asm("move.w (a1),att");
  asm("move.b #32,(a2)+");
  asm("move.w #64,att");
  asm("move.b (a2),(a2)+");
  asm("move.w att,(a1)+");
  asm("movea.l top,a0");
  asm("move.b 5(a0),y");
  asm("move.l currentrcb,temprcb");
  asm("movea.l temprcb,a0");
  asm("movea.l (a0),a0");
  asm("move.l a0,temprcb");
  asm("subq.b #1,y");
  asm("movea.l rcb1,a0");
  asm("movea.l (a0),a0");
  asm("move.l a0,currentrcb");
  asm("move.l currentrcb,a0");
  asm("movea.l top,a0");
  asm("move.b 5(a0),y");
  asm("move.b #0,4(a0)");
  asm("movea.l temprcb,a0");
  asm("movea.l sparercb,a1");
  asm("move.l sparercb,currentrcb");
  asm("move.l (a0),(a1)");
  asm("move.l a1,(a0)");
  asm("move.l lastrcb,sparercb");
  asm("movea.l lastrcb,a1");
  asm("move.l dummyrcb,(a1)");
  asm("movea.l top,a0");
  asm("move.b 5(a0),y");
  asm("move.b #0,4(a0)");
  asm("movea.l sparercb,a1");
  asm("movea.l lastrcb,a0");
  asm("move.l dummyrcb,(a1)");
  asm("move.l sparercb,(a0)");
  asm("move.w #0,amask");
  asm("move.l sparercb,lastrcb");
  asm("move.l currentrcb,sparercb");
  asm("movea.l currentrcb,a0");
  asm("movea.l temprcb,a1");
  asm("move.l (a0),(a1)");
  asm("move.l (a0),currentrcb");
  asm("movea.l top,a0");
  asm("move.b 4(a0),d4");
  asm("move.l d4,x");
  Ax = X * 2;
  asm("movea.l currentrcb,a0");
  asm("movea.l 10(a0),a1");
  asm("movea.l 6(a0),a0");
  asm("adda.l x,a0");
  asm("adda.l ax,a1");
  asm("movea.l a0,a2");
  asm("movea.l a1,a3");
  asm("adda.l #1,a2");
  asm("adda.l #2,a3");
  asm("move.w (a3),att");
  asm("movea.l a2,a0");
  asm("suba.l #1,a0");
  asm("move.w (a3)+,(a1)+");
  asm("move.b (a2)+,(a0)+");
  asm("move.w (a3),att");
  asm("addq.l #1,x");
  asm("movea.l a2,a0");
  asm("suba.l #1,a0");
  asm("move.b #32,(a0)");
  asm("move.w attrib,(a1)");
  asm("move.w #1,d0");
  asm("or.w d0,(a1)");
  asm("movea.l top,a0");
  asm("move.b 5(a0),blinky");
  asm("move.l currentrcb,blinkrcb");
  asm("move.b #30,blinky");
  asm("move.l #0,blinkrcb");
  asm("movea.l top,a0");
  asm("move.l 4(a0),x");
  asm("move.l 5(a0),y");
  asm("movea.l top,a0");
  asm("move.b #0,4(a0)");
  asm("movea.l top,a0");
  asm("move.b 5(a0),t1");
  asm("move.l sparercb,currentrcb");
  asm("movea.l sparercb,a1");
  asm("movea.l lastrcb,a0");
  asm("move.l dummyrcb,(a1)");
  asm("move.l a1,(a0)");
  asm("move.l sparercb,lastrcb");
  asm("movea.l rcb1,a0");
  asm("move.l (a0),sparercb");
  asm("move.l (a0),a1");
  asm("move.l (a1),(a0)");
  asm("move.w #0,amask");
  asm("movea.l top,a0");
  asm("move.b 4(a0),x");
  asm("move.b 5(a0),y");
  asm("movea.l currentrcb,a0");
  asm("movea.l 10(a0),a1");
  asm("movea.l 6(a0),a0");
  asm("adda.l #79,a0");
  asm("adda.l #158,a1");
  asm("movea.l a0,a2");
  asm("movea.l a1,a3");
  asm("adda.l #1,a2");
  asm("adda.l #2,a3");
  asm("move.b -(a0),-(a2)");
  asm("move.w -(a1),-(a3)");
  asm("subq.b #1,i");
  asm("move.b char,(a0)");
  asm("move.w attrib,(a1)");
  asm("move.w #1,d0");
  asm("or.w d0,(a1)");
  asm("move.l   #16_04, 16_401E               {turn bell 1 on}");
  asm("move.l   #16_2710, d0");
  asm("subq.l   #1, d0                        {delay for 100000 instr}");
  asm("bne      delay");
  asm("move.l   #16_04, 16_401C               {turn bell 1 off}");
  asm("movea.l top,a0");
  asm("move.l (a0),rcb0");
  asm("movea.l (a0),a0");
  asm("move.l (a0),rcb1");
  asm("movea.l (a0),a0");
  asm("move.l (a0),currentrcb");
  asm("move.w #0,attrib");
  asm("movea.l lastrcb,a0");
  asm("move.l (a0),dummyrcb");
  Printstring(_imp_str_literal(
      " * Superscript, subscript, strike through and underline"));
  Printstring(_imp_str_literal(" * Cursor represented as a box."));
  Printstring(_imp_str_literal(" * Input ~ to stop."));
  Printstring(
      _imp_str_literal(" * Alphanumeric characters as normal from keyboard."));
  Printstring(
      _imp_str_literal(" * Control characters as ascii codes between /.../"));
  Value = (Char - 48) + (Value * 10);
  asm("move.b char,d0");
  Moveabs;
  Moveabs;
  Rectangle;
  asm("move.l a3, ar3");
  asm("move.l cbase, a3");
  asm("move.b (a3), char");
  asm("move.l abase, a3");
  asm("move.w (a3), attrib");
  asm("move.l ar3, a3");
  asm("cmpi.b #32, d0");
  asm("blt non alpha");
  asm("cmpi.b #126, d0");
  asm("bgt decide");
  asm("move.b d0, ch");
  asm("cmpi.b #27, d0");
  asm("bne decide");
  asm("cmpi.b #89, d0");
  asm("bne decide");
  asm("subi.b #32, d0");
  asm("move.b d0, x");
  asm("subi.b #32, d0");
  asm("move.b d0, y");
  asm("moveq #89, d0");
  asm("cmpi.b #127,d0");
  asm("bgt error");
  asm("move.b d0, %DR");
  exit(0);
  return (1);
}
