Ejemplo n.º 1
0
        public void PRNWKI()
        {
            byte[] buf;

            //Z80.HL = NAME;
            //PC88.CALL(DSPMSG);
            expand.DSPMSG_msg = NAME;
            expand.DSPMSG();
            Z80.HL = 0;// NAME2;
            Z80.DE = 0xF3C8 + 120 * 17;
            Z80.B  = 8;
            //FPL1:
            do
            {
                Mem.stack.Push(Z80.BC);
                Z80.HL &= 1;
                buf     = Encoding.UTF8.GetBytes(NAME2[8 - Z80.B]);
                Z80.LDI(buf);
                Z80.LDI(buf);
                Z80.A     = 120 - 2;
                Z80.Carry = (Z80.A + Z80.E > 0xff);
                Z80.A    += Z80.E;
                Z80.E     = Z80.A;
                Z80.A    += (byte)(Z80.D + (Z80.Carry ? 1 : 0));
                Z80.A    -= Z80.E;
                Z80.D     = Z80.A;
                Z80.BC    = Mem.stack.Pop();
                Z80.B--;
            } while (Z80.B != 0);
            Z80.DE = 0xF3C8 + 120 * 17 + 4;
            Z80.B  = 6;
            //FPL2:
            do
            {
                Mem.stack.Push(Z80.BC);
                Z80.HL = 0;// NAME3;
                buf    = Encoding.UTF8.GetBytes(NAME3);
                Z80.BC = 10;
                Z80.LDIR_HL(buf);
                Z80.DE++;
                Z80.DE++;
                Z80.DE++;
                Z80.BC = Mem.stack.Pop();
                Z80.B--;
            } while (Z80.B != 0);
            Z80.HL = 0;// NAME4;
            buf    = Encoding.UTF8.GetBytes(NAME4);
            Z80.DE = 0xF3C8 + 120 * 16 + 3;
            Z80.BC = 6 * 256 + 0xff;
            //FPL3:
            do
            {
                Z80.LDI(buf);
                Z80.A = 0x3a;// ':';
                Mem.LD_8(Z80.DE, Z80.A);
                Z80.A     = 12;
                Z80.Carry = (Z80.A + Z80.E > 0xff);
                Z80.A    += Z80.E;
                Z80.E     = Z80.A;
                Z80.A    += (byte)(Z80.D + (Z80.Carry ? 1 : 0));
                Z80.A    -= Z80.E;
                Z80.D     = Z80.A;
                Z80.B--;
            } while (Z80.B != 0);
            //    RET
        }