Ignore:
Timestamp:
Sep 8, 2023, 11:20:27 PM (8 months ago)
Author:
chronos
Message:
  • Modified: Improved simple virtual machine.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/simple/Forms/FormMain.pas

    r41 r42  
    4343{$R *.lfm}
    4444
     45uses
     46  Screen, Channel;
     47
    4548{ TFormMain }
    4649
     
    4952  FormScreen := TFormScreen.Create(nil);
    5053  FormConsole := TFormConsole.Create(nil);
    51   InitMachine16;
     54  InitMachine8;
    5255end;
    5356
     
    6669  FreeAndNil(FormScreen);
    6770  FreeAndNil(FormConsole);
    68   FreeAndNil(Machine8);
     71  if Assigned(Machine8) then FreeAndNil(Machine8);
     72  if Assigned(Machine16) then FreeAndNil(Machine16);
    6973end;
    7074
     
    8084    Console.OnWrite := FormConsole.ConsoleWrite;
    8185    Screen.OnChange := FormScreen.ScreenChange;
    82     FormScreen.Machine := Machine8;
     86    FormScreen.Screen := TScreen.Create(bw8, Machine8.Screen, nil);
    8387    with Memory do begin
    8488      // LD A8, 'A'
     
    9094      // LD A8, 'A'
    9195      WritePos8(Byte(inLoadImmediate8));
    92       WritePos8(Ord('H'));
    93       // OUT (0), A8
    94       WritePos8(Byte(inOutput8));
    95       WritePos8(1);
     96      WritePos8(Ord('B'));
    9697      // OUT (0), A8
    9798      WritePos8(Byte(inOutput8));
     
    110111    Console.OnWrite := FormConsole.ConsoleWrite;
    111112    Screen.OnChange := FormScreen.ScreenChange;
    112     FormScreen.Machine := Machine16;
     113    FormScreen.Screen := TScreen.Create(bw16, nil, Machine16.Screen);
    113114    with Memory do begin
    114115      // LD A8, 'A'
     
    122123      WritePos16(Ord('H'));
    123124      // OUT8 (0), A8
    124       WritePos8(Byte(inOutput8));
     125      WritePos8(Byte(inOutput16));
    125126      WritePos16(1);
    126127      // HALT
Note: See TracChangeset for help on using the changeset viewer.