Skip to content

Commit

Permalink
Fixing windows bug..
Browse files Browse the repository at this point in the history
  • Loading branch information
leuat committed Jan 14, 2024
1 parent d73c5c9 commit f02aa0a
Show file tree
Hide file tree
Showing 37 changed files with 809 additions and 560 deletions.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_charset0.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_charset1.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_charset2.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_charset3.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_screen0.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_screen1.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_screen2.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/13_screen3.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/chardata1.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/chardata3.bin
Binary file not shown.
Binary file modified Publish/tutorials/C64/DemoEffects_raytracer/data/disksprite.bin
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Publish/tutorials/C64/Tutorials/resources/images/skull.flf
Binary file not shown.
68 changes: 68 additions & 0 deletions Publish/tutorials/FOENIX/tutorials/foenix_tutorials.trse
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
zeropages = ,$02, $04, $08, $16, $0B, $0D, $10, $12, $22, $24, $68
use_track_19 = 1
disable_compiler_comments = 0
temp_zeropages = ,$54, $56, $58, $5A
zeropage_screenmemory = $fd
zeropage_colormemory = $fb
zeropage_decrunch1 = $47
zeropage_decrunch2 = $48
zeropage_decrunch3 = $4a
zeropage_decrunch4 = $4b
pascal_settings_use_local_variables = 1
system = FOENIX
main_ras_file = none
zeropage_internal1 = $4c
zeropage_internal2 = $4e
zeropage_internal3 = $50
zeropage_internal4 = $52
post_optimizer_passlda = 1
post_optimizer_passjmp = 1
post_optimizer_passldatax = 1
post_optimizer_passstalda = 1
post_optimizer_passldx = 1
post_optimizer_passcmp = 1
post_optimizer_passphapla = 1
machine_state = $35
exomize_toggle = 0
show_all_files = 1
use_vice_c1541 = 0
border_color = 0
background_color = 0
use_python = 0
override_target_settings = 0
remove_unused_symbols = 1
override_target_settings_org = $810
override_target_settings_ignore_sys = 0
override_target_settings_ignore_prg = 0
output_debug_symbols = 1
ignore_initial_jump = 0
var_zeropages = ,
zeropages_userdefined = ,
global_defines = ,
custom_system_cpu = 6502
custom_system_methods = C64
custom_system_assembler = From System
custom_system_assembler_custom = 0
custom_system_emulator = 0
custom_system_emulator_parameters = 0
custom_system_assembler_parameters = 0
custom_system_ending = 0
disk_system = Krill
petmodel = 2001-8N
amstradcpc_model = 464
qemu = No
use_tripe = 0
amstradcpc_options = 0
spectrum_model = 0
dosbox_cycles = 0
dosbox_x86_system = default
cpu_x86_system = 8086
cpu_x86_output = exe
columns = 40
vic_memory_config = none
via_zeropages = ,
output_type = prg
override_target_settings_basic = 0
override_target_settings_sys = 0
override_target_settings_prg = 0
build_list = ,
9 changes: 9 additions & 0 deletions Publish/tutorials/FOENIX/tutorials/tutorial1.ras
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
program Tutorial1;
var


begin

loop();

end.
2 changes: 2 additions & 0 deletions TRSE.pro
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ SOURCES += main.cpp\
source/Compiler/systems/systemjdh8.cpp \
source/Compiler/systems/systemm1arm.cpp \
source/Compiler/systems/systemmega65.cpp \
source/Compiler/systems/systemfoenix.cpp \
source/Compiler/systems/systemmsx.cpp \
source/Compiler/systems/systemok64.cpp \
source/Compiler/systems/systemoric.cpp \
Expand Down Expand Up @@ -543,6 +544,7 @@ HEADERS += mainwindow.h \
source/Compiler/systems/systemjdh8.h \
source/Compiler/systems/systemm1arm.h \
source/Compiler/systems/systemmega65.h \
source/Compiler/systems/systemfoenix.h \
source/Compiler/systems/systemmsx.h \
source/Compiler/systems/systemok64.h \
source/Compiler/systems/systemoric.h \
Expand Down
2 changes: 2 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
*/




#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
Expand Down
1 change: 1 addition & 0 deletions resources.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -768,5 +768,6 @@
<file>resources/text/help/m/setpalette.rtf</file>
<file>resources/images/tutorials/sparkle.png</file>
<file>resources/text/opcodes_m68k.txt</file>
<file>resources/images/FOENIX.png</file>
</qresource>
</RCC>
Binary file added resources/images/FOENIX.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions resources/text/opcodes_m68k.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@
0100000001xxxxxx NEGX
0100000010xxxxxx NEGX
0100000011xxxxxx MOVEfromSR
0100001000xxxxxx CLR
0100001001xxxxxx CLR
0100001010xxxxxx CLR
0100001000xxxxxx CLR.B
0100001001xxxxxx CLR.W
0100001010xxxxxx CLR.L
0100010000xxxxxx NEG
0100010001xxxxxx NEG
0100010010xxxxxx NEG
Expand Down
8 changes: 7 additions & 1 deletion source/Compiler/systems/abstractsystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "source/OrgAsm/orgasm.h"
#include "source/OrgAsm/zorgasm.h"
#include "source/OrgAsm/morgasm.h"
#include "source/OrgAsm/orgasm68k.h"
#include <QMessageBox>
#include "source/LeLib/data.h"

Expand Down Expand Up @@ -144,7 +145,7 @@ QString AbstractSystem::StringFromProcessor(QString s) {
if (s == "M1ARM") return "ARM";
if (s == "GAMEBOY") return "GBZ80";
if (s == "SNES") return "WDC65C816";
if (s == "MEGA65") return "WDC65C02";
if (s == "MEGA65" || s=="FOENIX") return "WDC65C02";
if (s == "JDH8") return "PJDH8";
if (s == "TRS80COCO" || s=="VECTREX" || s=="THOMSON" || s=="DRAGON") return "M6809";
if (s == "POKEMONMINI") return "S1C88";
Expand Down Expand Up @@ -196,6 +197,8 @@ AbstractSystem::System AbstractSystem::SystemFromString(QString s) {
return COLECO;
if (s.toLower()=="mega65")
return MEGA65;
if (s.toLower()=="foenix")
return FOENIX;
if (s.toLower()=="atari800")
return ATARI800;
if (s.toLower()=="msx")
Expand Down Expand Up @@ -287,6 +290,7 @@ QString AbstractSystem::StringFromSystem(AbstractSystem::System s) {
if (s == PCW) return "PCW";
if (s == BK0010) return "BK0010";
if (s == DRAGON) return "DRAGON";
if (s == FOENIX) return "FOENIX";
return "";
}

Expand Down Expand Up @@ -376,6 +380,8 @@ void AbstractSystem::AssembleZOrgasm(QString& output, QString &text, QString fil
m_orgAsm = QSharedPointer<MOrgasm>(new MOrgasm());
m_orgAsm->m_header = Orgasm::HEADER_DECB;
}
if (orgType==4)
m_orgAsm = QSharedPointer<OrgAsm68k>(new OrgAsm68k());

if (m_orgAsm == nullptr)
return;
Expand Down
2 changes: 1 addition & 1 deletion source/Compiler/systems/abstractsystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ class AbstractSystem : public QObject
ATARI520ST, AMSTRADCPC, COLECO, MEGA65, ATARI800,
MSX, APPLEII, M1ARM, ORIC, SNES, CUSTOM, VZ200,
ACORN, JDH8, POKEMONMINI, TRS80, TRS80COCO, WONDERSWAN,
TIM, TVC, VECTREX, THOMSON, CHIP8, PCW, SCHIP, XO_CHIP, CHIP8X, BK0010, DRAGON};
TIM, TVC, VECTREX, THOMSON, CHIP8, PCW, SCHIP, XO_CHIP, CHIP8X, BK0010, DRAGON, FOENIX};
enum Processor {MOS6502, M68000,PX86, GBZ80, Z80, ARM, WDC65C816,
WDC65C02, PJDH8, S1C88, M6809, Z180, PCHIP8,PDP11};

Expand Down
2 changes: 2 additions & 0 deletions source/Compiler/systems/factorysystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ AbstractSystem *FactorySystem::Create(AbstractSystem::System type, QSharedPointe
return new SystemBK0010(settings, proj);
if (type==AbstractSystem::DRAGON)
return new SystemDragon(settings, proj);
if (type==AbstractSystem::FOENIX)
return new SystemFoenix(settings, proj);


return s;
Expand Down
1 change: 1 addition & 0 deletions source/Compiler/systems/factorysystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include "systempcw.h"
#include "systembk0010.h"
#include "systemdragon.h"
#include "systemfoenix.h"
#include "source/LeLib/util/cinifile.h"

class FactorySystem
Expand Down
10 changes: 10 additions & 0 deletions source/Compiler/systems/systematari520st.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,17 @@

void SystemAtari520ST::Assemble(QString &text, QString filename, QString currentDir, QSharedPointer<SymbolTable> symTab)
{

bool useOrgAsm = m_settingsIni->getString("assembler_m68k").toLower()=="orgasm"; // point to TRSE settings when implemented

QString output;
if (useOrgAsm) {
AssembleZOrgasm(output,text,filename,currentDir,symTab,4);
text+=output;
return;
}


int time = timer.elapsed();
int codeEnd = 0;

Expand Down
52 changes: 52 additions & 0 deletions source/Compiler/systems/systemfoenix.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include "systemfoenix.h"


void SystemFoenix::PrepareInitialAssembler(Assembler *as)
{
/* as->Asm(" .org $2001");
if (!Syntax::s.m_ignoreSys){// && (Syntax::s.m_currentSystem->m_programStartAddress!=Syntax::s.m_currentSystem->m_startAddress)) {
as->Asm(" .byte $09,$20 ;End of command marker (first byte after the 00 terminator)");
as->Asm(" .byte $0a,$00 ;10");
as->Asm(" .byte $fe,$02,$30,$00 ;BANK 0");
// Asm(" .byte <endd_s, >endd_s ");
as->Asm(" .byte $13, $20 ");
as->Asm(" .byte $14,$00 ;20");
as->Asm(" .byte $9e ;SYS");
// Asm(intToHexString(Syntax::s.m_currentSystem->m_programStartAddress));
// QString s = QString::number(Syntax::s.m_currentSystem->m_programStartAddress);
as->Asm(" .byte $38,$32,$32,$34");
//
//QString extra = "";
//if (s.count()<5)
// extra=", $00";
as->Asm(" .byte $00");
as->Label("endd_s:");
as->Asm(" .byte $00,$00 ;End of basic terminators");
as->Asm(" .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ;extra");
as->EndMemoryBlock();
// Comment("End of SYS memory block, starting new");
as->StartMemoryBlock(Util::numToHex(Syntax::s.m_currentSystem->m_programStartAddress));
as->m_insertEndBlock = "EndBlock"+Util::numToHex(Syntax::s.m_currentSystem->m_programStartAddress).remove("$");
}
*/
}

void SystemFoenix::Assemble(QString &text, QString filename, QString currentDir, QSharedPointer<SymbolTable> symTab)
{
QString smc = currentDir + QDir::separator() + "config.cfg";
if (!QFile::exists(smc))
Util::CopyFile(":resources/code/mega65/config.cfg",smc);
// QStringList params = QStringList() << "-t none" << "-C" <<smc <<"--start-addr"<< "$2020"<<("-o"+filename+".prg") <<(filename +".asm") ;
QStringList params = QStringList() << "-t"<<"none" << "-C" <<smc <<"--start-addr"<< Util::numToHex(m_startAddress)<<("-o"+filename+".prg") <<(filename +".asm") ;
// QStringList params = QStringList() <<"--cpu"<<"4510"<<(filename +".asm") <<("-o"+filename+".prg");
AssembleCL65(text,filename,currentDir,symTab,"prg",params);
QString f= filename+".prg";
QByteArray da = Util::loadBinaryFile(f);
da.insert(0,(uchar)01);
da.insert(1,(uchar)0x20);
Util::SaveByteArray(da,f);

System65C816::Assemble(text,filename,currentDir,symTab);

}
54 changes: 54 additions & 0 deletions source/Compiler/systems/systemfoenix.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#ifndef SYSTEMFOENIX_H
#define SYSTEMFOENIX_H

#include "system65c816.h"

class SystemFoenix : public System65C816
{
public:
SystemFoenix(QSharedPointer<CIniFile> settings, QSharedPointer<CIniFile> proj) : System65C816(settings, proj) {
m_allowedGlobalTypeFlags << "compressed"<<"pure"<<"pure_variable" <<"pure_number" << "signed" <<"no_term" <<"invert";
m_allowedProcedureTypeFlags << "pure"<<"pure_variable" <<"pure_number" << "signed" <<"no_term" <<"invert" <<"global" <<"stack";
m_supportsExomizer = true;
m_registers << "_a"<<"_x" <<"_y" <<"_ax" <<"_ay" <<"_xy";
m_canRunAsmFiles = true;
m_allowClasses = true; // EXPERIMENTAL
m_processor = WDC65C02;
float x = 1.8;
m_systemColor = QColor(70*x,50*x,120*x);
DefaultValues();
m_labels.append(SystemLabel(SystemLabel::ZEROPAGE,"Zero pages",0,0x00FF));
m_labels.append(SystemLabel(SystemLabel::STACK,"Stack",0x0100,0x01FF));
m_system = MEGA65;


}

void DefaultValues() override
{
m_ignoreSys = false;
m_startAddress=getDefaultBasicAddress();
m_programStartAddress = m_startAddress;
}

// virtual void Assemble(QString& text, QString file, QString currentDir, QSharedPointer<SymbolTable> symTab) override;

int getDefaultBasicAddress() override {
return 0x8080;
};


virtual QString getEmulatorName() override {
return m_settingsIni->getString("foenix_emulator");
}

void applyEmulatorParameters(QStringList& params, QString debugFile, QString filename, CIniFile* pini) override {
// params <<"-besure" <<"-prgmode" <<"65"<< "-prg" <<filename+".prg";
params <<filename+".prg" << "@"+Util::numToHex(m_startAddress);
}

void PrepareInitialAssembler(Assembler* as) override;
void Assemble(QString &text, QString filename, QString currentDir, QSharedPointer<SymbolTable> symTab) override;

};
#endif
4 changes: 2 additions & 2 deletions source/Compiler/systems/systemm6800.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef SYSTEMM6800_H
#define SYSTEMM6800_H
#ifndef SYSTEMM68000_H
#define SYSTEMM68000_H

#include "abstractsystem.h"
#include <QProcess>
Expand Down
Loading

0 comments on commit f02aa0a

Please sign in to comment.