├── source ├── 81files.cpp ├── 81files.h ├── AboutForm.cpp ├── AboutForm.ddp ├── AboutForm.dfm ├── AboutForm.h ├── AdjustForm.cpp ├── AdjustForm.ddp ├── AdjustForm.dfm ├── AdjustForm.h ├── BatchForm.cpp ├── BatchForm.ddp ├── BatchForm.dfm ├── BatchForm.h ├── DirForm.cpp ├── DirForm.ddp ├── DirForm.dfm ├── DirForm.h ├── InputForm.cpp ├── InputForm.ddp ├── InputForm.dfm ├── InputForm.h ├── ModificaForm.cpp ├── ModificaForm.ddp ├── ModificaForm.dfm ├── ModificaForm.h ├── OptionsForm.cpp ├── OptionsForm.ddp ├── OptionsForm.dfm ├── OptionsForm.h ├── SettingsForm.cpp ├── SettingsForm.ddp ├── SettingsForm.dfm ├── SettingsForm.h ├── ToolsForm.cpp ├── ToolsForm.ddp ├── ToolsForm.dfm ├── ToolsForm.h ├── asm │ ├── adjust │ │ ├── adjust.txt │ │ ├── adjust_81.asm │ │ ├── adjust_81.p │ │ ├── adjust_CPC.asm │ │ ├── adjust_MSX.asm │ │ ├── adjust_ZX.asm │ │ ├── adjust_ZX_0.asm │ │ ├── adjust_cpc.bas │ │ └── adjust_zx.bas │ ├── azimut_CPC.asm │ ├── calipilot_msx6.asm │ ├── ga_crct_regs.asm │ ├── page_cpc.asm │ ├── page_zx.asm │ ├── snap_cpc.asm │ ├── snap_zx.asm │ ├── test_velozloader_msx5.asm │ ├── velozloader_CPC.asm │ ├── velozloader_msx6.asm │ ├── velozloader_zx.asm │ └── zx81 │ │ ├── load_p.p │ │ ├── load_z81.p │ │ ├── program2.z81 │ │ ├── restore_snap.asm │ │ ├── velozloader_zx81_P.asm │ │ └── velozloader_zx81_Z81.asm ├── bmp │ ├── 81.bmp │ ├── amstred.bmp │ ├── msx.bmp │ ├── zx81.bmp │ └── zxspectrum.bmp ├── cpcfiles.cpp ├── cpcfiles.h ├── funciones.cpp ├── funciones.h ├── loaders.cpp ├── loaders.h ├── mainForm.cpp ├── mainForm.ddp ├── mainForm.dfm ├── mainForm.h ├── msxfiles.cpp ├── msxfiles.h ├── otla.bpr ├── otla.cpp ├── otla.dsk ├── otla.ico ├── otla.res ├── otla0.ico ├── pbfs.ico ├── proyectootla.bpg ├── proyectootla.dsk ├── sbb.cpp ├── sbb.h ├── sbb.ico ├── signaltest.cpp ├── signaltest.h ├── wav2.cpp ├── wav2.h ├── wavmonitorForm.cpp ├── wavmonitorForm.ddp ├── wavmonitorForm.dfm ├── wavmonitorForm.h ├── zxfiles.cpp └── zxfiles.h ├── source_k7zx_ 4.3 ├── DirForm.cpp ├── DirForm.ddp ├── DirForm.dfm ├── DirForm.h ├── K7zx.bpr ├── MainForm.cpp ├── MainForm.ddp ├── MainForm.dfm ├── MainForm.h ├── PlayerForm.cpp ├── PlayerForm.ddp ├── PlayerForm.dfm ├── PlayerForm.h ├── ProressForm.cpp ├── ProressForm.ddp ├── ProressForm.dfm ├── ProressForm.h ├── SettingdForm.cpp ├── SettingdForm.ddp ├── SettingdForm.dfm ├── SettingdForm.h ├── ZXCODE.CPP ├── ZXCODE.h ├── about.cpp ├── about.ddp ├── about.dfm ├── about.h ├── asm │ ├── Fi22.asm │ ├── Fi26.asm │ ├── Fi28.asm │ ├── FiQ.asm │ ├── FiQfast.asm │ ├── Fi_mini.asm │ ├── Fsk.asm │ ├── Fsk_debug.asm │ ├── Fsk_mini.asm │ ├── Maestoso.asm │ ├── agitatto.asm │ ├── andante.asm │ ├── delta.asm │ ├── escurridofast.asm │ ├── escurridoslow.asm │ ├── manDiferencial.asm │ ├── manchester.asm │ ├── milks.asm │ ├── npu.asm │ ├── npu_R.asm │ ├── presto.asm │ ├── raudo.asm │ ├── raudo48000.asm │ ├── rom.asm │ ├── rom_mini.asm │ ├── scherzando.asm │ ├── slow.asm │ ├── slow_tabla.asm │ ├── snap.asm │ ├── ultra.asm │ ├── ultra_r.asm │ └── vivace.asm ├── k7.cpp ├── k7zx.cpp ├── k7zx.res ├── rutinas.cpp ├── rutinas.h ├── textos.cpp ├── textos.h ├── versiones.txt ├── zxfiles.cpp ├── zxfiles.h ├── zxwav.cpp └── zxwav.h └── wiki ├── AdaptacionZx81.wiki ├── AdjustTool.wiki ├── ComoCargar.wiki ├── ComoFunciona.wiki ├── CuestionCompresion.wiki ├── DefinicionAudio.wiki ├── HistoriaVersiones.wiki ├── K7Zx.wiki ├── LoadingLinks.wiki ├── OtlaBuilder.wiki ├── OtlaPlayer.wiki ├── PreguntasFrecuentes.wiki ├── ProyectoOtla.wiki ├── SbbFormat.wiki └── WavForms.wiki /source/81files.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef zx81filesH 4 | #define zx81filesH 5 | 6 | #include "sbb.h" 7 | 8 | #pragma pack(push, 1) 9 | typedef struct 10 | { 11 | 12 | unsigned short HLx; 13 | unsigned short DEx; 14 | unsigned short BCx; 15 | unsigned short AFx; 16 | unsigned short IY; 17 | unsigned short IX; 18 | unsigned short HL; 19 | unsigned short DE; 20 | unsigned short BC; 21 | unsigned short AF; 22 | 23 | unsigned short SP; 24 | unsigned short PC; 25 | 26 | unsigned char R; 27 | unsigned char I; 28 | unsigned char IM; 29 | unsigned char EI_DI; 30 | 31 | unsigned char NMI; 32 | unsigned char HSYNC; 33 | 34 | unsigned char aux1; 35 | unsigned char aux2; 36 | 37 | } 38 | st_snap_81; 39 | 40 | #pragma pack(pop) 41 | 42 | 43 | extern unsigned char prbuff_membot [0x40]; 44 | 45 | int lee_p (const char *filename,ts_sbb_header *head,ts_sbb_block *blocks); 46 | 47 | int lee_z81 (const char *filename,ts_sbb_header *head,ts_sbb_block *blocks); 48 | 49 | 50 | //--------------------------------------------------------------------------- 51 | #endif 52 | -------------------------------------------------------------------------------- /source/AboutForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------- 2 | #include 3 | #pragma hdrstop 4 | 5 | #include "AboutForm.h" 6 | //--------------------------------------------------------------------- 7 | #pragma resource "*.dfm" 8 | TAboutBox *AboutBox; 9 | //--------------------------------------------------------------------- 10 | __fastcall TAboutBox::TAboutBox(TComponent* AOwner) 11 | : TForm(AOwner) 12 | { 13 | 14 | } 15 | //--------------------------------------------------------------------- 16 | 17 | -------------------------------------------------------------------------------- /source/AboutForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/AboutForm.ddp -------------------------------------------------------------------------------- /source/AboutForm.h: -------------------------------------------------------------------------------- 1 | //---------------------------------------------------------------------------- 2 | #ifndef AboutFormH 3 | #define AboutFormH 4 | //---------------------------------------------------------------------------- 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | //---------------------------------------------------------------------------- 16 | class TAboutBox : public TForm 17 | { 18 | __published: 19 | TPanel *Panel1; 20 | TLabel *ProductName; 21 | TLabel *Version; 22 | TLabel *Copyright; 23 | TLabel *Comments; 24 | TButton *OKButton; 25 | TImage *Image1; 26 | TLabel *Label1; 27 | private: 28 | public: 29 | virtual __fastcall TAboutBox(TComponent* AOwner); 30 | }; 31 | //---------------------------------------------------------------------------- 32 | extern PACKAGE TAboutBox *AboutBox; 33 | //---------------------------------------------------------------------------- 34 | #endif 35 | -------------------------------------------------------------------------------- /source/AdjustForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/AdjustForm.ddp -------------------------------------------------------------------------------- /source/AdjustForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef AdjustFormH 4 | #define AdjustFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TAdjustFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TButton *CloseBtn; 16 | TGroupBox *GroupBox1; 17 | TButton *PlayProgramBtn; 18 | TButton *MakeProgramBtn; 19 | TGroupBox *GroupBox2; 20 | TComboBox *FrecuenciaCmbBx; 21 | TComboBox *FormaCmbBx; 22 | TButton *MakeSignalBtn; 23 | TCheckBox *InvertChkBx; 24 | TComboBox *TestSignalCmbBx; 25 | TButton *PlaySignalBtn; 26 | TImageList *wavImgLst; 27 | void __fastcall FormaCmbBxDrawItem(TWinControl *Control, int Index, 28 | TRect &Rect, TOwnerDrawState State); 29 | void __fastcall MakeProgramBtnClick(TObject *Sender); 30 | void __fastcall MakeSignalBtnClick(TObject *Sender); 31 | void __fastcall CloseBtnClick(TObject *Sender); 32 | void __fastcall FrecuenciaCmbBxChange(TObject *Sender); 33 | void __fastcall PlayProgramBtnClick(TObject *Sender); 34 | void __fastcall PlaySignalBtnClick(TObject *Sender); 35 | private: // User declarations 36 | AnsiString ProgramWav; 37 | public: // User declarations 38 | __fastcall TAdjustFrm(TComponent* Owner); 39 | char Maquina; 40 | AnsiString OutputDir; 41 | AnsiString SignalName; 42 | }; 43 | //--------------------------------------------------------------------------- 44 | extern PACKAGE TAdjustFrm *AdjustFrm; 45 | //--------------------------------------------------------------------------- 46 | #endif 47 | -------------------------------------------------------------------------------- /source/BatchForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/BatchForm.ddp -------------------------------------------------------------------------------- /source/BatchForm.dfm: -------------------------------------------------------------------------------- 1 | object BatchFrm: TBatchFrm 2 | Left = 318 3 | Top = 255 4 | BorderStyle = bsDialog 5 | Caption = 'BatchFrm' 6 | ClientHeight = 345 7 | ClientWidth = 321 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poMainFormCenter 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object InputLbl: TLabel 19 | Left = 8 20 | Top = 48 21 | Width = 38 22 | Height = 13 23 | Caption = 'InputLbl' 24 | end 25 | object OutputLbl: TLabel 26 | Left = 8 27 | Top = 96 28 | Width = 46 29 | Height = 13 30 | Caption = 'Output dir' 31 | end 32 | object Label2: TLabel 33 | Left = 8 34 | Top = 8 35 | Width = 32 36 | Height = 13 37 | Caption = 'Label2' 38 | end 39 | object Memo1: TMemo 40 | Left = 0 41 | Top = 190 42 | Width = 321 43 | Height = 138 44 | Align = alBottom 45 | Lines.Strings = ( 46 | 'Memo1') 47 | ReadOnly = True 48 | TabOrder = 8 49 | end 50 | object ProccedBtn: TButton 51 | Left = 16 52 | Top = 144 53 | Width = 81 54 | Height = 25 55 | Caption = 'Procced' 56 | TabOrder = 0 57 | OnClick = ProccedBtnClick 58 | end 59 | object InputDirEdt: TEdit 60 | Left = 8 61 | Top = 64 62 | Width = 241 63 | Height = 21 64 | TabOrder = 4 65 | Text = 'InputDirEdt' 66 | end 67 | object InputDirBtn: TButton 68 | Left = 268 69 | Top = 56 70 | Width = 25 71 | Height = 17 72 | Caption = '...' 73 | TabOrder = 5 74 | OnClick = InputDirBtnClick 75 | end 76 | object OutputDirEdt: TEdit 77 | Left = 8 78 | Top = 112 79 | Width = 241 80 | Height = 21 81 | TabOrder = 6 82 | Text = 'OutputDirEdt' 83 | end 84 | object OutputDirBtn: TButton 85 | Left = 268 86 | Top = 104 87 | Width = 25 88 | Height = 17 89 | Caption = '...' 90 | TabOrder = 7 91 | OnClick = OutputDirBtnClick 92 | end 93 | object CancelBtn: TButton 94 | Left = 163 95 | Top = 145 96 | Width = 75 97 | Height = 25 98 | Cancel = True 99 | Caption = 'Cancel' 100 | ModalResult = 2 101 | TabOrder = 1 102 | end 103 | object ExtensionCmbBx: TComboBox 104 | Left = 8 105 | Top = 24 106 | Width = 73 107 | Height = 21 108 | Style = csDropDownList 109 | ItemHeight = 13 110 | TabOrder = 2 111 | Items.Strings = ( 112 | '.TAP' 113 | '.Z80' 114 | '.SNA' 115 | '.BIN' 116 | '.ROM' 117 | '.CAS' 118 | '.P' 119 | '.Z81') 120 | end 121 | object ProgressBar1: TProgressBar 122 | Left = 0 123 | Top = 328 124 | Width = 321 125 | Height = 17 126 | Align = alBottom 127 | Min = 0 128 | Max = 100 129 | TabOrder = 9 130 | end 131 | object MakeMp3ChkBx: TCheckBox 132 | Left = 144 133 | Top = 24 134 | Width = 137 135 | Height = 17 136 | Caption = 'Make mp3 file' 137 | TabOrder = 3 138 | end 139 | end 140 | -------------------------------------------------------------------------------- /source/BatchForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef BatchFormH 4 | #define BatchFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TBatchFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TMemo *Memo1; 16 | TButton *ProccedBtn; 17 | TLabel *InputLbl; 18 | TEdit *InputDirEdt; 19 | TButton *InputDirBtn; 20 | TLabel *OutputLbl; 21 | TEdit *OutputDirEdt; 22 | TButton *OutputDirBtn; 23 | TButton *CancelBtn; 24 | TComboBox *ExtensionCmbBx; 25 | TLabel *Label2; 26 | TProgressBar *ProgressBar1; 27 | TCheckBox *MakeMp3ChkBx; 28 | void __fastcall InputDirBtnClick(TObject *Sender); 29 | void __fastcall OutputDirBtnClick(TObject *Sender); 30 | void __fastcall ProccedBtnClick(TObject *Sender); 31 | private: // User declarations 32 | void __fastcall ConverToSbb( ); 33 | void __fastcall ConverToWav( ); 34 | int __fastcall BuildSbb(AnsiString File ); 35 | int __fastcall N_Files(AnsiString mask ); 36 | char Maquina; 37 | int Tipo; 38 | int M_y_E; 39 | public: // User declarations 40 | __fastcall TBatchFrm(TComponent* Owner); 41 | 42 | void __fastcall Batch ( char m , int t ); 43 | 44 | 45 | }; 46 | //--------------------------------------------------------------------------- 47 | extern PACKAGE TBatchFrm *BatchFrm; 48 | //--------------------------------------------------------------------------- 49 | #endif 50 | -------------------------------------------------------------------------------- /source/DirForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | 6 | #include "DirForm.h" 7 | //--------------------------------------------------------------------------- 8 | #pragma package(smart_init) 9 | #pragma resource "*.dfm" 10 | TDirFrm *DirFrm; 11 | //--------------------------------------------------------------------------- 12 | __fastcall TDirFrm::TDirFrm(TComponent* Owner) 13 | : TForm(Owner) 14 | { 15 | } 16 | //--------------------------------------------------------------------------- 17 | void __fastcall TDirFrm::CancelBtnClick(TObject *Sender) 18 | { 19 | Close(); 20 | } 21 | //--------------------------------------------------------------------------- 22 | void __fastcall TDirFrm::AceptarBtnClick(TObject *Sender) 23 | { 24 | ModalResult=mrOk; 25 | } 26 | //--------------------------------------------------------------------------- 27 | void __fastcall TDirFrm::DirectorioInicial(AnsiString Directorio) 28 | { 29 | try{ 30 | DirectoryListBox1->Directory=Directorio; 31 | } 32 | catch (...) 33 | {} 34 | } 35 | -------------------------------------------------------------------------------- /source/DirForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/DirForm.ddp -------------------------------------------------------------------------------- /source/DirForm.dfm: -------------------------------------------------------------------------------- 1 | object DirFrm: TDirFrm 2 | Left = 329 3 | Top = 185 4 | BorderStyle = bsDialog 5 | Caption = 'Output dir...' 6 | ClientHeight = 260 7 | ClientWidth = 253 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poOwnerFormCenter 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object DriveComboBox1: TDriveComboBox 19 | Left = 16 20 | Top = 16 21 | Width = 217 22 | Height = 19 23 | DirList = DirectoryListBox1 24 | TabOrder = 0 25 | TextCase = tcUpperCase 26 | end 27 | object DirectoryListBox1: TDirectoryListBox 28 | Left = 16 29 | Top = 40 30 | Width = 209 31 | Height = 169 32 | ItemHeight = 16 33 | TabOrder = 1 34 | end 35 | object AceptarBtn: TButton 36 | Left = 16 37 | Top = 224 38 | Width = 81 39 | Height = 25 40 | Caption = 'OK' 41 | TabOrder = 2 42 | OnClick = AceptarBtnClick 43 | end 44 | object CancelBtn: TButton 45 | Left = 136 46 | Top = 224 47 | Width = 89 48 | Height = 25 49 | Cancel = True 50 | Caption = 'Cancel' 51 | TabOrder = 3 52 | OnClick = CancelBtnClick 53 | end 54 | end 55 | -------------------------------------------------------------------------------- /source/DirForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef DirFormH 4 | #define DirFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TDirFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TDriveComboBox *DriveComboBox1; 16 | TDirectoryListBox *DirectoryListBox1; 17 | TButton *AceptarBtn; 18 | TButton *CancelBtn; 19 | void __fastcall CancelBtnClick(TObject *Sender); 20 | void __fastcall AceptarBtnClick(TObject *Sender); 21 | private: // User declarations 22 | public: // User declarations 23 | __fastcall TDirFrm(TComponent* Owner); 24 | void __fastcall DirectorioInicial(AnsiString Directorio); 25 | 26 | }; 27 | //--------------------------------------------------------------------------- 28 | extern PACKAGE TDirFrm *DirFrm; 29 | //--------------------------------------------------------------------------- 30 | #endif 31 | -------------------------------------------------------------------------------- /source/InputForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/InputForm.ddp -------------------------------------------------------------------------------- /source/InputForm.h: -------------------------------------------------------------------------------- 1 | //---------------------------------------------------------------------------- 2 | #ifndef InputFormH 3 | #define InputFormH 4 | //---------------------------------------------------------------------------- 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include "sbb.h" 19 | #include 20 | #include 21 | //---------------------------------------------------------------------------- 22 | 23 | class TInputBlocksDlg : public TForm 24 | { 25 | __published: 26 | TButton *OKBtn; 27 | TButton *CancelBtn; 28 | TListView *ListView1; 29 | TMemo *Memo1; 30 | TLabel *ClearLbl; 31 | TLabel *UsrLbl; 32 | TEdit *ClearEdt; 33 | TComboBox *UsrCmbBx; 34 | TPopupMenu *PopupMenu1; 35 | TMenuItem *Modify1; 36 | TMenuItem *Seedata1; 37 | TMenuItem *ConverBasic1; 38 | TImageList *ImageList1; 39 | TMenuItem *Restore1; 40 | TLabel *Label1; 41 | TMenuItem *Viewdecimalhexadecimal1; 42 | void __fastcall OKBtnClick(TObject *Sender); 43 | void __fastcall Modify1Click(TObject *Sender); 44 | void __fastcall Seedata1Click(TObject *Sender); 45 | void __fastcall PopupMenu1Popup(TObject *Sender); 46 | void __fastcall ConverBasic1Click(TObject *Sender); 47 | void __fastcall Restore1Click(TObject *Sender); 48 | void __fastcall Viewdecimalhexadecimal1Click(TObject *Sender); 49 | 50 | private: 51 | void __fastcall filldata(); 52 | int __fastcall ROMMSX (const char * file); 53 | ts_sbb_block blocks_sbb[16]; 54 | public: 55 | ts_sbb_header head_sbb; 56 | ts_sbb_block *res_blocks_sbb ; 57 | virtual __fastcall TInputBlocksDlg(TComponent* AOwner); 58 | int __fastcall Abre(AnsiString Fichero); 59 | int __fastcall Edit(ts_sbb_header *in_head_sbb ,ts_sbb_block *in_blocks_sbb); 60 | bool enheaxadecimal; 61 | }; 62 | //---------------------------------------------------------------------------- 63 | extern PACKAGE TInputBlocksDlg *InputBlocksDlg; 64 | //---------------------------------------------------------------------------- 65 | #endif 66 | -------------------------------------------------------------------------------- /source/ModificaForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------- 2 | #include 3 | #pragma hdrstop 4 | 5 | #include "ModificaForm.h" 6 | //--------------------------------------------------------------------- 7 | #pragma resource "*.dfm" 8 | TModificaDlg *ModificaDlg; 9 | //--------------------------------------------------------------------- 10 | __fastcall TModificaDlg::TModificaDlg(TComponent* AOwner) 11 | : TForm(AOwner) 12 | { 13 | } 14 | //--------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /source/ModificaForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/ModificaForm.ddp -------------------------------------------------------------------------------- /source/ModificaForm.dfm: -------------------------------------------------------------------------------- 1 | object ModificaDlg: TModificaDlg 2 | Left = 245 3 | Top = 108 4 | BorderStyle = bsDialog 5 | Caption = 'Dialog' 6 | ClientHeight = 176 7 | ClientWidth = 317 8 | Color = clBtnFace 9 | ParentFont = True 10 | OldCreateOrder = True 11 | Position = poMainFormCenter 12 | DesignSize = ( 13 | 317 14 | 176) 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Bevel1: TBevel 18 | Left = 8 19 | Top = 8 20 | Width = 297 21 | Height = 121 22 | Shape = bsFrame 23 | end 24 | object Label1: TLabel 25 | Left = 24 26 | Top = 24 27 | Width = 64 28 | Height = 13 29 | Caption = 'Bloack Name' 30 | end 31 | object Label2: TLabel 32 | Left = 24 33 | Top = 48 34 | Width = 63 35 | Height = 13 36 | Caption = 'Start Address' 37 | end 38 | object Label3: TLabel 39 | Left = 24 40 | Top = 72 41 | Width = 20 42 | Height = 13 43 | Caption = 'Size' 44 | end 45 | object Label4: TLabel 46 | Left = 24 47 | Top = 96 48 | Width = 64 49 | Height = 13 50 | Caption = 'Exec address' 51 | end 52 | object OKBtn: TButton 53 | Left = 95 54 | Top = 148 55 | Width = 75 56 | Height = 25 57 | Anchors = [akRight, akBottom] 58 | Caption = 'OK' 59 | Default = True 60 | ModalResult = 1 61 | TabOrder = 0 62 | end 63 | object CancelBtn: TButton 64 | Left = 183 65 | Top = 148 66 | Width = 75 67 | Height = 25 68 | Cancel = True 69 | Caption = 'Cancel' 70 | ModalResult = 2 71 | TabOrder = 1 72 | end 73 | object NameEdt: TEdit 74 | Left = 160 75 | Top = 16 76 | Width = 129 77 | Height = 21 78 | TabOrder = 2 79 | Text = 'NameEdt' 80 | end 81 | object StartEdt: TEdit 82 | Left = 160 83 | Top = 40 84 | Width = 129 85 | Height = 21 86 | TabOrder = 3 87 | Text = 'StartEdt' 88 | end 89 | object SizeEdt: TEdit 90 | Left = 160 91 | Top = 64 92 | Width = 129 93 | Height = 21 94 | TabOrder = 4 95 | Text = 'SizeEdt' 96 | end 97 | object ExecEdt: TEdit 98 | Left = 160 99 | Top = 88 100 | Width = 129 101 | Height = 21 102 | TabOrder = 5 103 | Text = 'ExecEdt' 104 | end 105 | object Memo1: TMemo 106 | Left = 0 107 | Top = 0 108 | Width = 313 109 | Height = 137 110 | Anchors = [akLeft, akTop, akRight, akBottom] 111 | Font.Charset = DEFAULT_CHARSET 112 | Font.Color = clWindowText 113 | Font.Height = -11 114 | Font.Name = 'Terminal' 115 | Font.Style = [] 116 | Lines.Strings = ( 117 | 'Memo1') 118 | ParentFont = False 119 | ScrollBars = ssBoth 120 | TabOrder = 6 121 | Visible = False 122 | WordWrap = False 123 | end 124 | end 125 | -------------------------------------------------------------------------------- /source/ModificaForm.h: -------------------------------------------------------------------------------- 1 | //---------------------------------------------------------------------------- 2 | #ifndef ModificaFormH 3 | #define ModificaFormH 4 | //---------------------------------------------------------------------------- 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | //---------------------------------------------------------------------------- 16 | class TModificaDlg : public TForm 17 | { 18 | __published: 19 | TButton *OKBtn; 20 | TButton *CancelBtn; 21 | TBevel *Bevel1; 22 | TLabel *Label1; 23 | TEdit *NameEdt; 24 | TEdit *StartEdt; 25 | TLabel *Label2; 26 | TEdit *SizeEdt; 27 | TLabel *Label3; 28 | TEdit *ExecEdt; 29 | TLabel *Label4; 30 | TMemo *Memo1; 31 | private: 32 | public: 33 | virtual __fastcall TModificaDlg(TComponent* AOwner); 34 | }; 35 | //---------------------------------------------------------------------------- 36 | extern PACKAGE TModificaDlg *ModificaDlg; 37 | //---------------------------------------------------------------------------- 38 | #endif 39 | -------------------------------------------------------------------------------- /source/OptionsForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | 6 | #include "OptionsForm.h" 7 | #include "DirForm.h" 8 | //--------------------------------------------------------------------------- 9 | #pragma package(smart_init) 10 | #pragma resource "*.dfm" 11 | TOptionsFrm *OptionsFrm; 12 | //--------------------------------------------------------------------------- 13 | __fastcall TOptionsFrm::TOptionsFrm(TComponent* Owner) 14 | : TForm(Owner) 15 | {} 16 | //--------------------------------------------------------------------------- 17 | 18 | void __fastcall TOptionsFrm::DirBtnClick(TObject *Sender) 19 | { 20 | DirFrm->ShowModal(); 21 | if (DirFrm->ModalResult==mrOk) 22 | WavDirEdt->Text=DirFrm->DirectoryListBox1->Directory+"\\"; 23 | } 24 | //--------------------------------------------------------------------------- 25 | 26 | void __fastcall TOptionsFrm::LameBtnClick(TObject *Sender) 27 | { 28 | if (OpenDialog1->Execute()) 29 | LameEdt->Text=OpenDialog1->FileName; 30 | } 31 | //--------------------------------------------------------------------------- 32 | 33 | void __fastcall TOptionsFrm::CancelBtnClick(TObject *Sender) 34 | { 35 | Close(); 36 | } 37 | //--------------------------------------------------------------------------- 38 | 39 | void __fastcall TOptionsFrm::AceptarBtnClick(TObject *Sender) 40 | { 41 | ModalResult=mrOk; 42 | } 43 | //--------------------------------------------------------------------------- 44 | 45 | -------------------------------------------------------------------------------- /source/OptionsForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/OptionsForm.ddp -------------------------------------------------------------------------------- /source/OptionsForm.dfm: -------------------------------------------------------------------------------- 1 | object OptionsFrm: TOptionsFrm 2 | Left = 294 3 | Top = 118 4 | Width = 387 5 | Height = 232 6 | Caption = 'Options' 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poMainFormCenter 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 8 19 | Top = 40 20 | Width = 46 21 | Height = 13 22 | Caption = 'Output dir' 23 | end 24 | object Label2: TLabel 25 | Left = 8 26 | Top = 104 27 | Width = 26 28 | Height = 13 29 | Caption = 'Lame' 30 | end 31 | object Label3: TLabel 32 | Left = 8 33 | Top = 128 34 | Width = 35 35 | Height = 13 36 | Caption = 'BitRate' 37 | end 38 | object WavDirEdt: TEdit 39 | Left = 64 40 | Top = 40 41 | Width = 265 42 | Height = 21 43 | TabOrder = 0 44 | Text = 'WavDirEdt' 45 | end 46 | object LameEdt: TEdit 47 | Left = 64 48 | Top = 96 49 | Width = 265 50 | Height = 21 51 | TabOrder = 1 52 | Text = 'LameEdt' 53 | end 54 | object DirBtn: TButton 55 | Left = 344 56 | Top = 40 57 | Width = 25 58 | Height = 17 59 | Caption = '...' 60 | TabOrder = 2 61 | OnClick = DirBtnClick 62 | end 63 | object LameBtn: TButton 64 | Left = 344 65 | Top = 96 66 | Width = 25 67 | Height = 17 68 | Caption = '...' 69 | TabOrder = 3 70 | OnClick = LameBtnClick 71 | end 72 | object BitRateCmbBx: TComboBox 73 | Left = 64 74 | Top = 120 75 | Width = 105 76 | Height = 21 77 | Style = csDropDownList 78 | ItemHeight = 13 79 | TabOrder = 4 80 | Items.Strings = ( 81 | '160' 82 | '192' 83 | '224' 84 | '256' 85 | '320') 86 | end 87 | object AceptarBtn: TButton 88 | Left = 96 89 | Top = 159 90 | Width = 81 91 | Height = 25 92 | Caption = 'OK' 93 | TabOrder = 5 94 | OnClick = AceptarBtnClick 95 | end 96 | object CancelBtn: TButton 97 | Left = 200 98 | Top = 159 99 | Width = 89 100 | Height = 25 101 | Cancel = True 102 | Caption = 'Cancel' 103 | TabOrder = 6 104 | OnClick = CancelBtnClick 105 | end 106 | object ForceCubicChkBx: TCheckBox 107 | Left = 176 108 | Top = 120 109 | Width = 185 110 | Height = 17 111 | Caption = 'Force Cubic Wavform for mp3' 112 | TabOrder = 7 113 | end 114 | object HexadecimalChkBx: TCheckBox 115 | Left = 8 116 | Top = 8 117 | Width = 289 118 | Height = 17 119 | Caption = 'View some numbers in hexadecimal' 120 | TabOrder = 8 121 | end 122 | object InfoChkBx: TCheckBox 123 | Left = 64 124 | Top = 64 125 | Width = 209 126 | Height = 17 127 | Caption = 'Put info in output file name' 128 | TabOrder = 9 129 | end 130 | object OpenDialog1: TOpenDialog 131 | Filter = '*.exe|*.exe' 132 | Left = 24 133 | Top = 152 134 | end 135 | end 136 | -------------------------------------------------------------------------------- /source/OptionsForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef OptionsFormH 4 | #define OptionsFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TOptionsFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TEdit *WavDirEdt; 16 | TLabel *Label1; 17 | TLabel *Label2; 18 | TEdit *LameEdt; 19 | TOpenDialog *OpenDialog1; 20 | TButton *DirBtn; 21 | TButton *LameBtn; 22 | TComboBox *BitRateCmbBx; 23 | TLabel *Label3; 24 | TButton *AceptarBtn; 25 | TButton *CancelBtn; 26 | TCheckBox *ForceCubicChkBx; 27 | TCheckBox *HexadecimalChkBx; 28 | TCheckBox *InfoChkBx; 29 | void __fastcall DirBtnClick(TObject *Sender); 30 | void __fastcall LameBtnClick(TObject *Sender); 31 | void __fastcall CancelBtnClick(TObject *Sender); 32 | void __fastcall AceptarBtnClick(TObject *Sender); 33 | private: // User declarations 34 | public: // User declarations 35 | __fastcall TOptionsFrm(TComponent* Owner); 36 | }; 37 | //--------------------------------------------------------------------------- 38 | extern PACKAGE TOptionsFrm *OptionsFrm; 39 | //--------------------------------------------------------------------------- 40 | #endif 41 | -------------------------------------------------------------------------------- /source/SettingsForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/SettingsForm.ddp -------------------------------------------------------------------------------- /source/SettingsForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef SettingsFormH 4 | #define SettingsFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TSettingsFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TOpenDialog *OpenDialog1; 16 | TButton *AceptarBtn; 17 | TButton *CancelBtn; 18 | TGroupBox *GroupBox1; 19 | TLabel *Label1; 20 | TLabel *Label3; 21 | TLabel *Label4; 22 | TEdit *DirZXEdt; 23 | TButton *DirZXBtn; 24 | TEdit *DirCPCEdt; 25 | TButton *DirCPCBtn; 26 | TEdit *DirMSXEdt; 27 | TButton *DirMSXBtn; 28 | TGroupBox *GroupBox2; 29 | TLabel *Label2; 30 | TLabel *Label5; 31 | TLabel *Label6; 32 | TEdit *Rom2BinEdt; 33 | TButton *Rom2BinBtn; 34 | TEdit *DiskMgrEdt; 35 | TButton *DiskMngrBtn; 36 | TEdit *CPCToolEdt; 37 | TButton *CPCToolBtn; 38 | TLabel *Label8; 39 | TEdit *Dir81Edt; 40 | TButton *Dir81Btn; 41 | TCheckBox *HexadecimalChkBx; 42 | TGroupBox *GroupBox3; 43 | TLabel *Label7; 44 | TLabel *Label9; 45 | TLabel *Label10; 46 | TEdit *WavDirEdt; 47 | TEdit *LameEdt; 48 | TButton *DirBtn; 49 | TButton *LameBtn; 50 | TComboBox *BitRateCmbBx; 51 | TCheckBox *ForceCubicChkBx; 52 | TCheckBox *InfoChkBx; 53 | TCheckBox *ExtensionChkBx; 54 | void __fastcall DirZXBtnClick(TObject *Sender); 55 | void __fastcall Rom2BinBtnClick(TObject *Sender); 56 | void __fastcall CancelBtnClick(TObject *Sender); 57 | void __fastcall AceptarBtnClick(TObject *Sender); 58 | void __fastcall DirCPCBtnClick(TObject *Sender); 59 | void __fastcall DirMSXBtnClick(TObject *Sender); 60 | void __fastcall DiskMngrBtnClick(TObject *Sender); 61 | void __fastcall CPCToolBtnClick(TObject *Sender); 62 | void __fastcall Dir81BtnClick(TObject *Sender); 63 | void __fastcall DirBtnClick(TObject *Sender); 64 | void __fastcall LameBtnClick(TObject *Sender); 65 | private: // User declarations 66 | public: // User declarations 67 | __fastcall TSettingsFrm(TComponent* Owner); 68 | }; 69 | //--------------------------------------------------------------------------- 70 | extern PACKAGE TSettingsFrm *SettingsFrm; 71 | //--------------------------------------------------------------------------- 72 | #endif 73 | -------------------------------------------------------------------------------- /source/ToolsForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | 6 | #include "ToolsForm.h" 7 | #include "DirForm.h" 8 | //--------------------------------------------------------------------------- 9 | #pragma package(smart_init) 10 | #pragma resource "*.dfm" 11 | TToolsFrm *ToolsFrm; 12 | //--------------------------------------------------------------------------- 13 | __fastcall TToolsFrm::TToolsFrm(TComponent* Owner) 14 | : TForm(Owner) 15 | { 16 | } 17 | //--------------------------------------------------------------------------- 18 | void __fastcall TToolsFrm::DirZXBtnClick(TObject *Sender) 19 | { 20 | DirFrm->ShowModal(); 21 | if (DirFrm->ModalResult==mrOk) 22 | DirZXEdt->Text=DirFrm->DirectoryListBox1->Directory; 23 | } 24 | //--------------------------------------------------------------------------- 25 | void __fastcall TToolsFrm::DirCPCBtnClick(TObject *Sender) 26 | { 27 | DirFrm->ShowModal(); 28 | if (DirFrm->ModalResult==mrOk) 29 | DirCPCEdt->Text=DirFrm->DirectoryListBox1->Directory; 30 | 31 | } 32 | //--------------------------------------------------------------------------- 33 | 34 | void __fastcall TToolsFrm::DirMSXBtnClick(TObject *Sender) 35 | { 36 | DirFrm->ShowModal(); 37 | if (DirFrm->ModalResult==mrOk) 38 | DirMSXEdt->Text=DirFrm->DirectoryListBox1->Directory; 39 | } 40 | //--------------------------------------------------------------------------- 41 | void __fastcall TToolsFrm::Dir81BtnClick(TObject *Sender) 42 | { 43 | DirFrm->ShowModal(); 44 | if (DirFrm->ModalResult==mrOk) 45 | Dir81Edt->Text=DirFrm->DirectoryListBox1->Directory; 46 | 47 | } 48 | //--------------------------------------------------------------------------- 49 | 50 | void __fastcall TToolsFrm::Rom2BinBtnClick(TObject *Sender) 51 | { 52 | if(OpenDialog1->Execute()) 53 | Rom2BinEdt->Text=OpenDialog1->FileName; 54 | } 55 | //--------------------------------------------------------------------------- 56 | 57 | void __fastcall TToolsFrm::CancelBtnClick(TObject *Sender) 58 | { 59 | Close(); 60 | } 61 | //--------------------------------------------------------------------------- 62 | 63 | void __fastcall TToolsFrm::AceptarBtnClick(TObject *Sender) 64 | { 65 | ModalResult=mrOk; 66 | } 67 | //--------------------------------------------------------------------------- 68 | 69 | 70 | void __fastcall TToolsFrm::DiskMngrBtnClick(TObject *Sender) 71 | { 72 | if(OpenDialog1->Execute()) 73 | DiskMgrEdt->Text=OpenDialog1->FileName; 74 | } 75 | //--------------------------------------------------------------------------- 76 | 77 | void __fastcall TToolsFrm::CPCToolBtnClick(TObject *Sender) 78 | { 79 | if(OpenDialog1->Execute()) 80 | CPCToolEdt->Text=OpenDialog1->FileName; 81 | } 82 | 83 | //--------------------------------------------------------------------------- 84 | 85 | -------------------------------------------------------------------------------- /source/ToolsForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/ToolsForm.ddp -------------------------------------------------------------------------------- /source/ToolsForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef ToolsFormH 4 | #define ToolsFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TToolsFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TOpenDialog *OpenDialog1; 16 | TButton *AceptarBtn; 17 | TButton *CancelBtn; 18 | TGroupBox *GroupBox1; 19 | TLabel *Label1; 20 | TLabel *Label3; 21 | TLabel *Label4; 22 | TEdit *DirZXEdt; 23 | TButton *DirZXBtn; 24 | TEdit *DirCPCEdt; 25 | TButton *DirCPCBtn; 26 | TEdit *DirMSXEdt; 27 | TButton *DirMSXBtn; 28 | TGroupBox *GroupBox2; 29 | TLabel *Label2; 30 | TLabel *Label5; 31 | TLabel *Label6; 32 | TEdit *Rom2BinEdt; 33 | TButton *Rom2BinBtn; 34 | TEdit *DiskMgrEdt; 35 | TButton *DiskMngrBtn; 36 | TEdit *CPCToolEdt; 37 | TButton *CPCToolBtn; 38 | TLabel *Label8; 39 | TEdit *Dir81Edt; 40 | TButton *Dir81Btn; 41 | void __fastcall DirZXBtnClick(TObject *Sender); 42 | void __fastcall Rom2BinBtnClick(TObject *Sender); 43 | void __fastcall CancelBtnClick(TObject *Sender); 44 | void __fastcall AceptarBtnClick(TObject *Sender); 45 | void __fastcall DirCPCBtnClick(TObject *Sender); 46 | void __fastcall DirMSXBtnClick(TObject *Sender); 47 | void __fastcall DiskMngrBtnClick(TObject *Sender); 48 | void __fastcall CPCToolBtnClick(TObject *Sender); 49 | void __fastcall Dir81BtnClick(TObject *Sender); 50 | private: // User declarations 51 | public: // User declarations 52 | __fastcall TToolsFrm(TComponent* Owner); 53 | }; 54 | //--------------------------------------------------------------------------- 55 | extern PACKAGE TToolsFrm *ToolsFrm; 56 | //--------------------------------------------------------------------------- 57 | #endif 58 | -------------------------------------------------------------------------------- /source/asm/adjust/adjust.txt: -------------------------------------------------------------------------------- 1 | ----------------------------------spectrum 48k 2 | 3 | 11kHz sync cont xM sM xm Sm min max 4 | EMU 38-33 3.8125 8 3.25 5.5 3 4 5 | sb 6 | YAMAHA 7 | 8 | 9 | 12kHz sync cont xM sM xm Sm 10 | EMU 30-34 3.25 9 2.5625 3.5 2 4 11 | sb 12 | YAMAHA 13 | 14 | 15 | 22kHz sync cont xM sM xm Sm 16 | EMU 37-33 .75 .4375 0 1 17 | sb 18 | YAMAHA 19 | 20 | 21 | 24kHz sync cont xM sM xm Sm 22 | EMU 30-34 .5 .25 0 1 23 | sb 24 | YAMAHA 25 | 26 | ----------------------------------spectrum +2A 27 | 11kHz sync cont xM sM xm Sm 28 | EMU 38-37 3.8125 7.25 3.6875 4.875 29 | sb 30 | YAMAHA 31 | 32 | 33 | 12kHz sync cont xM sM xm Sm 34 | EMU 34-33 3.25 6 3.125 3.5 35 | sb 36 | YAMAHA 37 | 38 | 39 | 22kHz sync cont xM sM xm Sm 40 | EMU 0,75 7.25 0.6875 6.5 41 | sb 42 | YAMAHA 43 | 44 | 45 | 24kHz sync cont xM sM xm Sm 46 | EMU 0.5 8 0.375 7.5 47 | sb 48 | YAMAHA 49 | 50 | ----------------------------------cpc 51 | 11kHz sync cont xM sM xm Sm 52 | EMU 34 3.4375 7.875 3.4375 7.75 53 | sb 54 | YAMAHA 55 | 56 | 57 | 12kHz sync cont xM sM xm Sm 58 | EMU 32-31 3 1.875 2.9375 1 59 | sb 60 | YAMAHA 61 | 62 | 63 | 22kHz sync cont xM sM xm Sm 64 | EMU 34 .6875 8 .5625 7.5 65 | sb 66 | YAMAHA 67 | 68 | 69 | 24kHz sync cont xM sM xm Sm 70 | EMU 32-31 .375 7.5 .375 6.875 71 | sb 72 | YAMAHA 73 | 74 | ----------------------------------msx 75 | 11kHz sync cont xM sM xm Sm 76 | EMU 33 3.0625 2.75 3 1 77 | sb 33 3.124 3.5 2.9875 1 78 | sb 33 3.25 6 2.9375 2.75 79 | YAMAHA 33 3.375 10.5 2.75 4.8 80 | 81 | 82 | 12kHz sync cont xM sM xm Sm 83 | EMU 30 2.6875 7.875 2.5625 7.25 84 | sb 30 2.75 8 2.5 6.875 85 | sb 30 2.875 8 2.4375 6 86 | YAMAHA 30 2.875 7.75 2.375 3.5 87 | 88 | 89 | 22kHz sync cont xM sM xm Sm 90 | EMU 33 .375 7.5 .3125 6.875 91 | sb 33 .5 8 .25 5 92 | sb 33 .4375 7.8 .3125 6.5 93 | YAMAHA 33 4.3 200 .8 30 94 | 95 | 96 | 24kHz sync cont xM sM xm Sm 97 | EMU 30 .1875 4.875 0.625 1.875 98 | sb 30 4 4 0 99 | sb 30 4.5 3.625 100 | YAMAHA 30/18-17 0.25 6 0 0 101 | -------------------------------------------------------------------------------- /source/asm/adjust/adjust_81.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | s_width EQU 16444 4 | continua EQU 16445 5 | media1 EQU 16446 6 | d1 EQU 16448 7 | media2 EQU 16450 8 | d2 EQU 16452 9 | 10 | org 16514 11 | 12 | ;di 13 | out ($fd),a 14 | 15 | ld c , $fe 16 | 17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;; 18 | pii_0 ld d,c 19 | pii xor a 20 | out ($ff),a 21 | pi_LOW inc a 22 | in f,(c) 23 | jp po, pi_LOW 24 | 25 | out ($ff),a 26 | pi_HIGH inc a 27 | in f,(c) 28 | jp pe, pi_HIGH 29 | 30 | cp $39 ;29 31 | rl d 32 | cp $29 ;19 33 | jr nc, pii 34 | 35 | inc d 36 | jr nz, pii_0 37 | 38 | ld (s_width),a 39 | ;;;;;;;;;;;;;;;;;;;;;;;;;; 40 | ld de , buffer 41 | ld b, 78 ;36 ;70 42 | 43 | more ld a, c 44 | inc a 45 | LOW inc a 46 | in f,(c) 47 | jp pe, LOW 48 | 49 | ld (de),a 50 | inc de 51 | dec b 52 | jp z , finmuestreo 53 | 54 | ld a, c 55 | inc a ;7+6+4+10+4+4= 35 56 | HIGH inc a 57 | in f , (c) 58 | jp po , HIGH 59 | 60 | ld (de),a 61 | inc de 62 | dec b 63 | jp nz , more 64 | 65 | finmuestreo 66 | out ($ff),a ; hsync 67 | 68 | ;;;;;;;;;;;;;;;;; calcual nivel de continua 69 | 70 | ld hl , buffer + 12 +64 71 | ld b, 32 72 | ld a,$80 73 | bcontinua 74 | dec hl 75 | sub (hl) 76 | dec hl 77 | add a,(hl) 78 | djnz bcontinua 79 | 80 | ld (continua),a 81 | 82 | ; calcula medias 83 | ;jr skip1 ; 84 | push iy 85 | 86 | ; ld hl, buffer +12 87 | call sumamuestras 88 | ld (media1),de 89 | ; calcula medias cuadrado 90 | ;ld de,(media1 ) 91 | call sumacuadrados 92 | ld (d1),iy 93 | 94 | ; calcula medias 95 | ld hl, buffer +13 96 | call sumamuestras 97 | ld (media2),de 98 | ; calcula medias cuadrado 99 | ;ld de,(media2 ) 100 | call sumacuadrados 101 | ld (d2),iy 102 | 103 | pop iy 104 | 105 | skip1 106 | out ($fe),a 107 | tarda djnz tarda 108 | ;ei 109 | ret 110 | 111 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,, 112 | 113 | sumamuestras 114 | ld iy,0 115 | ld de,0 116 | ld b,32 117 | bmuestras 118 | ld e,(hl) 119 | add iy,de 120 | xor a 121 | rld ; muestra= muestra*16 122 | inc hl 123 | inc hl 124 | djnz bmuestras 125 | push iy 126 | pop de 127 | rr d 128 | rr e 129 | ret nc 130 | inc de 131 | ret 132 | 133 | ;;;;;;;;;;;;;;, 134 | 135 | sumacuadrados 136 | ld iy,0 137 | ld c,e ; c= ; 16*media 138 | ld b,32 139 | bcuadrados 140 | dec hl 141 | dec hl 142 | ld a,(hl) 143 | sub c 144 | jr nc,positivo 145 | neg 146 | positivo 147 | push hl; 148 | ld hl,0 149 | ld d,h 150 | ld e,a 151 | or a 152 | jr z,nosuma 153 | multiplica 154 | add hl,de 155 | dec a 156 | jr nz, multiplica 157 | nosuma 158 | ex de,hl ; de=(x-m)^2 159 | pop hl 160 | 161 | add iy,de 162 | djnz bcuadrados 163 | ret 164 | buffer nop 165 | ;;;;;;;;;;;;;;;;;;;, 166 | 167 | -------------------------------------------------------------------------------- /source/asm/adjust/adjust_81.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/asm/adjust/adjust_81.p -------------------------------------------------------------------------------- /source/asm/adjust/adjust_CPC.asm: -------------------------------------------------------------------------------- 1 | 2 | org $8000 3 | start 4 | di 5 | exx 6 | push bc 7 | ld bc,$f610 8 | out (c),c ;OUT &F600,&10 9 | ld bc,$7f10 10 | 11 | out (c),c ;border 12 | ld c , $44 13 | exx 14 | 15 | pii_0 ld bc, &f510 ; ear 16 | pii 17 | exx 18 | out (c), b ; a ; 19 | exx 20 | 21 | xor a 22 | 23 | pi_LOW inc a 24 | in f,(c) 25 | jp m, pi_LOW 26 | 27 | exx 28 | out (c),c 29 | exx 30 | 31 | pi_HIGH inc a 32 | in f,(c) 33 | jp p , pi_HIGH 34 | 35 | 36 | cp $39 37 | rl c ; d 38 | cp $29 39 | jr nc, pii 40 | 41 | inc c ; d 42 | jr nz , pii_0 43 | 44 | 45 | ld (s_width),a 46 | 47 | ;;;;;;;;;;;;;;;;;;;;;;;;;; 48 | ld de , buffer 49 | ld hl , start +$04ff 50 | 51 | more ld a, l ; $fe 52 | 53 | LOW inc a 54 | in f,(c) 55 | jp m, LOW 56 | 57 | ld (de),a 58 | inc de 59 | 60 | ld a,d 61 | cp h ;4+(start/256) 62 | jp z , finmuestreo 63 | 64 | ld a, l ;$fe ;7+6+4+4+10+4= 35 65 | 66 | HIGH inc a 67 | in f , (c) 68 | jp p , HIGH 69 | 70 | ld (de),a 71 | inc de 72 | 73 | ld a,d 74 | cp h ;4+(start/256) 75 | jp nz , more 76 | 77 | finmuestreo 78 | 79 | ;;;;;;;;;;;;;;;;; calcula nivel de continua 80 | 81 | ld hl , buffer +20 82 | ld b, 32 83 | xor a 84 | bcontinua 85 | add a,(hl) 86 | inc hl 87 | sub (hl) 88 | inc hl 89 | djnz bcontinua 90 | add a,$80 91 | ld (continua),a 92 | 93 | ;;;;;;; 94 | ld hl, buffer +20 95 | call sumamuestras 96 | ld (media1),de 97 | call sumacuadrados 98 | ld (d1),ix 99 | 100 | ld hl, buffer +21 101 | call sumamuestras 102 | ld (media2),de 103 | call sumacuadrados 104 | ld (d2),ix 105 | 106 | ;;;;;;;;; fin 107 | pop bc 108 | exx 109 | ei 110 | ret 111 | 112 | ;;------------------------------------------------------- 113 | sumamuestras 114 | ld ix,0 115 | ld de,0 116 | ld b,32 117 | bmuestras 118 | ld e,(hl) 119 | add ix,de 120 | xor a 121 | rld ; muestra= muestra*16 122 | inc hl 123 | inc hl 124 | djnz bmuestras 125 | push ix 126 | pop de 127 | rr d 128 | rr e 129 | ret nc 130 | inc de 131 | ret 132 | 133 | ;;------------------------------------------------------- 134 | sumacuadrados 135 | ld ix,0 136 | ld c,e ; c= ; 16*media 137 | ld b,32 138 | bcuadrados 139 | dec hl 140 | dec hl 141 | ld a,(hl) 142 | sub c 143 | jr nc,positivo 144 | neg 145 | positivo 146 | exx 147 | ld hl,0 148 | ld d,h 149 | ld e,a 150 | or a 151 | jr z,nosuma 152 | multiplica 153 | add hl,de 154 | dec a 155 | jr nz, multiplica 156 | nosuma 157 | push hl 158 | exx 159 | pop de ;(x-m)^2 160 | add ix,de 161 | djnz bcuadrados 162 | ret 163 | 164 | ;;;;;;;;;;;;;;;;;;;, 165 | 166 | 167 | s_width EQU start + 256 168 | continua EQU start + 257 169 | media1 EQU start + 258 170 | d1 EQU start + 260 171 | media2 EQU start + 262 172 | d2 EQU start + 264 173 | buffer EQU start + 266 174 | -------------------------------------------------------------------------------- /source/asm/adjust/adjust_ZX_0.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org $c200 4 | start 5 | di 6 | exx 7 | push hl 8 | ld bc , $0efe 9 | ld e , $0a 10 | 11 | ;;;;;;;;;;;;;;;;;;;;;;;;;;; 12 | pii_0 ld d,e 13 | pii xor a 14 | out (c),b 15 | pi_LOW inc a 16 | in f,(c) 17 | jp po, pi_LOW 18 | 19 | out (c),e 20 | pi_HIGH inc a 21 | in f,(c) 22 | jp pe, pi_HIGH 23 | 24 | cp $39 ;29 25 | rl d 26 | cp $29 ;19 27 | jr nc, pii 28 | 29 | inc d 30 | jr nz, pii_0 31 | 32 | ld (s_width),a 33 | 34 | ;;;;;;;;;;;;;;;;;;;;;;;;;; 35 | ld de , buffer 36 | ld hl , start +$04ff 37 | 38 | more ld a, l ;$fe 39 | 40 | LOW inc a 41 | in f,(c) 42 | jp pe, LOW 43 | 44 | ld (de),a 45 | inc de 46 | 47 | ld a,d 48 | cp h ;4+(start/256) 49 | jp z , finmuestreo 50 | 51 | ld a, l ;$fe ;7+6+4+4+10+4= 35 52 | 53 | HIGH inc a 54 | in f , (c) 55 | jp po , HIGH 56 | 57 | ld (de),a 58 | inc de 59 | 60 | ld a,d 61 | cp h ;4+(start/256) 62 | jp nz , more 63 | 64 | finmuestreo 65 | 66 | ;;;;;;;;;;;;;;;;; calcual nivel de continua 67 | 68 | ld hl , buffer +20 69 | ld b, 32 70 | ld a,$80 71 | 72 | bcontinua 73 | add a,(hl) 74 | inc hl 75 | sub (hl) 76 | inc hl 77 | djnz bcontinua 78 | 79 | ld (continua),a 80 | 81 | ; calcula medias 82 | ld hl, buffer +20 83 | call sumamuestras 84 | ld (media1),de 85 | ; calcula medias cuadrado 86 | ;ld de,(media1 ) 87 | call sumacuadrados 88 | ld (d1),ix 89 | 90 | ; calcula medias 91 | ld hl, buffer +21 92 | call sumamuestras 93 | ld (media2),de 94 | ; calcula medias cuadrado 95 | ;ld de,(media2 ) 96 | call sumacuadrados 97 | ld (d2),ix 98 | 99 | ;;;;;;;;; fin 100 | pop hl 101 | exx 102 | ei 103 | ret 104 | 105 | sumamuestras 106 | ld ix,0 107 | ld de,0 108 | ld b,32 109 | bmuestras 110 | ld e,(hl) 111 | add ix,de 112 | xor a 113 | rld ; muestra= muestra*16 114 | inc hl 115 | inc hl 116 | djnz bmuestras 117 | push ix 118 | pop de 119 | rr d 120 | rr e 121 | ret nc 122 | inc de 123 | ret 124 | 125 | 126 | ;;;;;;;;;;;;;;, 127 | 128 | sumacuadrados 129 | ld ix,0 130 | ld c,e ; c= ; 16*media 131 | ld b,32 132 | bcuadrados 133 | dec hl 134 | dec hl 135 | ld a,(hl) 136 | sub c 137 | jr nc,positivo 138 | neg 139 | positivo 140 | exx 141 | ld hl,0 142 | ld d,h 143 | ld e,a 144 | or a 145 | jr z,nosuma 146 | multiplica 147 | add hl,de 148 | dec a 149 | jr nz, multiplica 150 | nosuma 151 | push hl 152 | exx 153 | pop de ;(x-m)^2 154 | add ix,de 155 | djnz bcuadrados 156 | ret 157 | 158 | ;;;;;;;;;;;;;;;;;;;, 159 | 160 | 161 | 162 | s_width EQU start + 256 163 | continua EQU start + 257 164 | media1 EQU start + 258 165 | d1 EQU start + 260 166 | media2 EQU start + 262 167 | d2 EQU start + 264 168 | buffer EQU start + 266 169 | -------------------------------------------------------------------------------- /source/asm/adjust/adjust_cpc.bas: -------------------------------------------------------------------------------- 1 | 1 cls:memory 30000:print"otla adjust..." 2 | 3 load"!":print"play test" 3 | 7 d=&8000:call d:locate 1,1:d=d+256 4 | 8 print peek(d),peek(d+1)-128:print peek(d+2)/16,peek(d+5)+peek(d+4)/256:print peek(d+6)/16,peek(d+9)+peek(d+8)/256 5 | 9 goto 7 -------------------------------------------------------------------------------- /source/asm/adjust/adjust_zx.bas: -------------------------------------------------------------------------------- 1 | 1 clear 49663 2 | 2 load "" code 3 | 3 cls: print at 11,5;flash 1;"PLAY TEST SIGNAL WAV" 4 | 5 | 6 | 5 let d=49664 7 | 6 randomize usr d 8 | 9 | 9 cls 10 | 11 | 10 let d=d +256 12 | 13 | 11 print peek (d) , peek (d+1)-128,peek (d+2)/16, peek (d+5)+peek (d+4)/256,peek (d+6)/16, peek (d+9)+peek (d+8)/256,peek (d-1), peek (d-2) 14 | 15 | 16 | 20 goto 5 17 | 18 | 29 let d=49950-1 19 | 30 gosub 100 20 | 21 | 59 let d=d+1 22 | 60 gosub 100 23 | 24 | 90 goto 5 25 | 26 | 100 let x=0: let y=0 27 | 110 for i=1 to 64 step 2 28 | 120 let x=x+peek(d+i) 29 | 130 next i 30 | 140 let x=INT (x/32+0.5): print x/16, 31 | 150 for i=1 to 64 step 2 32 | 160 let y=y+(peek(d+i)-x)*(peek(d+i)-x) 33 | 170 next i 34 | 180 print y/256;"-*-" 35 | 200 return -------------------------------------------------------------------------------- /source/asm/azimut_CPC.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org $8000 4 | 5 | 6 | 7 | azimut 8 | 9 | 10 | 11 | di 12 | 13 | push de 14 | push bc 15 | push af 16 | exx 17 | push bc 18 | exx 19 | 20 | 21 | ld bc,$f610 22 | out (c),c ;OUT &F600,&10 motor 23 | 24 | 25 | call pilot 26 | 27 | 28 | ld bc,$f6ef 29 | out (c),c ;OUT &F600,&10 motor off 30 | 31 | 32 | exx 33 | pop bc 34 | exx 35 | pop af 36 | pop bc 37 | pop de 38 | 39 | ei 40 | 41 | ret 42 | 43 | 44 | pilot 45 | 46 | ld de,$8100 47 | 48 | exx 49 | ld bc,$7f10 50 | out (c),c ;border 51 | ld c , $44 52 | exx 53 | 54 | pii_0 55 | 56 | ld bc, &f510 ; ear 57 | 58 | pii 59 | exx 60 | out (c), b ; a ; 61 | exx 62 | 63 | xor a 64 | 65 | pi_LOW inc a 66 | in f,(c) 67 | jp m, pi_LOW 68 | 69 | exx 70 | out (c),c 71 | exx 72 | 73 | pi_HIGH inc a 74 | in f,(c) 75 | jp p , pi_HIGH 76 | 77 | 78 | cp $39 79 | rl c ; d 80 | cp $29 81 | jr nc, pii 82 | 83 | inc c ; d 84 | jr nz , pii_0 85 | 86 | 87 | ld (de),a 88 | 89 | more xor a 90 | 91 | LOW inc a 92 | in f,(c) 93 | jp m, LOW 94 | 95 | inc de 96 | ld (de),a 97 | 98 | bit 0,d 99 | bit 0,d 100 | jp z,fin 101 | 102 | xor a ; 2+2+2+2+3+1= 12 103 | 104 | HIGH inc a 105 | in f , (c) 106 | jp p , HIGH 107 | 108 | inc de 109 | ld (de),a 110 | 111 | bit 0,d 112 | bit 0,d 113 | jp nz , more ; 2+2+2+2+3+1= 12 114 | 115 | 116 | fin 117 | 118 | 119 | 120 | ret 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /source/asm/calipilot_msx6.asm: -------------------------------------------------------------------------------- 1 | 2 | dir_HAIGH equ &f4 3 | 4 | org dir_HAIGH*&100 + &30 -14 5 | 6 | 7 | ld hl, $c030 8 | ld de, table 9 | ld bc, 280-14 10 | ldir 11 | jp start_loading 12 | 13 | 14 | 15 | org dir_HAIGH*$100 + $30 16 | 17 | 18 | 19 | table 20 | defb $4c,$4c 21 | defb $4c,$4c 22 | defb $4c,$4c,$4c,$4c,$4c 23 | defb $4d,$4d,$4d,$4d,$4d 24 | defb $4e,$4e,$4e,$4e,$4e 25 | defb $4f,$4f,$4f,$4f,$4f 26 | defb $4f,$4f,$4f 27 | 28 | 29 | strerror 30 | defb 32,'l','o','a','d','i','n','g' 31 | defb 32,'e','r','r','o','r' 32 | 33 | 34 | 35 | 36 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 37 | 38 | start_loading 39 | 40 | 41 | ld a,$0f ;xor a 42 | out ($aa),a ; motor cassette on y caps on 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | velozloader 51 | 52 | 53 | 54 | di 55 | 56 | ld a,14 57 | out ($a0),a 58 | 59 | ld bc, $f2a2 60 | 61 | pii_0 ld de, $0810 62 | 63 | pii 64 | ld (mem1),a 65 | ld a,$87 66 | 67 | inc hl ; 68 | dec hl ; ;out ($99),a 69 | 70 | pi_LOW inc a 71 | in f,(c) 72 | jp m, pi_LOW 73 | 74 | inc hl 75 | dec hl ;out ($99),a 76 | 77 | pi_HIGH inc a 78 | in f,(c) 79 | jp p, pi_HIGH 80 | 81 | SYNC cp $39+ $87 ; 47 +$87 82 | rl e 83 | cp $29+ $87 ; 34 +$87 84 | jr nc, pii 85 | 86 | inc e 87 | jr nz , pii_0 88 | 89 | syn_LOW in f,(c) 90 | jp m, syn_LOW 91 | 92 | cp $19 + $87 93 | 94 | 95 | fin 96 | 97 | ld (mem1+1),a 98 | rlca 99 | rlca 100 | rlca 101 | rlca 102 | 103 | call print_hex 104 | 105 | ld a,(mem1+1) 106 | 107 | call print_hex 108 | 109 | 110 | ld a,(mem1) 111 | rlca 112 | rlca 113 | rlca 114 | rlca 115 | 116 | call print_hex 117 | 118 | ld a,(mem1) 119 | 120 | call print_hex 121 | 122 | 123 | 124 | 125 | ;ld a,$7f ;xor a 126 | ;out ($aa),a ; motor cassette off y caps on 127 | 128 | ld bc,$7faa 129 | out (c),b 130 | 131 | ei 132 | ret 133 | 134 | mem1 defb 0, 0 135 | 136 | 137 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 138 | 139 | 140 | 141 | 142 | 143 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 144 | 145 | 146 | 147 | print_hex 148 | and $0f 149 | or $30 150 | cp $3a 151 | 152 | jr c , menor0 153 | add a,$41-$3a 154 | 155 | menor0 out ($98),a 156 | 157 | ret 158 | 159 | ;final nop 160 | -------------------------------------------------------------------------------- /source/asm/ga_crct_regs.asm: -------------------------------------------------------------------------------- 1 | 2 | org $8000 3 | 4 | 5 | ld hl,tablaCRTC 6 | xor a 7 | buCRCT 8 | ld b,&bc 9 | out (c),a ; direcciona registro (0, 1, ..., 17) 10 | 11 | ld b,&bd 12 | ld c,(hl) 13 | inc hl 14 | out (c),c ; escribe registro 15 | 16 | inc a 17 | cp 18 18 | jr nz , buCRCT 19 | 20 | 21 | ld bc,$7fff 22 | ld hl,tablaGA 23 | xor a 24 | 25 | buGA out (c),a 26 | ld d,(hl) 27 | inc hl 28 | out (c),d 29 | 30 | inc a 31 | cp 16 ; 16 (tintas) 32 | jr nz , buGA 33 | 34 | 35 | ld d,(hl) 36 | inc hl 37 | out (c),d ; + multiregistroGA 38 | 39 | ld d,(hl) 40 | ; inc hl 41 | out (c),d ;+ tinta actual 42 | 43 | pop hl 44 | ld sp,$fffd 45 | jp (hl) 46 | 47 | 48 | 49 | 50 | tablaCRTC defb 0,0,0,0 51 | defb 0,0,0,0 52 | defb 0,0,0,0 53 | defb 0,0,0,0 54 | defb 0,0 55 | ;CRTC: data register (0, 1, ..., 17) 56 | 57 | 58 | tablaGA defb 0,0,0,0 59 | defb 0,0,0,0 60 | defb 0,0,0,0 61 | defb 0,0,0,0 62 | 63 | defb 0,0 64 | 65 | ;ink value register (0, 1, ..., 15, 16)+Gate Array: multi configuration register 66 | -------------------------------------------------------------------------------- /source/asm/page_cpc.asm: -------------------------------------------------------------------------------- 1 | 2 | org $8000 3 | 4 | 5 | 6 | ld a, $c4 ; pagina 0* 7 | ld b, $7f ;OUT &7Fxx, ; %11bbbmmm ; actualizar ram mode 8 | out (c), a 9 | 10 | ld hl,mem 11 | ld de,$4000 12 | ld bc,$4000 13 | 14 | ldir 15 | 16 | ld a, $c0 ; pagina 0* 17 | ld b, $7f ;OUT &7Fxx, ; %11bbbmmm ; actualizar ram mode 18 | out (c), a 19 | 20 | ret 21 | 22 | mem nop 23 | -------------------------------------------------------------------------------- /source/asm/page_zx.asm: -------------------------------------------------------------------------------- 1 | 2 | org $5b00 3 | 4 | 5 | ld a,7 6 | ld bc , $7ffd 7 | out (c),a 8 | 9 | ld de,$c000 10 | ld hl,mem 11 | ld bc,$4000 12 | 13 | ldir 14 | 15 | ld a,0 16 | 17 | ld bc $7ffd 18 | out (c),a 19 | 20 | ret 21 | 22 | mem nop 23 | -------------------------------------------------------------------------------- /source/asm/snap_cpc.asm: -------------------------------------------------------------------------------- 1 | 2 | org $ff00 3 | 4 | 5 | snap ld de,$ff58 6 | ld hl,mem 7 | ld bc,$a8 8 | 9 | ldir 10 | 11 | ld sp,hl 12 | 13 | pop hl 14 | pop de 15 | pop bc 16 | pop af 17 | 18 | exx 19 | ex af,af' 20 | 21 | pop iy 22 | pop ix 23 | pop hl 24 | pop de 25 | 26 | 27 | im 0 28 | 29 | ld a,1 30 | ld i,a 31 | ld a,1 32 | ld r,a 33 | 34 | ld a, $c0 ; pagina 0* 35 | ld b, $7f ; OUT &7Fxx, ; %11bbbmmm ; actualizar ram mode 36 | out (c), a 37 | 38 | pop bc 39 | pop af 40 | 41 | ld sp, $5c01 42 | 43 | di 44 | jp salta // reti 45 | 46 | mem 47 | 48 | -------------------------------------------------------------------------------- /source/asm/snap_zx.asm: -------------------------------------------------------------------------------- 1 | 2 | org $5b00 3 | 4 | 5 | snap ld de,$ff58 6 | ld hl,$5b40 7 | ld bc,$a8 8 | 9 | ldir 10 | 11 | ld sp,hl 12 | 13 | pop hl 14 | pop de 15 | pop bc 16 | pop af 17 | 18 | exx 19 | ex af,af' 20 | 21 | pop iy 22 | pop ix 23 | pop hl 24 | pop de 25 | 26 | 27 | pop af 28 | ld i,a 29 | rra 30 | ld r,a 31 | 32 | ld a,$7 33 | out ($fe),a 34 | 35 | ld bc,$1ffd 36 | ld a,0 37 | out (c),a 38 | 39 | 40 | ld bc, $7ffd 41 | ld a,0 42 | out (c),a 43 | 44 | pop bc 45 | pop af 46 | 47 | im 0 48 | ld sp, $5555 49 | 50 | di 51 | jp $4444; // reti 52 | 53 | mem 54 | 55 | -------------------------------------------------------------------------------- /source/asm/velozloader_zx.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | org $ff58 -13 6 | 7 | ld hl, 23794 8 | ld de, table 9 | ld b,1 10 | ldir 11 | jp start_loading 12 | 13 | 14 | org $ff58 15 | 16 | table 17 | defb $4c 18 | defb $4c,$4c,$4c,$4c,$4c 19 | defb $4d,$4d,$4d,$4d,$4d 20 | defb $4e,$4e,$4e,$4e,$4e 21 | defb $4f,$4f,$4f,$4f,$4f 22 | defb $4f,$4f 23 | 24 | 25 | velozloader 26 | 27 | 28 | ld d, (hl) 29 | dec hl 30 | ld e, (hl) 31 | push de 32 | 33 | ld e , $08 34 | 35 | ld bc, $eafe 36 | 37 | push hl 38 | 39 | di 40 | 41 | pii_0 ld d,e 42 | 43 | pii xor a 44 | out (c),e 45 | 46 | pi_LOW inc a 47 | in f,(c) 48 | jp po, pi_LOW 49 | 50 | out (c),b 51 | 52 | pi_HIGH inc a 53 | in f,(c) 54 | jp pe, pi_HIGH 55 | 56 | SYNC cp $39 57 | rl d 58 | cp $29 59 | jr nc, pii 60 | 61 | inc d 62 | jr nz , pii_0 63 | 64 | syn_LOW in f,(c) 65 | jp po, syn_LOW 66 | 67 | cp $19 68 | ld a,b ; b= $ea 69 | 70 | jr c, no_inv 71 | 72 | xor e ; e=8 73 | 74 | syn_hi in f,(c) 75 | jp pe, syn_hi 76 | 77 | no_inv 78 | ld (pe1),a 79 | xor e ; e=8 80 | ld (po1),a 81 | 82 | ex de,hl 83 | 84 | xor a 85 | ld ixl,a 86 | 87 | jr enter 88 | 89 | full and H 90 | ld (de),a 91 | inc de 92 | xor ixl 93 | ld ixl,a 94 | ld a, c; ; 10 +37 = 47 95 | 96 | enter 97 | more 98 | HIGH inc hl 99 | in f , (c) 100 | pe1 jp pe , HIGH 101 | 102 | ld h,$ff 103 | ld h,(hl) 104 | 105 | ld l,(table-$ff00)- 5 106 | 107 | rlca 108 | rla ; 29 109 | 110 | LOW inc hl 111 | in f,(c) 112 | po1 jp po, LOW 113 | 114 | jp nC, full 115 | 116 | dec b 117 | set 3,b 118 | out (c),b 119 | and H 120 | jp m, more ; 10 + 24 +4+ 10 = 48 121 | 122 | pop hl 123 | pop bc 124 | ld (hl),c 125 | inc hl 126 | ld (hl),b 127 | 128 | ld a,ixl 129 | or a 130 | 131 | dexec 132 | ei 133 | ret z 134 | rst 8 135 | defb 26 136 | 137 | header defw $3fff 138 | bu jp dexec ; / c3 / c9 / cd 139 | 140 | 141 | ld hl,header -1 142 | call velozloader 143 | 144 | ld hl,(header) 145 | call velozloader 146 | jr bu 147 | 148 | start_loading 149 | 150 | ld de,00 151 | jr bu +3 152 | 153 | -------------------------------------------------------------------------------- /source/asm/zx81/load_p.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/asm/zx81/load_p.p -------------------------------------------------------------------------------- /source/asm/zx81/load_z81.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/asm/zx81/load_z81.p -------------------------------------------------------------------------------- /source/asm/zx81/program2.z81: -------------------------------------------------------------------------------- 1 | [CPU] 2 | PC 003E SP 43F2 3 | HL C0C3 HL_ 0000 4 | DE C0C3 DE_ 21CF 5 | BC 0E00 BC_ 0000 6 | AF DD0B AF_ 0101 7 | IX 0281 IY 4000 8 | IR 1E86 9 | IM 01 IF1 00 10 | HT 00 IF2 00 11 | 12 | [ZX81] 13 | NMI 00 HSYNC 01 14 | ROW 000 15 | 16 | [MEMORY] 17 | MEMRANGE 2000 43FF 18 | *2000 07 FF 41 FC 43 00 44 *0004 00 03 00 98 40 D2 40 D2 40 *0002 00 D3 40 D5 40 *0002 00 D5 40 D5 40 FF 5D 40 00 02 *0002 00 *0002 FF 00 37 *0007 00 87 0C *0002 00 91 FB *0002 00 BC 21 00 C0 *0020 00 76 82 40 *0008 00 84 20 *0015 00 02 05 00 F8 0B 35 0B 76 00 03 0E 00 F9 D4 1D 22 20 23 1D 7E 8F 00 AE *0002 00 *0002 76 *0003 00 1E 00 38 26 3B 2A 00 0B 35 0B 76 *0003 00 1F 92 37 26 33 29 00 3A 38 37 00 1D 22 20 23 1D *0016 76 B0 76 80 7F 76 D4 *02F8 00 9F C0 8F 02 AF 40 *0003 00 0A B2 C0 8F 02 81 02 CE C0 8F 02 B7 40 81 02 0F 40 CF 40 C2 09 D4 40 D0 40 C3 C0 8B 02 3B 40 D5 40 *0002 00 55 76 CF 04 00 3E 19 | 20 | [EOF] 21 | -------------------------------------------------------------------------------- /source/asm/zx81/restore_snap.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 16444+25 4 | 5 | pop hl 6 | pop de 7 | pop bc 8 | pop af 9 | jr n1 10 | halt 11 | n1 ld sp, pila 12 | out ($fd),a 13 | ei 14 | jp 0 15 | pila defw 0,0,0,0 16 | -------------------------------------------------------------------------------- /source/asm/zx81/velozloader_zx81_P.asm: -------------------------------------------------------------------------------- 1 | 2 | org 16444 3 | 4 | 5 | full ld (hl),b 6 | inc hl 7 | ld b, c; 8 | more 9 | cicle 10 | pi_LOW in f,(c) 11 | jp po, 16447 ; pi_LOW 12 | 13 | ld a,c 14 | 15 | pi_HIGH dec a 16 | in f,(c) 17 | jp pe, 16453 ; pi_HIGH 18 | 19 | cp d 20 | rl b 21 | xret jr nC, full ; ret /jr nC, full ;$404e 22 | 23 | 24 | out ($ff),a 25 | cp e 26 | jr nc, more ; 27 | 28 | 29 | rst $08; ;$4055 30 | defb $ff 31 | 32 | out ($fd),a ;$4057= 16471 33 | 34 | 35 | ld bc, $00fe 36 | ld de, $f6e9 37 | ld hl, $fffe 38 | ld ($4007) , hl 39 | ld hl, $4009 40 | 41 | pii inc b 42 | call 16447 ; cicle 43 | djnz pii 44 | 45 | ld a,$30 46 | ld (16462),a ;xret 47 | jp 16446 48 | 49 | 50 | -------------------------------------------------------------------------------- /source/asm/zx81/velozloader_zx81_Z81.asm: -------------------------------------------------------------------------------- 1 | 2 | org 16444 3 | 4 | 5 | full ld (hl),b 6 | inc hl 7 | ld b, c; 8 | more 9 | cicle 10 | pi_LOW in f,(c) 11 | jp po, 16447 ; pi_LOW 12 | 13 | ld a,c 14 | 15 | pi_HIGH dec a 16 | in f,(c) 17 | jp pe, 16453 ; pi_HIGH 18 | 19 | cp d 20 | rl b 21 | xret jr nC, full ; ret /jr nC, full ;$404e 22 | 23 | 24 | out ($ff),a 25 | cp e 26 | jr nc, more ; 27 | 28 | 29 | pop hl; ;$4055 30 | pop de 31 | pop bc 32 | pop af 33 | ld sp,$0000 34 | out ($fd),a 35 | ei 36 | jp $0000 37 | pila defw $ffff 38 | defw $ffff 39 | defw $ffff 40 | defw $ffff 41 | 42 | start_load 43 | 44 | out ($fd),a 45 | 46 | im 0 ; 1 2 47 | ld a,0 48 | ld r,a 49 | ld a,0 50 | ld i,a 51 | ld iy,0 52 | ld ix,0 53 | ld hl,0 54 | ld de,0 55 | ld bc,0 56 | exx 57 | ld bc,0 58 | push bc 59 | pop af 60 | ex af,af' 61 | 62 | ld bc, $00fe 63 | ld de, $f6e9 64 | ld hl, $4000 65 | 66 | pii inc b 67 | call 16447 ; cicle 68 | djnz pii 69 | 70 | 71 | ld a,$30 72 | ld (16462),a ;xret 73 | ld sp, pila 74 | jp 16446 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /source/bmp/81.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/bmp/81.bmp -------------------------------------------------------------------------------- /source/bmp/amstred.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/bmp/amstred.bmp -------------------------------------------------------------------------------- /source/bmp/msx.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/bmp/msx.bmp -------------------------------------------------------------------------------- /source/bmp/zx81.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/bmp/zx81.bmp -------------------------------------------------------------------------------- /source/bmp/zxspectrum.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/bmp/zxspectrum.bmp -------------------------------------------------------------------------------- /source/funciones.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef funcionesH 4 | #define funcionesH 5 | 6 | 7 | #define E_ABRIR -1 8 | #define E_ESCRIBIR -2 9 | #define E_LEER -3 10 | 11 | #define E_VERSION -4 12 | #define E_FORMATO -5 13 | 14 | 15 | #define E_MACHINE -6 16 | 17 | 18 | 19 | 20 | unsigned int CRCupdate(unsigned int CRC, unsigned char new_byte); 21 | unsigned char checksum (const unsigned char * s, int length); 22 | 23 | 24 | 25 | extern unsigned char * bufferfile; 26 | extern unsigned tamanyo; 27 | 28 | int load_file (const char *filename); 29 | 30 | const char * error_file(int e); 31 | 32 | int inputDecHex (const char * s); 33 | 34 | const char * n2s(unsigned n , int h); 35 | 36 | const char * modelo (char maquina, int model); 37 | 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /source/loaders.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef loadersH 3 | #define loadersH 4 | 5 | 6 | #include "sbb.h" 7 | 8 | 9 | 10 | extern double duracion_loader; 11 | extern double duracion_total; 12 | extern char nombre_head[17]; 13 | 14 | extern int make_loader; 15 | extern int checkloaderror; 16 | extern int motor; 17 | 18 | 19 | 20 | 21 | extern int pausa_ms; 22 | 23 | 24 | int sbb2wav (const char * filen_in,const char * filen_out); 25 | 26 | /* 27 | int azimut2wav (const char * file_out); 28 | int calibZ81_wav (const char * file_out); 29 | */ 30 | 31 | #endif -------------------------------------------------------------------------------- /source/mainForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/mainForm.cpp -------------------------------------------------------------------------------- /source/mainForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/mainForm.ddp -------------------------------------------------------------------------------- /source/msxfiles.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef msxfilesH 4 | #define msxfilesH 5 | 6 | #include "sbb.h" 7 | 8 | #pragma pack(push, 1) 9 | 10 | 11 | typedef struct 12 | { 13 | unsigned char type; //1 byte File type (FEh=binary) 14 | unsigned short ini ; //2 bytes Load Address (Destination Address for Data in RAM) 15 | unsigned short last; //2 bytes Last Address (Load Address + Data Length - 1) 16 | unsigned short exec; //2 bytes Start Address (Used if started as BLOAD"FILE",R) 17 | 18 | } 19 | st_header_binmsx; 20 | 21 | 22 | 23 | #pragma pack(pop) 24 | 25 | 26 | 27 | int lee_msx_bin (const char *filename,ts_sbb_header *head,ts_sbb_block *blocks); 28 | 29 | int leecas (const char *filename,ts_sbb_header *head,ts_sbb_block *blocks); 30 | 31 | 32 | int lee_msx_rom (const char *filename,ts_sbb_header *head,ts_sbb_block *blocks,const char * rom2bin ); 33 | 34 | 35 | //--------------------------------------------------------------------------- 36 | #endif 37 | -------------------------------------------------------------------------------- /source/otla.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | //--------------------------------------------------------------------------- 6 | USEFORM("mainForm.cpp", otlaFrm); 7 | USEFORM("InputForm.cpp", InputBlocksDlg); 8 | USEFORM("ModificaForm.cpp", ModificaDlg); 9 | USEFORM("SettingsForm.cpp", SettingsFrm); 10 | USEFORM("DirForm.cpp", DirFrm); 11 | USEFORM("BatchForm.cpp", BatchFrm); 12 | USEFORM("AdjustForm.cpp", AdjustFrm); 13 | USEFORM("wavmonitorForm.cpp", MonitorFrm); 14 | USEFORM("AboutForm.cpp", AboutBox); 15 | //--------------------------------------------------------------------------- 16 | WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 17 | { 18 | try 19 | { 20 | Application->Initialize(); 21 | Application->CreateForm(__classid(TotlaFrm), &otlaFrm); 22 | Application->CreateForm(__classid(TInputBlocksDlg), &InputBlocksDlg); 23 | Application->CreateForm(__classid(TModificaDlg), &ModificaDlg); 24 | Application->CreateForm(__classid(TSettingsFrm), &SettingsFrm); 25 | Application->CreateForm(__classid(TDirFrm), &DirFrm); 26 | Application->CreateForm(__classid(TMonitorFrm), &MonitorFrm); 27 | Application->CreateForm(__classid(TBatchFrm), &BatchFrm); 28 | Application->CreateForm(__classid(TAdjustFrm), &AdjustFrm); 29 | Application->CreateForm(__classid(TAboutBox), &AboutBox); 30 | Application->Run(); 31 | } 32 | catch (Exception &exception) 33 | { 34 | Application->ShowException(&exception); 35 | } 36 | catch (...) 37 | { 38 | try 39 | { 40 | throw Exception(""); 41 | } 42 | catch (Exception &exception) 43 | { 44 | Application->ShowException(&exception); 45 | } 46 | } 47 | return 0; 48 | } 49 | //--------------------------------------------------------------------------- 50 | -------------------------------------------------------------------------------- /source/otla.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/otla.ico -------------------------------------------------------------------------------- /source/otla.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/otla.res -------------------------------------------------------------------------------- /source/otla0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/otla0.ico -------------------------------------------------------------------------------- /source/pbfs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/pbfs.ico -------------------------------------------------------------------------------- /source/proyectootla.bpg: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | VERSION = BWS.01 3 | #------------------------------------------------------------------------------ 4 | !ifndef ROOT 5 | ROOT = $(MAKEDIR)\.. 6 | !endif 7 | #------------------------------------------------------------------------------ 8 | MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** 9 | DCC = $(ROOT)\bin\dcc32.exe $** 10 | BRCC = $(ROOT)\bin\brcc32.exe $** 11 | #------------------------------------------------------------------------------ 12 | PROJECTS = otla.exe 13 | #------------------------------------------------------------------------------ 14 | default: $(PROJECTS) 15 | #------------------------------------------------------------------------------ 16 | 17 | otla.exe: otla.bpr 18 | $(ROOT)\bin\bpr2mak $** 19 | $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak 20 | 21 | 22 | -------------------------------------------------------------------------------- /source/sbb.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #ifndef sbbH 5 | #define sbbH 6 | 7 | #define _MAX_SBB_BLOCKS_ 32 8 | 9 | 10 | 11 | //sbb origin 12 | 13 | #define _test_ 'H' 14 | #define _screen_ 'S' 15 | #define _tape_ 'T' 16 | #define _cas_ 'C' 17 | #define _rom_ 'R' 18 | #define _binary_ 'B' 19 | 20 | #define _Snapshot4CPC_ 'W' 21 | 22 | #define _Snapshot4ZX48_ 'X' 23 | #define _Snapshot4ZX128_ 'Y' 24 | 25 | 26 | //block type zx 27 | 28 | #define _zx_program_ '0' // - program (basic) 29 | #define _zx_char_array_ '1' // - character array 30 | #define _zx_num_array_ '2' // - numeric array 31 | #define _zx_bytes_ '3' // - code (bytes) 32 | 33 | #define _zx_tap_hdlss_ '4' // - headerless block 34 | #define _zx_tzx_hdlss_ '5' // - headerless block tzx 35 | 36 | #define _zx_48k_snap_ '6' // 6 snapshot 48k 37 | #define _zx_128k_snap_ '7' // 7 snapshot 128k 38 | #define _zx_16k_page_ '8' // 8 pagina 16k 39 | 40 | 41 | #define _zx_complete_ '9' // 8 pagina 16k 42 | 43 | 44 | //block type cpc 45 | #define _cpc_basic_ '-' //basic 46 | #define _cpc_ascii_ 'A' //ascci 47 | #define _cpc_binary_ 'B' //binario 48 | #define _cpc_protected_ 'P' //protegido 49 | #define _cpc_64k_snap_ 'S' //snapshot 50 | 51 | //block type msx 52 | 53 | #define _msx_token_ (char) 0xD3 //basic 54 | #define _msx_bytes_ (char) 0xD0 //memory dump cas 55 | #define _msx_ascii_ (char) 0xEA //datafile 56 | 57 | #define _msx_bin_ (char) 0xFE //memory dump dsk 58 | 59 | 60 | //block type zx81 61 | 62 | #define _81_program_ 'p' //programm 63 | #define _81_snap_ 's' //snapshot 64 | 65 | #pragma pack(push, 1) 66 | 67 | 68 | typedef struct 69 | { 70 | char sbb_version [3]; 71 | char maquina [5]; 72 | char nombre [16]; 73 | 74 | unsigned char caux; 75 | unsigned char tipo; 76 | unsigned char n_blocks; 77 | unsigned char poke_ffff; 78 | unsigned short clear; 79 | unsigned short usr; 80 | } 81 | ts_old_header; 82 | 83 | typedef struct 84 | { 85 | char blockname[16]; 86 | unsigned short ini; 87 | unsigned short size; 88 | unsigned short param3; 89 | unsigned short exec; 90 | char type; 91 | unsigned char chksum; 92 | unsigned char data [0x10000]; 93 | } 94 | ts_old_block; 95 | 96 | /////////////////////////////////////// 97 | 98 | typedef struct 99 | { 100 | char sbb_version [3]; 101 | char machine [4]; 102 | char model; 103 | //char extra_info [8]; 104 | char extra_info [7]; 105 | unsigned char ei_di; 106 | char nombre [16]; 107 | 108 | unsigned char locate;//caux; 109 | char origin; 110 | unsigned char n_blocks; 111 | unsigned char poke_ffff; 112 | unsigned short clear_sp; 113 | unsigned short usr_pc; 114 | } 115 | ts_sbb_header; 116 | 117 | typedef struct 118 | { 119 | char blockname[16]; 120 | unsigned short size; 121 | unsigned short param3; 122 | char block_type; 123 | unsigned char h_chksum; 124 | unsigned short ini; 125 | unsigned char jump; 126 | unsigned short exec; 127 | unsigned char d_chksum; 128 | unsigned char data [0x10000]; 129 | } 130 | ts_sbb_block; 131 | 132 | 133 | #pragma pack(pop) 134 | 135 | 136 | #define SIZE_BLOCK_HEADER 28 137 | 138 | extern const char version_SBB[]; 139 | extern const unsigned char version_SBB_code[] ; 140 | 141 | void copy_data (ts_sbb_block * b, unsigned char *data); 142 | void execjump (ts_sbb_block * b, unsigned char jump); 143 | 144 | int save_sbb_file (const char *file_name,ts_sbb_header *head,ts_sbb_block *blocks); 145 | int load_sbb_file (const char *file_name,ts_sbb_header *head,ts_sbb_block *blocks); 146 | 147 | 148 | int ajusta_version (ts_sbb_header *head); 149 | 150 | int load_hst_file (const char *file_name,ts_sbb_header *head,ts_sbb_block *blocks); 151 | 152 | const char * TipoBloque(char tipo); 153 | 154 | const char * NombreMachine (char machine); 155 | 156 | void asigna_nombre ( ts_sbb_header *head , const char *name); 157 | 158 | #endif 159 | -------------------------------------------------------------------------------- /source/sbb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/sbb.ico -------------------------------------------------------------------------------- /source/signaltest.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef signaltestH 4 | #define signaltestH 5 | 6 | 7 | 8 | adjust_zx (char *f_out); 9 | adjust_cpc(char *f_out); 10 | adjust_msx(char *f_out); 11 | adjust_81 (char *f_out); 12 | 13 | //--------------------------------------------------------------------------- 14 | #endif 15 | -------------------------------------------------------------------------------- /source/wav2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/wav2.cpp -------------------------------------------------------------------------------- /source/wav2.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef wav2H 4 | #define wav2H 5 | 6 | 7 | #define _CUADRADA_ 0 8 | #define _CUBICA_ 1 9 | #define _HYP_ 2 10 | #define _RAMPA_ 3 11 | #define _IGUAL_E_ 4 12 | #define _DELTA_ 5 13 | #define _DELTA_2 6 14 | 15 | #define _4_25 17 16 | #define _4_00 16 17 | #define _3_75 15 18 | 19 | #define _3_50 14 20 | #define _3_00 12 21 | #define _2_50 10 22 | #define _2_75 11 23 | #define _2_25 9 24 | #define _1_75 7 25 | 26 | 27 | 28 | extern int acelerar; 29 | 30 | 31 | extern int invert_pol; 32 | extern int forma_onda; 33 | extern int freq_muestreo; 34 | extern char s_p_b; 35 | 36 | double dura (); 37 | 38 | 39 | 40 | int open_wav (const char * file_out); 41 | int close_wav ( void ); 42 | 43 | 44 | int block2zx_wav ( unsigned char * data , int length); 45 | int block2cpc_wav ( const unsigned char * data ); 46 | int block2msx_bin_wav (const char * name ,const unsigned char * data , int length , unsigned char filetype); 47 | int block281_wav ( const unsigned char * data , int length); 48 | 49 | 50 | pseudopause (int ms); 51 | 52 | pilot_veloz (int n); 53 | int block2veloz_wav ( const unsigned char * data , int length); 54 | int block2veloz81_wav ( const unsigned char * data , int length); 55 | 56 | 57 | int wav2tzx (const char * file_in, const char * file_out, const char * mens); 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /source/wavmonitorForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source/wavmonitorForm.ddp -------------------------------------------------------------------------------- /source/wavmonitorForm.dfm: -------------------------------------------------------------------------------- 1 | object MonitorFrm: TMonitorFrm 2 | Left = 233 3 | Top = 122 4 | BorderStyle = bsDialog 5 | Caption = 'Player Monitor' 6 | ClientHeight = 187 7 | ClientWidth = 380 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poMainFormCenter 16 | OnClose = FormClose 17 | OnCreate = FormCreate 18 | OnDestroy = FormDestroy 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | object Label1: TLabel 22 | Left = 8 23 | Top = 136 24 | Width = 18 25 | Height = 13 26 | Caption = '------' 27 | end 28 | object SoundCardLbl: TLabel 29 | Left = 16 30 | Top = 35 31 | Width = 53 32 | Height = 13 33 | Caption = 'SoundCard' 34 | end 35 | object Label4: TLabel 36 | Left = 80 37 | Top = 3 38 | Width = 30 39 | Height = 13 40 | Caption = '----------' 41 | WordWrap = True 42 | end 43 | object Label5: TLabel 44 | Left = 80 45 | Top = 18 46 | Width = 30 47 | Height = 13 48 | Caption = '----------' 49 | end 50 | object OpenBtn: TButton 51 | Left = 16 52 | Top = 5 53 | Width = 49 54 | Height = 18 55 | Caption = 'File...' 56 | TabOrder = 0 57 | OnClick = OpenBtnClick 58 | end 59 | object PlayBtn: TButton 60 | Left = 288 61 | Top = 32 62 | Width = 41 63 | Height = 25 64 | Caption = 'Play' 65 | Enabled = False 66 | TabOrder = 2 67 | OnClick = PlayBtnClick 68 | end 69 | object TarjetasCmbBx: TComboBox 70 | Left = 80 71 | Top = 35 72 | Width = 201 73 | Height = 21 74 | Style = csDropDownList 75 | ItemHeight = 13 76 | TabOrder = 1 77 | OnChange = TarjetasCmbBxChange 78 | end 79 | object MasterVolBar: TTrackBar 80 | Left = 16 81 | Top = 64 82 | Width = 41 83 | Height = 73 84 | BorderWidth = 2 85 | Max = 100 86 | Orientation = trVertical 87 | PageSize = 1 88 | Frequency = 20 89 | Position = 0 90 | SelEnd = 0 91 | SelStart = 0 92 | TabOrder = 5 93 | ThumbLength = 15 94 | TickMarks = tmBoth 95 | TickStyle = tsAuto 96 | OnChange = MasterVolBarChange 97 | end 98 | object ProgressBar1: TProgressBar 99 | Left = 72 100 | Top = 136 101 | Width = 305 102 | Height = 17 103 | Min = 0 104 | Max = 100 105 | Smooth = True 106 | Step = 1 107 | TabOrder = 8 108 | end 109 | object Panel1: TPanel 110 | Left = 72 111 | Top = 64 112 | Width = 305 113 | Height = 70 114 | BevelOuter = bvLowered 115 | Caption = '-----' 116 | TabOrder = 9 117 | object Image1: TImage 118 | Left = 1 119 | Top = 1 120 | Width = 303 121 | Height = 68 122 | Align = alClient 123 | end 124 | end 125 | object MuteChkBx: TCheckBox 126 | Left = 16 127 | Top = 56 128 | Width = 57 129 | Height = 9 130 | Caption = 'Mute' 131 | TabOrder = 4 132 | OnClick = MuteChkBxClick 133 | end 134 | object StopBtn: TButton 135 | Left = 336 136 | Top = 32 137 | Width = 41 138 | Height = 25 139 | Caption = 'Stop' 140 | TabOrder = 3 141 | OnClick = StopBtnClick 142 | end 143 | object CloseOnChkBx: TCheckBox 144 | Left = 8 145 | Top = 160 146 | Width = 161 147 | Height = 17 148 | Caption = 'Close on finished' 149 | TabOrder = 6 150 | end 151 | object CloseBtn: TButton 152 | Left = 248 153 | Top = 160 154 | Width = 121 155 | Height = 25 156 | Caption = 'Close' 157 | TabOrder = 7 158 | OnClick = CloseBtnClick 159 | end 160 | object OpenDialog1: TOpenDialog 161 | Left = 120 162 | Top = 32 163 | end 164 | object Timer1: TTimer 165 | Enabled = False 166 | Interval = 95 167 | OnTimer = Timer1Timer 168 | Left = 160 169 | Top = 32 170 | end 171 | end 172 | -------------------------------------------------------------------------------- /source/wavmonitorForm.h: -------------------------------------------------------------------------------- 1 | 2 | //--------------------------------------------- 3 | #ifndef PlayWavUH 4 | #define PlayWavUH 5 | //--------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | //--------------------------------------------- 16 | class TMonitorFrm : public TForm 17 | { 18 | __published: // IDE-managed Components 19 | TButton *PlayBtn; 20 | TButton *OpenBtn; 21 | TLabel *Label1; 22 | TOpenDialog *OpenDialog1; 23 | TTimer *Timer1; 24 | TComboBox *TarjetasCmbBx; 25 | TTrackBar *MasterVolBar; 26 | TProgressBar *ProgressBar1; 27 | TPanel *Panel1; 28 | TImage *Image1; 29 | TCheckBox *MuteChkBx; 30 | TLabel *SoundCardLbl; 31 | TLabel *Label4; 32 | TButton *StopBtn; 33 | TLabel *Label5; 34 | TCheckBox *CloseOnChkBx; 35 | TButton *CloseBtn; 36 | void __fastcall OpenBtnClick 37 | (TObject *Sender); 38 | void __fastcall PlayBtnClick 39 | (TObject *Sender); 40 | void __fastcall FormCreate 41 | (TObject *Sender); 42 | void __fastcall FormDestroy 43 | (TObject *Sender); 44 | void __fastcall Timer1Timer(TObject *Sender); 45 | void __fastcall TarjetasCmbBxChange(TObject *Sender); 46 | void __fastcall MasterVolBarChange(TObject *Sender); 47 | void __fastcall MuteChkBxClick(TObject *Sender); 48 | void __fastcall StopBtnClick(TObject *Sender); 49 | void __fastcall CloseBtnClick(TObject *Sender); 50 | void __fastcall FormClose(TObject *Sender, TCloseAction &Action); 51 | private: // User declarations 52 | unsigned char* WaveData; 53 | WAVEFORMATEX WaveFmt; 54 | HWAVEOUT WaveHandle; 55 | int DataSize; 56 | WAVEHDR WaveHeader; 57 | void CheckWaveError(DWORD code); 58 | void CheckMMIOError(DWORD code); 59 | void OnWaveDone(TMessage& msg); 60 | bool Paused; 61 | 62 | int AudioDevice; 63 | void __fastcall ActualizaVolumen(); 64 | 65 | public: // User declarations 66 | __fastcall TMonitorFrm(TComponent* Owner); 67 | BEGIN_MESSAGE_MAP 68 | MESSAGE_HANDLER( 69 | MM_WOM_DONE, TMessage, 70 | OnWaveDone) 71 | END_MESSAGE_MAP(TForm) 72 | 73 | 74 | int OpenWaveFile(AnsiString Filename); 75 | }; 76 | //--------------------------------------------- 77 | extern PACKAGE TMonitorFrm *MonitorFrm; 78 | //--------------------------------------------- 79 | #endif -------------------------------------------------------------------------------- /source_k7zx_ 4.3/DirForm.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | 6 | #include "DirForm.h" 7 | //--------------------------------------------------------------------------- 8 | #pragma package(smart_init) 9 | #pragma resource "*.dfm" 10 | TDirFrm *DirFrm; 11 | //--------------------------------------------------------------------------- 12 | __fastcall TDirFrm::TDirFrm(TComponent* Owner) 13 | : TForm(Owner) 14 | { 15 | } 16 | //--------------------------------------------------------------------------- 17 | void __fastcall TDirFrm::CancelBtnClick(TObject *Sender) 18 | { 19 | Close(); 20 | } 21 | //--------------------------------------------------------------------------- 22 | void __fastcall TDirFrm::AceptarBtnClick(TObject *Sender) 23 | { 24 | ModalResult=2; 25 | Close(); 26 | } 27 | //--------------------------------------------------------------------------- 28 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/DirForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/DirForm.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/DirForm.dfm: -------------------------------------------------------------------------------- 1 | object DirFrm: TDirFrm 2 | Left = 222 3 | Top = 158 4 | Width = 261 5 | Height = 316 6 | Caption = 'Output dir...' 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object DriveComboBox1: TDriveComboBox 17 | Left = 16 18 | Top = 16 19 | Width = 217 20 | Height = 19 21 | TabOrder = 0 22 | end 23 | object DirectoryListBox1: TDirectoryListBox 24 | Left = 16 25 | Top = 40 26 | Width = 209 27 | Height = 169 28 | ItemHeight = 16 29 | TabOrder = 1 30 | end 31 | object AceptarBtn: TButton 32 | Left = 40 33 | Top = 232 34 | Width = 81 35 | Height = 25 36 | Caption = 'OK' 37 | TabOrder = 2 38 | OnClick = AceptarBtnClick 39 | end 40 | object CancelBtn: TButton 41 | Left = 136 42 | Top = 232 43 | Width = 89 44 | Height = 25 45 | Cancel = True 46 | Caption = 'Cancel' 47 | TabOrder = 3 48 | OnClick = CancelBtnClick 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/DirForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef DirFormH 4 | #define DirFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | //--------------------------------------------------------------------------- 12 | class TDirFrm : public TForm 13 | { 14 | __published: // IDE-managed Components 15 | TDriveComboBox *DriveComboBox1; 16 | TDirectoryListBox *DirectoryListBox1; 17 | TButton *AceptarBtn; 18 | TButton *CancelBtn; 19 | void __fastcall CancelBtnClick(TObject *Sender); 20 | void __fastcall AceptarBtnClick(TObject *Sender); 21 | private: // User declarations 22 | public: // User declarations 23 | __fastcall TDirFrm(TComponent* Owner); 24 | }; 25 | //--------------------------------------------------------------------------- 26 | extern PACKAGE TDirFrm *DirFrm; 27 | //--------------------------------------------------------------------------- 28 | #endif 29 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/MainForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/MainForm.cpp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/MainForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/MainForm.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/PlayerForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/PlayerForm.cpp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/PlayerForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/PlayerForm.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/PlayerForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef PlayerFormH 4 | #define PlayerFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | //--------------------------------------------------------------------------- 20 | class TPlayerFrm : public TForm 21 | { 22 | __published: // IDE-managed Components 23 | TDirectoryListBox *DirectoryListBox1; 24 | TFileListBox *FileListBox1; 25 | TDriveComboBox *DriveComboBox1; 26 | TLabel *Label6; 27 | TButton *File2WAVBtn; 28 | TButton *EmularBtn; 29 | TButton *PlayBtn; 30 | TButton *StopBtn; 31 | TCheckBox *InfoChkBx; 32 | TMainMenu *MainMenu1; 33 | TMenuItem *Settings1; 34 | TMenuItem *About1; 35 | TEdit *OutputEdt; 36 | TButton *File2MP3Btn; 37 | TEdit *LameEdt; 38 | TLabel *Label2; 39 | TLabel *Label7; 40 | TGroupBox *GroupBox1; 41 | TLabel *Label4; 42 | TLabel *Label3; 43 | TLabel *Label5; 44 | TEdit *UsrEdt; 45 | TEdit *ClearEdt; 46 | TEdit *NombreEdt; 47 | TGroupBox *SnapGB; 48 | TLabel *TipoSnapLbl; 49 | TLabel *PCLbl; 50 | TLabel *SPLbl; 51 | TLabel *CurrentLbl; 52 | TCheckListBox *TrozosCLB; 53 | TCheckBox *PokeadorChkBx; 54 | TValueListEditor *PokesVLE; 55 | TLabel *Label1; 56 | TButton *DirBtn; 57 | TButton *LameBtn; 58 | TOpenDialog *OpenDialog1; 59 | TCheckBox *SelectedChkBx; 60 | TLabel *BitRateLbl; 61 | TStatusBar *StatusBarra; 62 | TMediaPlayer *MediaPlayer1; 63 | TTimer *Timer1; 64 | TProgressBar *ProgressBar1; 65 | TLabel *LoaderLbl; 66 | TLabel *DuraLbl; 67 | TMemo *Memo1; 68 | void __fastcall Settings1Click(TObject *Sender); 69 | void __fastcall About1Click(TObject *Sender); 70 | void __fastcall FormShow(TObject *Sender); 71 | void __fastcall FileListBox1Change(TObject *Sender); 72 | void __fastcall DirBtnClick(TObject *Sender); 73 | void __fastcall EmularBtnClick(TObject *Sender); 74 | void __fastcall File2WAVBtnClick(TObject *Sender); 75 | void __fastcall PlayBtnClick(TObject *Sender); 76 | void __fastcall FormCreate(TObject *Sender); 77 | void __fastcall FormClose(TObject *Sender, TCloseAction &Action); 78 | void __fastcall LameBtnClick(TObject *Sender); 79 | void __fastcall File2MP3BtnClick(TObject *Sender); 80 | void __fastcall StopBtnClick(TObject *Sender); 81 | void __fastcall SelectedChkBxClick(TObject *Sender); 82 | void __fastcall MediaPlayer1Notify(TObject *Sender); 83 | void __fastcall Timer1Timer(TObject *Sender); 84 | private: // User declarations 85 | bool play; 86 | bool mp3; 87 | AnsiString file_final; 88 | void __fastcall FillProgres( ); 89 | AnsiString file_out; 90 | void __fastcall VerBarra(bool ver ); 91 | 92 | public: // User declarations 93 | __fastcall TPlayerFrm(TComponent* Owner); 94 | int __fastcall TPlayerFrm::makewav(); 95 | }; 96 | //--------------------------------------------------------------------------- 97 | extern PACKAGE TPlayerFrm *PlayerFrm; 98 | //--------------------------------------------------------------------------- 99 | #endif 100 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/ProressForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/ProressForm.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/ProressForm.dfm: -------------------------------------------------------------------------------- 1 | object ProgresoFrm: TProgresoFrm 2 | Left = 212 3 | Top = 195 4 | Width = 598 5 | Height = 367 6 | Caption = 'Converting files...' 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poMainFormCenter 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 32 19 | Top = 8 20 | Width = 32 21 | Height = 13 22 | Caption = 'Label1' 23 | end 24 | object InfoLbl: TLabel 25 | Left = 288 26 | Top = 8 27 | Width = 32 28 | Height = 13 29 | Caption = 'InfoLbl' 30 | end 31 | object Button1: TButton 32 | Left = 248 33 | Top = 304 34 | Width = 81 35 | Height = 25 36 | Caption = '-' 37 | TabOrder = 0 38 | OnClick = Button1Click 39 | end 40 | object ProgressBar1: TProgressBar 41 | Left = 16 42 | Top = 8 43 | Width = 249 44 | Height = 25 45 | Min = 0 46 | Max = 100 47 | TabOrder = 1 48 | end 49 | object FilesLV: TListView 50 | Left = 0 51 | Top = 48 52 | Width = 585 53 | Height = 249 54 | Columns = < 55 | item 56 | Caption = 'file' 57 | Width = 280 58 | end 59 | item 60 | Caption = 'program' 61 | end 62 | item 63 | Caption = 'usr' 64 | end 65 | item 66 | Caption = 'clear' 67 | end 68 | item 69 | Caption = 'blocks' 70 | end 71 | item 72 | Caption = 'length' 73 | end 74 | item 75 | Caption = 'res' 76 | end> 77 | GridLines = True 78 | Items.Data = { 79 | 2E0000000100000000000000FFFFFFFFFFFFFFFF040000000000000001610162 80 | 016301640165FFFFFFFFFFFFFFFF} 81 | ReadOnly = True 82 | TabOrder = 2 83 | ViewStyle = vsReport 84 | end 85 | end 86 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/ProressForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef ProressFormH 4 | #define ProressFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | //--------------------------------------------------------------------------- 13 | class TProgresoFrm : public TForm 14 | { 15 | __published: // IDE-managed Components 16 | TButton *Button1; 17 | TProgressBar *ProgressBar1; 18 | TListView *FilesLV; 19 | TLabel *Label1; 20 | TLabel *InfoLbl; 21 | void __fastcall Button1Click(TObject *Sender); 22 | private: // User declarations 23 | public: // User declarations 24 | __fastcall TProgresoFrm(TComponent* Owner); 25 | void __fastcall Proces(TStrings *files,AnsiString out); 26 | void __fastcall ProcesHI (); 27 | void __fastcall ProcesNORMAL (); 28 | AnsiString OutputDir; 29 | AnsiString Lame; 30 | AnsiString extra_info; 31 | bool mp3; 32 | }; 33 | //--------------------------------------------------------------------------- 34 | extern PACKAGE TProgresoFrm *ProgresoFrm; 35 | //--------------------------------------------------------------------------- 36 | #endif 37 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/SettingdForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/SettingdForm.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/SettingdForm.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef SettingdFormH 4 | #define SettingdFormH 5 | //--------------------------------------------------------------------------- 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | //--------------------------------------------------------------------------- 13 | extern char conversion; 14 | extern char variosbloques; 15 | extern int bitrate; 16 | 17 | 18 | 19 | extern char *info_tecnica []; 20 | extern char *info_kbps []; 21 | extern char *tecnica[]; 22 | 23 | 24 | extern AnsiString info ; 25 | 26 | class TSettingsFrm : public TForm 27 | { 28 | __published: // IDE-managed Components 29 | TButton *AceptarBtn; 30 | TGroupBox *OndaGB; 31 | TLabel *Label1; 32 | TLabel *Label2; 33 | TCheckBox *InvertidaChkBx; 34 | TComboBox *FormaCmbBx; 35 | TCheckBox *CDChk; 36 | TComboBox *FrecuenciaCmbBx; 37 | TCheckBox *MaxVolChkBx; 38 | TCheckBox *FinalChkBx; 39 | TCheckBox *InvRChkBx; 40 | TCheckBox *DivisorFChkBx; 41 | TCheckBox *AcelerarChk; 42 | TComboBox *ConversionCmbBx; 43 | TImageList *ImageList1; 44 | TGroupBox *GroupBox1; 45 | TCheckBox *CargadorChk; 46 | TCheckBox *TapeErrorChkBx; 47 | TRadioButton *UnBloqueRB; 48 | TRadioButton *BloquesRB; 49 | TRadioButton *OriginalRB; 50 | TGroupBox *GroupBox2; 51 | TComboBox *MetodoCmbBx; 52 | TComboBox *MPBCmbBx; 53 | TCheckBox *KolmogorovChk; 54 | TGroupBox *MaNonTrppoGB; 55 | TGroupBox *NormalGB; 56 | TRadioButton *AndanteRB; 57 | TRadioButton *AllegroRB; 58 | TRadioButton *VivaceRB; 59 | TRadioButton *PrestoRB; 60 | TLabel *Label4; 61 | TMemo *Memo1; 62 | TLabel *Label5; 63 | TLabel *Label6; 64 | TButton *CancelarBtn; 65 | TMemo *Memo2; 66 | TImageList *BorderIL; 67 | TImage *Image1; 68 | TLabel *Label3; 69 | TRadioButton *MaestosoRB; 70 | TLabel *Label7; 71 | TComboBox *RatioMACmbBx; 72 | TComboBox *RatioNORCmbBx; 73 | TLabel *Label8; 74 | TLabel *Label9; 75 | TLabel *Label10; 76 | TRadioButton *ScherzandoRB; 77 | void __fastcall FormCreate(TObject *Sender); 78 | void __fastcall FormShow(TObject *Sender); 79 | void __fastcall AceptarBtnClick(TObject *Sender); 80 | void __fastcall MPBCmbBxDrawItem(TWinControl *Control, int Index, 81 | TRect &Rect, TOwnerDrawState State); 82 | void __fastcall MetodoCmbBxChange(TObject *Sender); 83 | void __fastcall FrecuenciaCmbBxChange(TObject *Sender); 84 | void __fastcall ConversionCmbBxChange(TObject *Sender); 85 | void __fastcall FormaCmbBxDrawItem(TWinControl *Control, int Index, 86 | TRect &Rect, TOwnerDrawState State); 87 | void __fastcall CancelarBtnClick(TObject *Sender); 88 | void __fastcall MPBCmbBxChange(TObject *Sender); 89 | void __fastcall CDChkClick(TObject *Sender); 90 | private: // User declarations 91 | public: // User declarations 92 | __fastcall TSettingsFrm(TComponent* Owner); 93 | AnsiString __fastcall Speed(int f,int mpb); 94 | }; 95 | //--------------------------------------------------------------------------- 96 | extern PACKAGE TSettingsFrm *SettingsFrm; 97 | //--------------------------------------------------------------------------- 98 | #endif 99 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/ZXCODE.CPP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/ZXCODE.CPP -------------------------------------------------------------------------------- /source_k7zx_ 4.3/ZXCODE.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef zxcodeH 4 | #define zxcodeH 5 | 6 | 7 | 8 | #define _SNAPSHOT_ 0 9 | #define _UNBLOQUE_ 1 10 | #define _VARIOSBLOQUES_ 2 11 | #define _CARGADOR_ORIGINAL_ 3 12 | 13 | 14 | 15 | 16 | 17 | typedef struct { 18 | unsigned short dir; 19 | unsigned char value; 20 | } st_poke; 21 | 22 | int preprocesa (const char * file ); 23 | 24 | extern char *nom_metodo []; 25 | extern char *nom_kbps []; 26 | extern char *nom_esquema []; 27 | 28 | 29 | 30 | extern char antikolmogorov; 31 | 32 | extern char cargador; 33 | extern char control_chksum; 34 | extern char variosbloques; 35 | //extern char esquema; 36 | 37 | extern char esquema_bloques ; 38 | 39 | 40 | extern unsigned short dir_clear; 41 | extern unsigned short dir_usr; 42 | 43 | 44 | 45 | 46 | 47 | #define _MAX_POKES_ 20 48 | extern st_poke pokes []; 49 | 50 | 51 | //int convierte (); 52 | 53 | int convierteHI (const char * file_out); 54 | int convierteNORMAL (const char * file_in,const char * file_out); 55 | 56 | //--------------------------------------------------------------------------- 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/about.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/about.cpp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/about.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/about.ddp -------------------------------------------------------------------------------- /source_k7zx_ 4.3/about.h: -------------------------------------------------------------------------------- 1 | //---------------------------------------------------------------------------- 2 | #ifndef aboutH 3 | #define aboutH 4 | //---------------------------------------------------------------------------- 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | #define _ENGLISH_ 18 | 19 | //---------------------------------------------------------------------------- 20 | class TAboutBox : public TForm 21 | { 22 | __published: 23 | TPanel *Panel1; 24 | TImage *ProgramIcon; 25 | TLabel *ProductName; 26 | TLabel *Version; 27 | TLabel *Copyright; 28 | TButton *OKButton; 29 | TMemo *Memo1; 30 | void __fastcall OKButtonClick(TObject *Sender); 31 | private: 32 | public: 33 | virtual __fastcall TAboutBox(TComponent* AOwner); 34 | }; 35 | //---------------------------------------------------------------------------- 36 | extern PACKAGE TAboutBox *AboutBox; 37 | //---------------------------------------------------------------------------- 38 | #endif 39 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fi22.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | k1 ld hl,$3fff 19 | jp pilot 20 | 21 | pilot 22 | xor a 23 | ex af,af' 24 | dec hl 25 | 26 | ld ix , $cfc8 27 | 28 | di 29 | ld bc, $cefe 30 | ld de, $10ea 31 | 32 | pii 33 | out (c),e 34 | xor a 35 | 36 | pi_LOW inc a 37 | in f,(c) 38 | jp po, pi_LOW 39 | 40 | out (c),b 41 | 42 | pi_HIGH sub c 43 | in f,(c) 44 | jp pe, pi_HIGH 45 | 46 | SYNC cp 75 47 | rl d 48 | cp 54 49 | jr nc, pii 50 | 51 | inc d 52 | jr nz , pii 53 | 54 | cp 34 55 | ld a,e 56 | 57 | jr c, noinv 58 | 59 | Ps in f,(c) 60 | jp po, ps 61 | 62 | ld ix , $c8cf 63 | 64 | xor 8 65 | noinv ld (pe1),a 66 | xor 8 ; 67 | ld (po1),a 68 | 69 | ld d,$80 70 | jr entra 71 | 72 | 73 | full 74 | ex af, af' 75 | xor d 76 | ex af, af' 77 | 78 | ld (hl),d 79 | ld d,c 80 | inc hl 81 | 82 | ld b , ixh 83 | ;9 + 12 + 12 +17 +8 = 56 84 | 85 | sigue 86 | 87 | HIGH in f , (c) 88 | pe1 jp pe , HIGH 89 | 90 | ld e,a 91 | ld a, r 92 | sub e 93 | cp e 94 | 95 | entra 96 | rl d 97 | 98 | K0 ld a, 10 99 | ld r,a ; 45 100 | 101 | LOW in f,(c) 102 | po1 jp po, LOW 103 | 104 | 105 | ld a,r 106 | 107 | jr NC , FULL 108 | 109 | out (c),b 110 | res 7,b ;bit 6,a 111 | cp b ;ld b,b 112 | ld b, ixl 113 | 114 | jp c,sigue 115 | ; 9 +7+ 4+ 12+ 8 + 8 +10 = 58 116 | 117 | FIN 118 | ex af,af' 119 | or a 120 | pos_EI 121 | ei 122 | jp randomizeusr ;ret z 123 | ;rst 8 124 | ;defb 26 125 | 126 | randomizeusr nop 127 | 128 | 129 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fi26.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | k1 ld hl,$3fff 19 | jp pilot 20 | 21 | pilot 22 | xor a 23 | ex af,af' 24 | dec hl 25 | 26 | ld ix , $cfc8 27 | 28 | di 29 | ld bc, $cefe 30 | ld de, $10ea 31 | 32 | 33 | 34 | pii 35 | xor a 36 | out (c),e 37 | 38 | pi_LOW inc a 39 | in f,(c) 40 | jp po, pi_LOW 41 | 42 | out (c),b 43 | 44 | pi_HIGH sub c 45 | in f,(c) 46 | jp pe, pi_HIGH 47 | 48 | SYNC cp 75 49 | rl d 50 | cp 54 51 | jr nc, pii 52 | 53 | inc d 54 | jr nz , pii 55 | 56 | cp 34 57 | ld a,e ;10+7+8+7+7+4+7+7+4= 61 58 | 59 | jr c, noinv 60 | 61 | Ps in f,(c) 62 | jp po, ps 63 | ld ix , $c8cf 64 | 65 | xor 8 66 | 67 | noinv ld (pe1),a 68 | xor 8 ; 69 | ld (po1),a 70 | 71 | xor a 72 | scf 73 | jr entra ;61 +12 + 13+7+13+4+12= 122 74 | 75 | 76 | full ex af, af' 77 | xor d 78 | ex af, af' 79 | ld (hl),d 80 | inc hl 81 | ld d,c 82 | ;4+ 10 +12+ 17= 43 83 | 84 | sigue 85 | HIGH inc a 86 | in f , (c) 87 | pe1 jp pe , HIGH 88 | 89 | out (c),b 90 | ld b, ixh 91 | sub e 92 | cp e 93 | rl d 94 | 95 | 96 | k0 ld a,1 97 | ; 41 98 | entra 99 | LOW inc a 100 | in f,(c) 101 | po1 jp po, LOW 102 | 103 | ld e,a 104 | 105 | jp NC , FULL 106 | ld b, b 107 | ld b, ixl 108 | cp $15 109 | jr c , sigue 110 | ; 4+ 10 +4+ 8 + 7 + 12 = 45 111 | 112 | FIN 113 | ex af,af' 114 | or a 115 | pos_EI 116 | ei 117 | jp randomizeusr ;ret z 118 | ;rst 8 119 | ;defb 26 120 | 121 | randomizeusr nop 122 | 123 | 124 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fi28.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | pilot 22 | dec hl 23 | 24 | ld ix , $cfc8 25 | 26 | di 27 | ld bc, $cefe 28 | ld de, $10ea 29 | 30 | 31 | 32 | pii 33 | xor a 34 | out (c),e 35 | 36 | pi_LOW inc a 37 | in f,(c) 38 | jp po, pi_LOW 39 | 40 | out (c),b 41 | 42 | pi_HIGH sub c 43 | in f,(c) 44 | jp pe, pi_HIGH 45 | 46 | SYNC cp 75 47 | rl d 48 | cp 54 49 | jr nc, pii 50 | 51 | inc d 52 | jr nz , pii 53 | 54 | cp 34 55 | ld a,e ;10+7+8+7+7+4+7+7+4= 61 56 | 57 | jr c, noinv 58 | 59 | Ps in f,(c) 60 | jp po, ps 61 | ld ix , $c8cf 62 | 63 | xor 8 64 | 65 | noinv ld (pe1),a 66 | xor 8 ; 67 | ld (po1),a 68 | 69 | xor a 70 | scf 71 | jr entra ;61 +12 + 13+7+13+4+12= 122 72 | 73 | 74 | full xor d 75 | ld (hl),d 76 | inc hl 77 | ld d,2 ; 10+ 4 + 20 +7 = 41 78 | sigue 79 | entra 80 | k0 ld e,$ff 81 | 82 | 83 | LOW inc de 84 | in f,(c) 85 | po1 jp po, LOW 86 | 87 | 88 | bit 5,e 89 | jr nz, fin 90 | 91 | out (c),b 92 | ld b, ixh 93 | k1 ld b,b ;39 94 | 95 | HIGH dec de 96 | in f , (c) 97 | pe1 jp pe , HIGH 98 | 99 | 100 | jp C , FULL 101 | 102 | ld b, ixl 103 | rl d 104 | jp sigue ; 10 + 8 +8 + 10 + 7 = 43 105 | 106 | FIN 107 | or a 108 | pos_EI 109 | ei 110 | jp randomizeusr ;ret z 111 | ;rst 8 112 | ;defb 26 113 | 114 | randomizeusr nop 115 | 116 | 117 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/FiQ.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | pilot di 22 | ld a,$cb 23 | ex af,af' 24 | ld bc, $cefe 25 | ld de, $10ea 26 | 27 | pii xor a 28 | out (c),e 29 | 30 | pi_LOW inc a 31 | in f,(c) 32 | jp po, pi_LOW 33 | 34 | out (c),b 35 | 36 | pi_HIGH sub c 37 | in f,(c) 38 | jp pe, pi_HIGH 39 | 40 | SYNC cp 75 41 | rl d 42 | cp 54 43 | jr nc, pii 44 | 45 | inc d 46 | jr nz , pii 47 | 48 | cp 34 49 | ld a,e 50 | 51 | jr c, noinv 52 | 53 | Ps in f,(c) 54 | jp po, ps 55 | 56 | xor 8 57 | noinv ld (pe1),a 58 | xor 8 ; 59 | ld (po1),a 60 | 61 | k0 ld b,$88 62 | jr entra 63 | 64 | 65 | full ex af,af' ; 66 | xor 7 67 | ld (hl),e 68 | inc hl 69 | ld e,c ;13 +12 +11 +17 +4 =55 70 | 71 | sigue ex af,af' 72 | HIGH in f , (c) 73 | pe1 jp pe , HIGH 74 | 75 | 76 | ld a,R 77 | entra 78 | k1 add a, $48 79 | 80 | rl e 81 | sub d 82 | sub b 83 | cp d 84 | rl e 85 | 86 | ld a,c 87 | ld R,a ; 57 88 | 89 | LOW in f,(c) 90 | po1 jp po, LOW 91 | 92 | ld a,R 93 | ld d,a ; 13 94 | 95 | jr NC , FULL 96 | 97 | ex af,af' 98 | out (c),a 99 | cp d 100 | jp Nc, sigue ; 13 + 7 + 30+ 4 = 54 101 | 102 | FIN 103 | 104 | pos_EI 105 | ei 106 | jp randomizeusr ;ret z 107 | ;rst 8 108 | ;defb 26 109 | 110 | randomizeusr nop 111 | 112 | 113 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/FiQfast.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | pilot 22 | di 23 | ld bc, $cefe 24 | ld de, $10ea 25 | 26 | pii xor a 27 | out (c),e 28 | 29 | pi_LOW inc a 30 | in f,(c) 31 | jp po, pi_LOW 32 | 33 | out (c),b 34 | 35 | pi_HIGH sub c 36 | in f,(c) 37 | jp pe, pi_HIGH 38 | 39 | SYNC cp 75 40 | rl d 41 | cp 54 42 | jr nc, pii 43 | 44 | inc d 45 | jr nz , pii 46 | 47 | cp 34 48 | 49 | 50 | ld a,e 51 | jr c, noinv 52 | 53 | Ps in f,(c) 54 | jp po, ps 55 | 56 | xor 8 57 | noinv ld (pe1),a 58 | xor 8 ; 59 | ld (po1),a 60 | 61 | k1 ld b,$28 62 | 63 | jr entra 64 | 65 | 66 | full ld (hl),e 67 | inc hl 68 | ld e,c ;21 + 10+ 17=48 69 | sigue 70 | HIGH in f , (c) 71 | pe1 jp pe , HIGH 72 | 73 | ld a,r 74 | entra 75 | cp b 76 | ccf 77 | rl e 78 | 79 | sub d 80 | cp d 81 | 82 | k0 ld a,8 83 | ld R,a ; 49 84 | 85 | LOW 86 | in f,(c) 87 | po1 jp po, LOW 88 | 89 | ld a,R 90 | rl e 91 | ld d,a ; 21 92 | 93 | jp NC , FULL 94 | 95 | cp b 96 | ld b,b 97 | jp c, sigue ; 21 +10+ 18 =49 98 | 99 | FIN 100 | 101 | pos_EI 102 | ei 103 | jp randomizeusr ;ret z 104 | ;rst 8 105 | ;defb 26 106 | 107 | randomizeusr nop 108 | 109 | 110 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fi_mini.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | max 18 | k1 19 | ld hl,$3fff 20 | jp pilot 21 | 22 | pilot 23 | dec hl 24 | di 25 | ld bc, $0efe 26 | ld de, $10ea 27 | 28 | pii xor a 29 | out (c),e 30 | 31 | pi_LOW inc a 32 | in f,(c) 33 | jp po, pi_LOW 34 | 35 | out (c),b 36 | 37 | pi_HIGH sub c 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 75 42 | rl d 43 | cp 54 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | cp 34 50 | 51 | ld a,e 52 | jr c, noinv 53 | 54 | Ps in f,(c) 55 | jp po, ps 56 | 57 | xor 8 58 | noinv ld (pe1),a 59 | xor 8 ; 60 | ld (po1),a 61 | 62 | k0 ld b, 8 63 | 64 | ld d,$80 65 | 66 | jr entra 67 | 68 | 69 | full ld (hl),d 70 | inc hl 71 | ld d,c 72 | ;13+10+17= 40 73 | sigue 74 | HIGH in f , (c) 75 | pe1 jp pe , HIGH 76 | 77 | 78 | ld a,R 79 | sub e 80 | cp e 81 | entra 82 | ld a,b; 8 83 | ld R,a 84 | rl d ; 38 85 | 86 | LOW in f,(c) 87 | po1 jp po, LOW 88 | 89 | ld a,R 90 | ld e,a ; 13 91 | 92 | jp NC , FULL 93 | 94 | bit 5,a 95 | jp z, sigue 96 | ; 13+10+18 =41 97 | 98 | FIN xor a 99 | pos_EI 100 | ei 101 | jp randomizeusr ;ret z 102 | ;rst 8 103 | ;defb 26 104 | 105 | randomizeusr nop 106 | 107 | 108 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fsk.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | tabla 21 | k0 22 | pilot dec hl 23 | xor a 24 | ex af,af' 25 | di 26 | ld bc, $eefe 27 | ld de, $10ea 28 | 29 | pii xor a 30 | out (c),e 31 | pi_LOW inc a 32 | in f,(c) 33 | jp po, pi_LOW 34 | 35 | out (c),b 36 | pi_HIGH sub c 37 | in f,(c) 38 | jp pe, pi_HIGH 39 | 40 | SYNC cp 74 41 | rl d 42 | cp 54 43 | jr nc, pii 44 | 45 | inc d 46 | jr nz , pii 47 | 48 | cp 34 49 | ld a,e 50 | 51 | jr c, noinv 52 | 53 | Ps in f,(c) 54 | jp po, ps 55 | 56 | xor 8 57 | noinv ld (pe1),a 58 | xor 8 ; 59 | ld (po1),a 60 | 61 | ld de,$80c8 62 | xor a 63 | jr entra 64 | 65 | full 66 | ex af,af' 67 | xor d 68 | ex af,af' 69 | ld (hl),d 70 | inc hl 71 | ld d,c ;10 + 29 = 39 72 | sigue 73 | HIGH dec a 74 | in f,(c) 75 | pe1 jp pe, HIGH 76 | 77 | out (c),b 78 | k1 cp $f0 79 | ld a,b ; c 80 | entra 81 | rl d ; 12 +7+4+8= 31 82 | 83 | LOW dec a 84 | in f,(c) 85 | po1 jp po, LOW 86 | 87 | jp nc , FULL 88 | 89 | out (c),e 90 | cp e 91 | jr nc , sigue ; 10 + 28 = 38 92 | 93 | ex af,af' 94 | or a 95 | pos_EI 96 | fin 97 | acaba ei 98 | jp randomizeusr ;ret z 99 | ;rst 8 100 | ;defb 26 101 | 102 | 103 | 104 | 105 | randomizeusr nop 106 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fsk_debug.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | tabla 21 | k0 22 | pilot dec hl 23 | xor a 24 | ex af,af' 25 | di 26 | ld bc, $eefe 27 | ld de, $10ea 28 | 29 | pii ld ($ffff),a 30 | xor a 31 | out (c),e 32 | pi_LOW inc a 33 | in f,(c) 34 | jp po, pi_LOW 35 | 36 | out (c),b 37 | pi_HIGH sub c 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 74 42 | rl d 43 | cp 54 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | ld ($fffe),a 50 | 51 | cp 34 52 | ld a,e 53 | 54 | jr c, noinv 55 | 56 | Ps in f,(c) 57 | jp po, ps 58 | 59 | xor 8 60 | noinv ld (pe1),a 61 | xor 8 ; 62 | ld (po1),a 63 | 64 | ld de,$80c8 65 | xor a 66 | jr entra 67 | 68 | full 69 | ex af,af' 70 | xor d 71 | ex af,af' 72 | ld (hl),d 73 | inc hl 74 | ld d,c ;10 + 29 = 39 75 | sigue 76 | HIGH dec a 77 | in f,(c) 78 | pe1 jp pe, HIGH 79 | 80 | out (c),b 81 | 82 | k1 cp $f0 83 | ld a,b ; c 84 | entra 85 | rl d ; 12 +7+4+8= 31 86 | 87 | LOW dec a 88 | in f,(c) 89 | po1 jp po, LOW 90 | 91 | jp nc , FULL 92 | 93 | out (c),e 94 | cp e 95 | 96 | jr nc , sigue ; 10 + 28 = 38 97 | 98 | ex af,af' 99 | ld ($fffd),a 100 | or a 101 | pos_EI 102 | fin 103 | acaba ei 104 | jp randomizeusr ;ret z 105 | ;rst 8 106 | ;defb 26 107 | 108 | 109 | 110 | 111 | randomizeusr nop 112 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Fsk_mini.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | tabla 21 | k0 22 | pilot dec hl 23 | di 24 | ld bc, $cefe 25 | ld de, $10ea 26 | 27 | pii xor a 28 | out (c),e 29 | pi_LOW inc a 30 | in f,(c) 31 | jp po, pi_LOW 32 | 33 | out (c),b 34 | pi_HIGH sub c 35 | in f,(c) 36 | jp pe, pi_HIGH 37 | 38 | SYNC cp 74 39 | rl d 40 | cp 54 41 | jr nc, pii 42 | 43 | inc d 44 | jr nz , pii 45 | 46 | cp 34 47 | ld a,e 48 | jr c, noinv 49 | 50 | Ps in f,(c) 51 | jp po, ps 52 | 53 | xor 8 54 | noinv ld (pe1),a 55 | xor 8 ; 56 | ld (po1),a 57 | 58 | k1 ld de,$806d 59 | 60 | jr entra 61 | 62 | full ld (hl),d 63 | inc hl 64 | ld d,c ;8+12 + 17 = 37 65 | 66 | sigue 67 | HIGH in f,(c) 68 | pe1 jp pe, HIGH 69 | 70 | ld a,r 71 | ld b,a 72 | add a,e 73 | entra 74 | 75 | ld a,c 76 | ld r,a ; 30 77 | 78 | LOW in f,(c) 79 | po1 jp po, LOW 80 | 81 | rl d 82 | 83 | jr nc , FULL 84 | 85 | ld a,$d0 86 | cp b 87 | jr nc, sigue ; 8+ 7 + 23 = 38 88 | 89 | fin xor a 90 | pos_EI 91 | acaba ei 92 | jp randomizeusr ;ret z 93 | ;rst 8 94 | ;defb 26 95 | 96 | 97 | 98 | 99 | randomizeusr nop 100 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/Maestoso.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320; 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | inicio ld hl, 23797 13 | ld de, pilot 14 | ld b,1 15 | ldir 16 | 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | 21 | pilot 22 | max ld a, $58 23 | ex af, af' 24 | ld ixh,$ff 25 | dec hl 26 | di 27 | ld bc, $0efe 28 | ld de, $10ea 29 | 30 | pii xor a 31 | out (c),e 32 | pi_LOW inc a 33 | in f,(c) 34 | jp po, pi_LOW 35 | 36 | out (c),b 37 | pi_HIGH inc a 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 72 42 | rl d 43 | cp 55 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | cp 32 50 | ld a, $80 51 | jr c , entra1 52 | 53 | LOWs in f,(c) 54 | jp po, LOWs 55 | 56 | jr entra2 57 | 58 | sigue1 59 | out (c),b 60 | k1 ld b, 23 ;25 61 | bu1 djnz bu1 62 | ld b,$A 63 | 64 | in f,(c) 65 | jp pe , HIGH 66 | 67 | entra1 dec e 68 | 69 | LOW in f,(c) 70 | jp po, LOW 71 | 72 | ld ixl,sigue2-$ff00 73 | 74 | inc e 75 | add a,a 76 | jp nc, FULL 77 | no_full 78 | xor e 79 | and c 80 | xor e 81 | ex af, af' 82 | cp h 83 | jr z, fin 84 | ex af, af' 85 | ld b,$e 86 | jp (ix) ; 38 +8 = 46 87 | 88 | sigue2 89 | out (c),b 90 | k0 ld b, 23 ;25 91 | bu2 djnz bu2 92 | ld b,$a 93 | 94 | in f,(c) 95 | jp po, LOW 96 | 97 | entra2 dec e 98 | 99 | HIGH in f , (c) 100 | jp pe , HIGH 101 | 102 | ld ixl,sigue1-$ff00 103 | 104 | inc e 105 | add a,a 106 | jp c, no_FULL ; 22 + 11 +8 +10= 51 107 | FULL 108 | xor e 109 | and c 110 | xor e 111 | ld (hl),a 112 | inc hl 113 | xor d 114 | ld d,a 115 | ld a,c 116 | 117 | jp (ix) ;37 + 8 = 45 118 | 119 | fin 120 | 121 | ld a,d 122 | or a 123 | pos_EI 124 | ei 125 | jp randomizeusr ;ret z 126 | ;rst 8 127 | ;defb 26 128 | 129 | randomizeusr nop 130 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/agitatto.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | k0 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | tabla 22 | 23 | pilot xor a 24 | ex af,af' 25 | di 26 | dec hl 27 | ld bc, $0efe 28 | ld de, $10ea 29 | 30 | pii xor a 31 | out (c),e 32 | pi_LOW inc a 33 | in f,(c) 34 | jp po, pi_LOW 35 | 36 | out (c),b 37 | pi_HIGH inc a 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 72 42 | rl d 43 | cp 55 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | 50 | cp 32 51 | ld a,e 52 | 53 | 54 | 55 | jr c, noinv 56 | 57 | 58 | Ps in f,(c) 59 | jp po, ps 60 | 61 | xor 8 62 | noinv ld (pe1),a 63 | ld (pe2),a 64 | xor 8 ; 65 | ld (po1),a 66 | ld (po2),a 67 | 68 | deb 69 | ld d, $e0 70 | scf 71 | jr entra 72 | 73 | 74 | full ex af,af' 75 | xor d 76 | ex af,af' 77 | ld (hl), d 78 | inc hl 79 | ld d,$fe ;4 + 12 +32 + 4 = 52 80 | sigue 81 | 82 | ld a,c 83 | 84 | LOW1 inc a 85 | in f,(c) 86 | po1 jp po, LOW1 87 | HIGH1 inc a 88 | in f,(c) 89 | pe1 jp pe, HIGH1 90 | 91 | cp 40 92 | jr nc, acaba 93 | 94 | cp e 95 | rl d 96 | 97 | add a,e 98 | cp 0x24 99 | ccf 100 | rl d 101 | 102 | 103 | entra ld e,c ; 53 104 | 105 | LOW2 inc e 106 | in f,(c) 107 | po2 jp po, LOW2 108 | HIGH2 inc e 109 | in f,(c) 110 | pe2 jp pe, HIGH2 111 | 112 | 113 | ld a,L 114 | 115 | jr nc , FULL 116 | 117 | 118 | and $e 119 | k1 or $a 120 | out ($fe),a 121 | 122 | jr sigue ; 4 + 7 + 37 + 4= ; 52 123 | 124 | acaba ex af,af' 125 | or a 126 | pos_EI 127 | fin 128 | ei 129 | jp randomizeusr ;ret z 130 | ;rst 8 131 | ;defb 26 132 | 133 | 134 | 135 | 136 | randomizeusr nop 137 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/andante.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | k0 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | tabla 22 | pilot 23 | 24 | dec hl 25 | xor a 26 | ex af,af' 27 | di 28 | ld bc, $0efe 29 | ld de, $10ea 30 | pii 31 | xor a 32 | out (c),e 33 | pi_LOW inc a 34 | in f,(c) 35 | jp po, pi_LOW 36 | 37 | out (c),b 38 | pi_HIGH inc a 39 | in f,(c) 40 | jp pe, pi_HIGH 41 | 42 | SYNC cp 72 43 | rl d 44 | cp 55 45 | jr nc, pii 46 | 47 | inc d 48 | jr nz , pii 49 | 50 | cp 32 51 | ld a,e 52 | 53 | jr c, noinv 54 | 55 | Ps in f,(c) 56 | jp po, ps 57 | 58 | xor 8 59 | noinv ld (pe1),a 60 | ld (pe2),a 61 | xor 8 62 | ld (po1),a 63 | ld (po2),a 64 | 65 | ld d,$80 66 | ld e,63 67 | jr sigue 68 | 69 | full ex af,af' 70 | xor d 71 | ex af,af' 72 | ld (hl),d 73 | inc hl 74 | ld d,c ;12 + 29 = 41 75 | sigue 76 | LOW1 dec e 77 | in f,(c) 78 | po1 jp po, LOW1 79 | HIGH1 dec e 80 | in f,(c) 81 | pe1 jp pe, HIGH1 82 | 83 | ld a,l 84 | and 4 85 | or 9 ; 86 | rl e 87 | rl d 88 | 89 | k1 ld e,$ff ; 41 90 | entra 91 | 92 | LOW2 inc e 93 | in f,(c) 94 | po2 jp po, LOW2 95 | HIGH2 inc e 96 | in f,(c) 97 | pe2 jp pe, HIGH2 98 | 99 | jr nc , FULL 100 | 101 | out (c),a 102 | bit 5,e 103 | jr z , sigue ; 7 + 32 = 39 104 | 105 | ex af,af' 106 | or a 107 | pos_EI 108 | fin 109 | acaba ei 110 | jp randomizeusr ;ret z 111 | ;rst 8 112 | ;defb 26 113 | 114 | 115 | 116 | 117 | randomizeusr nop 118 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/delta.asm: -------------------------------------------------------------------------------- 1 | org 65320 2 | CTES 3 | defb MAX-CTES 4 | defb K0-CTES 5 | defb K1-CTES 6 | defb pos_EI -CTES 7 | defb SYNC -CTES 8 | 9 | 10 | 11 | inicio ld hl, 23797 12 | ld de, ini1 13 | ld b,1 14 | ldir 15 | max 16 | k1 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | ini1 21 | jr pilot 22 | 23 | defb $40,$40,$40 24 | defb $40,$40,$40 25 | defb $40,$40 26 | 27 | 28 | K0 29 | tabla 30 | defb $01,$01,$01 31 | defb $01,$01,$01 32 | defb $01,$01,$01 33 | defb $01,$01,$01 34 | defb $01,$01,$01 35 | 36 | defb $01,$01,$01 37 | defb $01,$01,$01 38 | defb $01,$01,$01 39 | defb $01,$01,$01 40 | defb $01,$01,$01 41 | 42 | defb $01,$01,$01 43 | defb $01,$01,$01 44 | defb $01,$01,$01 45 | defb $01,$01,$01 46 | defb $01,$01,$01 47 | 48 | 49 | defb $01,$01,$01 50 | defb $01,$01,$40 51 | defb $40,$40 52 | 53 | pilot 54 | ld de, $100a 55 | ld bc, $0efe 56 | di 57 | 58 | pii xor a 59 | out (c),b 60 | pi_LOW inc a 61 | in f,(c) 62 | jp po, pi_LOW 63 | 64 | out (c),e 65 | pi_HIGH sub c 66 | in f,(c) 67 | jp pe, pi_HIGH 68 | 69 | SYNC cp 74 70 | rl d 71 | cp 54 72 | jr nc, pii 73 | 74 | inc d 75 | jr nz , pii 76 | 77 | ex de , hl 78 | ld hl, $ff50 79 | ld a,c 80 | ex af,af' 81 | jr entra 82 | 83 | full and (hl) 84 | ld (de),a 85 | inc de 86 | ld a,c ; 12 +12 + 24 = 48 87 | sigue 88 | HIGH in f,(c) 89 | jp pe , HIGH 90 | 91 | dec b 92 | ex af,af' 93 | ld a,r 94 | set 1,b 95 | 96 | rra 97 | ld l ,a 98 | entra 99 | or $ff 100 | ld r,a ; 49 101 | 102 | LOW in f,(c) 103 | jp po, LOW 104 | 105 | ex af, af' 106 | rlca 107 | rla 108 | 109 | jr nc,full 110 | 111 | out (c),b 112 | and (hl) 113 | 114 | jp m,sigue ; 12 + 7 + 29 = 48 115 | 116 | fin 117 | pos_EI 118 | ei 119 | jp randusr ; 7997 120 | 121 | 122 | 123 | randusr 124 | nop 125 | 126 | 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/escurridofast.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 65320 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | 18 | max 19 | 20 | ld hl,$3fff 21 | jp pilot 22 | 23 | pilot 24 | di 25 | dec hl 26 | jr pilot2 27 | 28 | tabla 29 | k0 defb $40,$40,$40 30 | defb $40,$40,$40 31 | defb $40,$40,$40 32 | defb $40,$40,$40 33 | defb $40,$40,$40 34 | defb $40,$40,$40 35 | defb $40,$40,$40 36 | defb $40,$40,$40 37 | defb $40,$40,$40 38 | defb $40,$40,$40 39 | 40 | pausa 41 | ld b,b 42 | ld b,b 43 | ld b,b 44 | ld b,b 45 | 46 | dec (HL) 47 | inc (HL) 48 | dec (HL) 49 | inc (HL) 50 | out (c),b 51 | jr return ; 56 +12+12= 80 52 | 53 | pilot2 54 | ld bc, $0efe 55 | ld de, $10ea 56 | 57 | pii xor a 58 | out (c),e 59 | pi_LOW inc a 60 | in f,(c) 61 | jp po, pi_LOW 62 | out (c),b 63 | pi_HIGH sub c 64 | in f,(c) 65 | jp pe, pi_HIGH 66 | SYNC cp 74 67 | rl d 68 | cp 54 69 | jr nc, pii 70 | inc d 71 | jr nz , pii 72 | 73 | cp 34 74 | ld a,e 75 | 76 | jr c, noinv 77 | 78 | Ps in f,(c) 79 | jp po, ps 80 | 81 | xor 8 82 | noinv 83 | ld (pe1 ),a 84 | xor 8 ; 85 | ld (po1 ),a 86 | 87 | ex de,hl 88 | ld hl , tabla 89 | ld a,c 90 | ex af,af' 91 | ld a,c 92 | jr entra 93 | 94 | incomp2 95 | ld b, $c 96 | ret nc 97 | jr sigue_e ; 98 | ; 7 + 4+ 8 + 12 + 12 + 12 + +22 = 77 99 | escurre 100 | ld b, $b 101 | ld b,b 102 | add a,a 103 | add a,a 104 | jr c, incomp2 105 | 106 | ret c 107 | full 108 | and (hl) 109 | inc de 110 | ld (de),a 111 | ld a,c ; 24 112 | ; 7 + 4 + 8 + 12 + 24 + 22 = 77 113 | sigue_e 114 | 115 | in f,(c) 116 | k1 117 | pe1 jp pe , escurre 118 | 119 | ex af,af' 120 | entra 121 | ld R,a 122 | 123 | b2 in f ,(c) 124 | po1 jp po, b2 125 | 126 | 127 | ld a,R 128 | or a 129 | rra 130 | ld l,a 131 | 132 | jr pausa ; out (c),b 133 | 134 | return ld a,c 135 | inc b 136 | ex af,af' 137 | rlca 138 | rla ; 9+ 12 +12 +20= 53 139 | 140 | jp nc, full 141 | ; 53 + 10 + 24 + 22 = 109 142 | ; + 4+9 +22= 144 143 | ld b, $8 144 | and (hl) 145 | jp m , sigue_e 146 | 147 | ; 53+ 34 + 22 = 109 148 | ; +4+9+22 = 144 149 | 150 | pos_EI ei 151 | jp randomizeusr 152 | 153 | 154 | 155 | randomizeusr nop 156 | 157 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/escurridoslow.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 65320 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | 18 | max 19 | ld hl,$3fff 20 | jp pilot 21 | 22 | pilot 23 | di 24 | 25 | ld de, $10ea 26 | jr pilot2 27 | 28 | tabla 29 | k0 30 | defb $fd,$fd,$fd 31 | defb $fd,$fd,$fd,$fd,$fd 32 | defb $fd,$fd,$fd,$fd,$fd 33 | defb $fd,$fd,$fd,$fd,$fd 34 | defb $fd,$fd,$fd,$fd,$fd 35 | defb $fd,$fd,$fd,$fd,$fd 36 | defb $fd,$fd 37 | 38 | pilot2 ld bc, $cefe 39 | 40 | 41 | pii xor a 42 | out (c),e 43 | pi_LOW inc a 44 | in f,(c) 45 | jp po, pi_LOW 46 | out (c),b 47 | pi_HIGH sub c 48 | in f,(c) 49 | jp pe, pi_HIGH 50 | SYNC cp 74 51 | rl d 52 | cp 54 53 | jr nc, pii 54 | inc d 55 | jr nz , pii 56 | 57 | cp 34 58 | 59 | ld a,e 60 | jr c, noinv 61 | 62 | Ps in f,(c) 63 | jp po, ps 64 | 65 | xor 8 66 | noinv 67 | ld (pe1 ),a 68 | xor 8 69 | ld (po1 ),a 70 | 71 | ex de,hl 72 | ld a,c; 73 | jr sigue_e 74 | 75 | incomp2 76 | ld b, $c 77 | jr sigue_e 78 | ; 7 +8 +12 +7+12 +10+22 = 7 +71 79 | 80 | ld b,b 81 | escurre 82 | ld b,$40 83 | ld b,b 84 | ld b,5;x 85 | pausaE djnz pausaE ; 13*x +2 86 | ;x= (156 -78 -2 -11)/13 = 5 87 | ;x= (143 -78 -2 -11)/13 = 4 88 | 89 | e244 90 | ld b, $0d 91 | e248 92 | add a,a 93 | add a,a 94 | jr c, incomp2 95 | full 96 | and (hl) 97 | ld (de),a 98 | inc de 99 | ld a,c ; 100 | ; 7 +8 +7 +24 +10+22 = 7 + 71 101 | sigue_e 102 | ld hl,k0 ;-$ff00 103 | in f,(c) 104 | k1 105 | pe1 jp pe , escurre ; 22 106 | 107 | 108 | b2 inc l 109 | in f ,(c) ;4+12 110 | po1 jp po, b2 ;10 111 | 112 | out (c),b ; 12 113 | 114 | 115 | ld b,11 ;x 116 | pausa1 djnz pausa1 ; p=13*x +2 117 | ; x= (240 - 97)/13 = 11 118 | ; x= (219 - 97)/13 = 9.3 119 | 120 | ; x= (197 - 97)/13 = 7.6 121 | ; x= (179 - 97)/13 = 6.3 122 | 123 | ld b, $9 124 | rlca 125 | rla 126 | ; 15 127 | jr nc, full 128 | ; 10+12 + p + 15 + 12 + 24 + 10 + 12 = 95 129 | dec b 130 | and (hl) 131 | bit 5,L 132 | jr z, sigue_e ;31 133 | ; 22 + p + 15 + 7 + 31 + 10 + 12 = 97 134 | ; 135 | 136 | pos_EI ei 137 | jp randomizeusr 138 | 139 | 140 | 141 | 142 | randomizeusr nop 143 | 144 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/manDiferencial.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320; 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | inicio ld hl, 23797 13 | ld de, pilot 14 | ld b,1 15 | ldir 16 | 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | 21 | pilot 22 | 23 | max ld a, $58 24 | ex af, af' 25 | ld ixh,$ff 26 | dec hl 27 | 28 | di 29 | ld bc, $0efe 30 | ld de, $10ea 31 | pii xor a 32 | out (c),e 33 | pi_LOW inc a 34 | in f,(c) 35 | jp po, pi_LOW 36 | 37 | out (c),b 38 | pi_HIGH sub c 39 | in f,(c) 40 | jp pe, pi_HIGH 41 | 42 | SYNC cp 74 43 | rl d 44 | cp 54 45 | jr nc, pii 46 | 47 | inc d 48 | jr nz , pii 49 | 50 | cp 34 51 | ld a, $80 52 | jr c , entra1 53 | 54 | LOWs in f,(c) 55 | jp po, LOWs 56 | 57 | jr entra2 58 | 59 | 60 | ld b,b 61 | ld b,b 62 | ld b,b 63 | ld b,b 64 | ld b,b 65 | ld b,b 66 | sigue1 67 | in f,(c) 68 | jp pe , HIGH 69 | 70 | entra1 dec e 71 | 72 | LOW in f,(c) 73 | jp po, LOW 74 | 75 | k0 ld ixl,sigue2-$ff00 76 | 77 | inc e 78 | add a,a 79 | jp nc, FULL 80 | no_full 81 | xor e 82 | and c 83 | xor e 84 | ex af, af' 85 | cp h 86 | jr z, fin 87 | ex af, af' 88 | 89 | out (c),b 90 | inc b 91 | 92 | jp (ix) ; 12+19+16+8 = 55 93 | 94 | 95 | ld b,b 96 | ld b,b 97 | ld b,b 98 | ld b,b 99 | ld b,b 100 | ld b,b 101 | sigue2 102 | in f,(c) 103 | jp po, LOW 104 | 105 | entra2 dec e 106 | 107 | HIGH in f , (c) 108 | jp pe , HIGH 109 | 110 | k1 ld ixl,sigue1-$ff00 111 | 112 | inc e 113 | add a,a 114 | jp c, no_FULL ; 22 + 11 +8 +10= 51 115 | FULL 116 | xor e 117 | and c 118 | xor e 119 | ld (hl),a 120 | inc hl 121 | xor d 122 | ld d,a 123 | ld a,c 124 | 125 | ld bc, $08fe 126 | 127 | jp (ix) ; 12 + 25 + 10+ 8 = 55 128 | 129 | fin 130 | 131 | ld a,d 132 | or a 133 | pos_EI 134 | ei 135 | jp randomizeusr ;ret z 136 | ;rst 8 137 | ;defb 26 138 | 139 | randomizeusr nop 140 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/manchester.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 ; org $ffff - 180 -1 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | pilot 22 | max ld a, $58 23 | ex af, af' 24 | ld ix , sigue0 25 | dec hl 26 | 27 | di 28 | ld bc, $0efe 29 | ld de, $10ea 30 | pii xor a 31 | out (c),e 32 | pi_LOW inc a 33 | in f,(c) 34 | jp po, pi_LOW 35 | 36 | out (c),b 37 | pi_HIGH sub c 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 74 42 | rl d 43 | cp 54 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | cp 34 50 | ld a,d ; ld a, $80 51 | 52 | LOWsyn in f,(c) 53 | jp po, LOWsyn 54 | 55 | jr c , entra1 56 | 57 | ld (ix+inibit0 - sigue0 ) , $b7 58 | ld (ix+inibit1 - sigue0 ) , $37 59 | 60 | ; ld a,$80 ; jr entra0 61 | 62 | Highsyn in f,(c) 63 | jp pe, highsyn 64 | 65 | 66 | 67 | sigue0 68 | in f , (c) 69 | jp pe , HIGH 70 | 71 | entra0 72 | LOW in f,(c) 73 | jp po, LOW 74 | 75 | inibit0 scf 76 | ld ixl , sigue1 - $ff00 77 | k0 jp procede 78 | 79 | sigue1 80 | in f,(c) 81 | jp po, LOW ; 18+50+14+22= 104 82 | entra1 83 | HIGH in f , (c) 84 | jp pe , HIGH 85 | 86 | inibit1 or a 87 | ld ixl , sigue0 -$ff00 88 | k1 jp procede 89 | 90 | 91 | 92 | ld b,b 93 | ld b,b 94 | ld b,b 95 | ld b,b 96 | ld b,b ;ex (sp),hl 97 | ld b,b ;ex (sp),hl 98 | ld b,b ;ex (sp),hl 99 | ld b,b ;ex (sp),hl 100 | procede 101 | rla ;4+4+10+4 =18 102 | 103 | jr c, noFULL 104 | FULL 105 | dec b 106 | set 3,b 107 | ld (hl),a 108 | inc hl 109 | xor d 110 | ld d,a 111 | ld a,c ; 7 + 12 + 25 +8 = 52 112 | 113 | jp (ix) 114 | 115 | ld b,b 116 | 117 | nofull out (c), b 118 | ex af, af' 119 | cp h 120 | jr z, fin 121 | ex af, af' 122 | 123 | jp (ix) ; 12 +12 + 19 + 8 = 51 124 | 125 | fin 126 | ld a,d 127 | or a 128 | pos_EI 129 | ei 130 | jp randomizeusr ;ret z 131 | ;rst 8 132 | ;defb 26 133 | 134 | randomizeusr nop 135 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/milks.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 65320; org 65326 -4 -1 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K0-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | ld hl, 23797 14 | ld de, inicio 15 | ld b,1 16 | ldir 17 | MAX 18 | K0 ld hl,$3fff 19 | jp pilot 20 | 21 | 22 | inicio 23 | fin_2 24 | pop HL 25 | exx 26 | ei 27 | rst 8 28 | tabla 29 | defb 26 ,$ff,$fc 30 | defb $ff,$fc,$fc 31 | defb $ff,$fd,$fd 32 | defb $ff,$fd,$fd 33 | defb $ff,$fe,$fe 34 | defb $ff,$fe,$ff 35 | defb $ff,$ff,$ff 36 | 37 | pilot 38 | defb 01 ,$ff,$ff ; ld b 39 | 40 | ld e,$fe ;contador 4 (d=chk) 41 | ; ld b,e ; longitud 42 | ld ix, t00 43 | exx 44 | push hl 45 | 46 | di 47 | ld bc, $0ffe 48 | ld de , $1048 49 | ld hl, $ff0a 50 | 51 | pii xor a 52 | out (c), L 53 | 54 | pi_LOW inc a 55 | in f,(c) 56 | jp po, pi_LOW 57 | 58 | out (c),b 59 | pi_HIGH sub c 60 | in f,(c) 61 | jp pe, pi_HIGH 62 | 63 | SYNC cp 74 64 | rl d 65 | cp 54 66 | jr nc, pii 67 | 68 | inc d 69 | jr nz , pii 70 | 71 | 72 | ld a,e ;dato ;a' 73 | dec d; d= $ff 74 | 75 | ex af, af' 76 | ld a,e 77 | jr entra2 78 | 79 | t00 ld a,d 80 | ld ixl,t1-$ff00 81 | jr BYTE_OK 82 | 83 | t1 ld h,a 84 | ld ixl,T2-$ff00 85 | jr BYTE_OK 86 | 87 | t2 ld l,a 88 | ld ixl,t3-$ff00 89 | jr BYTE_OK ; 90 | 91 | t3 ld b,a 92 | ld ixl,t4-$ff00 93 | jr BYTE_OK ; 94 | 95 | t4 ld c,a 96 | ld ixl, t5-$ff00 97 | jr BYTE_OK ; 98 | 99 | t5 xor d 100 | ld ixl, t55-$ff00 101 | jr Z, chk_ok 102 | jr fin_2 103 | 104 | t55 ld ixl, t6-$ff00 105 | jr chk_ok ; 106 | 107 | 108 | t6 ld (hl),a 109 | inc hl 110 | dec bc 111 | BYTE_OK xor d 112 | chk_ok ld d,a 113 | ld a,e 114 | entra 115 | ex af,af' 116 | sigue exx 117 | 118 | or d 119 | ld r,a 120 | HIGH in f,(c) 121 | jp pe, HIGH 122 | 123 | ld a,r 124 | rra 125 | entra2 126 | ld l,a 127 | ex af, af' 128 | LOW in f,(c) 129 | jp po, LOW 130 | 131 | rlca 132 | rla 133 | jr c , falta 134 | ;jr nc , FULL 135 | 136 | 137 | FULL and (hl) 138 | exx 139 | jp (ix) 140 | 141 | falta and (hl) 142 | ex af,af' 143 | ;rra 144 | or e 145 | and b 146 | out ($fe),a 147 | exx 148 | inc b 149 | djnz sigue 150 | fin 151 | acaba LD A,D 152 | pop HL 153 | exx 154 | OR A 155 | pos_EI 156 | ei 157 | jp randomizeusr ;ret z 158 | ;rst 8 159 | ;defb 26 160 | 161 | randomizeusr nop 162 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/npu.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | inicio ld hl, 23797 12 | ld de, pilot 13 | ld b,1 14 | ldir 15 | max 16 | ld hl,$3fff 17 | jp pilot 18 | 19 | pilot di 20 | ld bc, $eafe 21 | ld de, $10ee 22 | 23 | pii xor a 24 | out (c),e 25 | 26 | pi_LOW inc a 27 | in f,(c) 28 | jp po, pi_LOW 29 | 30 | out (c),b 31 | 32 | pi_HIGH sub c 33 | in f,(c) 34 | jp pe, pi_HIGH 35 | 36 | SYNC cp 75 37 | rl d 38 | cp 54 39 | jr nc, pii 40 | 41 | inc d 42 | jr nz , pii 43 | 44 | cp 34 45 | ld a,b 46 | 47 | jr c, noinv 48 | 49 | Ps in f,(c) 50 | jp po, ps 51 | 52 | xor 8 53 | noinv 54 | ld (pe1 ),a 55 | ld (pe2 ),a 56 | xor 8 ; 57 | ld (po0 ),a 58 | ld (po1 ),a 59 | ld (po2 ),a 60 | 61 | fs in f,(c) 62 | po0 jp po, fs 63 | 64 | ex de, hl 65 | 66 | dec de 67 | dec hl 68 | ld h,$ff 69 | xor a 70 | ld ixl,a ; 35 71 | 72 | sigue 73 | ld l, (k1-1) - $ff00 ; ld l,b 74 | k0 75 | f1 inc hl 76 | in f,(c) 77 | pe1 jp pe, f1 78 | 79 | add a,a 80 | or (hl) 81 | 82 | ld (de),a 83 | inc de 84 | xor ixl ;32 85 | 86 | ld l, (k1-1) - $ff00 ; ld hl, k1-1 ;ld l,b 87 | f2 inc hl 88 | in f,(c) 89 | po1 jp po, f2 90 | 91 | 92 | ld ixl,a 93 | 94 | ld a,(hl) 95 | add a,a 96 | 97 | out (c),b ;31 98 | 99 | 100 | ld l, (k1-1) - $ff00 ;ld l,b 101 | f3 inc hl 102 | in f,(c) 103 | pe2 jp pe, f3 104 | 105 | add a,a 106 | or (hl) 107 | add a,a 108 | 109 | dec b 110 | out (c),b ;31 111 | 112 | 113 | ld l, (k1-1) - $ff00 ;ld l,b ; 114 | f4 inc hl 115 | in f,(c) 116 | po2 jp po, f4 117 | 118 | 119 | inc b 120 | 121 | add a,a 122 | or (hl) 123 | add a,a 124 | 125 | jr nc, sigue ; 31 126 | 127 | 128 | ld a,ixl 129 | or a 130 | 131 | pos_EI 132 | fin ei 133 | jp randusr 134 | 135 | 136 | k1 137 | defb 0x20,0x20 138 | 139 | defb 0x20,0x20,0x20,0x20,0x20 140 | defb 0x20,0x20,0x20,0x20,0x20 141 | defb 0x20,0x20,0x20,0x20,0x20 142 | defb 0x20,0x20,0x20,0x20,0x20 143 | 144 | defb 0x20,0x20 145 | 146 | defb 0x20,0x20,0x20,0x20 147 | 148 | randusr nop 149 | 150 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/npu_R.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org $ff00 -15 -1 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, k0 15 | ld b,1 16 | ldir 17 | max 18 | ld hl,$3fff 19 | jp k0 ;pilot 20 | 21 | 22 | k0 23 | k1 24 | 25 | 26 | 27 | defb 0x80,0x80,0x80,0x80 28 | defb 0x80,0x80,0x80,0x80 29 | defb 0x80,0x80,0x80,0x80 30 | defb 0x80,0x80,0x80,0x80 31 | 32 | defb 0x80,0x80,0x80,0x80 33 | defb 0x80,0x80,0x80,0x80 34 | defb 0x80,0x80,0x80,0x80 35 | defb 0x80,0x80,0x80,0x80 36 | 37 | defb 0x80,0x80,0x80,0x80 38 | defb 0x80,0x80,0x80,0x80 39 | defb 0x80,0x80,0x80,0x80 40 | defb 0x80,0x80,0x80,0x80 41 | 42 | defb 0x80,0x80,0x80,0x80 43 | defb 0x80,0x80,0x80,0x80 44 | defb 0x80,0x80,0x80,0x80 45 | defb 0x80,0x80,0x80,0x80 46 | 47 | defb 0x80,0x80,0x80,0x80 48 | defb 0x80,0x80,0x80,0x80 49 | defb 0x80,0x80,0x80,0x80 50 | 51 | 52 | 53 | pilot di 54 | ld bc, $eefe 55 | ld de, $90ea 56 | pii xor a 57 | out (c),e 58 | pi_LOW inc a 59 | in f,(c) 60 | jp po, pi_LOW 61 | 62 | out (c),b 63 | pi_HIGH sub c 64 | in f,(c) 65 | jp pe, pi_HIGH 66 | 67 | SYNC cp 74 ;29 68 | rl d 69 | cp 54 ;19 70 | jr nc, pii 71 | 72 | inc d 73 | jr nz , pii 74 | 75 | dec hl 76 | ex de,hl 77 | 78 | ld hl, k0+12 79 | 80 | fs in f,(c) 81 | jp po, fs 82 | 83 | jr entra 84 | 85 | 86 | 87 | 88 | sigue ; ((; 14 89 | 90 | 91 | add a,a 92 | 93 | ex af,af' 94 | ld a,R 95 | ld l,a 96 | ex af,af' 97 | 98 | add a,(hl) 99 | ; 45 100 | 101 | f1 in f,(c) 102 | jp po, f1 103 | 104 | 105 | add a,a 106 | inc de 107 | 108 | ex af,af' 109 | ld a,R 110 | sub l 111 | ld l,a 112 | entra 113 | xor a 114 | ld R,a 115 | ex af,af' 116 | 117 | ; 46 118 | f2 in f,(c) 119 | jp pe, f2 120 | 121 | 122 | add a,a 123 | add a,(hl) 124 | add a,a 125 | 126 | ex af,af' 127 | ld a,R 128 | ld l,a 129 | ex af,af' 130 | 131 | add a,a 132 | add a,(hl) 133 | 134 | 135 | ; 46 136 | f3 in f,(c) 137 | jp po, f3 138 | 139 | ld (de),a 140 | 141 | 142 | ld a,R 143 | sub l 144 | ld l,a 145 | 146 | ld a,0 ; xor a 147 | ld R,a 148 | 149 | ld a,(hl) 150 | 151 | ; 42 152 | f4 in f,(c) 153 | jp pe, f4 154 | 155 | 156 | add a,a 157 | 158 | jp nc, sigue 159 | 160 | xor a 161 | 162 | pos_EI 163 | fin ei 164 | jp randusr 165 | 166 | randusr nop 167 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/presto.asm: -------------------------------------------------------------------------------- 1 | org 65320 2 | 3 | CTES 4 | defb MAX-CTES 5 | defb K0-CTES 6 | defb K1-CTES 7 | defb pos_EI -CTES 8 | defb SYNC -CTES 9 | 10 | 11 | 12 | inicio ld hl, 23797 13 | ld de, ini1 14 | ld b,1 15 | ldir 16 | max 17 | k1 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | ini1 22 | 23 | pilot dec hl 24 | ld a,$ca 25 | ex af,af' 26 | ld de, $100a 27 | ld bc, $0efe 28 | di 29 | 30 | pii xor a 31 | out (c),b 32 | pi_LOW inc a 33 | in f,(c) 34 | jp po, pi_LOW 35 | 36 | out (c),e 37 | pi_HIGH inc a 38 | in f,(c) 39 | jp pe, pi_HIGH 40 | 41 | SYNC cp 72 42 | rl d 43 | cp 55 44 | jr nc, pii 45 | 46 | inc d 47 | jr nz , pii 48 | 49 | cp 32 50 | ld a,$ea ;e 51 | jr c,n_inv 52 | 53 | pi_syn in f,(c) 54 | jp po, pi_syn 55 | 56 | xor 8 57 | n_inv ld (pe1),a 58 | xor 8 ; 59 | ld (po1),a 60 | 61 | ld ixl,d 62 | ex de , hl 63 | ;ld h,$ff 64 | ld a,$78 65 | jr entra 66 | 67 | 68 | 69 | 70 | full and (hl) 71 | ld (de),a 72 | inc de 73 | xor ixl 74 | ld ixl,a 75 | ld a,c 76 | ; 12 + 40 + 7 = 59 77 | sigue 78 | entra 79 | 80 | ld hl,k0 - 3 ;ld l,k0-$ff00 - 3 81 | 82 | LOW inc hl 83 | in f,(c) 84 | po1 jp po, LOW 85 | 86 | ex af,af' 87 | ld b,a 88 | ld a,$c4 89 | cp l 90 | jr c,fin 91 | ld a,b 92 | ex af,af' 93 | 94 | rlca 95 | rla ; 42 96 | 97 | HIGH inc hl 98 | in f,(c) 99 | pe1 jp pe , HIGH 100 | 101 | jr nc,full 102 | 103 | and (hl) 104 | ex af,af' 105 | xor 4 106 | out ($fe),a 107 | ex af,af' 108 | 109 | jr sigue 110 | ;7 + 45 + 7 = 59 111 | 112 | defb 0xff 113 | K0 114 | tabla 115 | 116 | defb 0xFc , 0xFc 117 | defb 0xFC , 0xFC , 0xFC 118 | defb 0xFc , 0xFc , 0xFd , 0xFd 119 | defb 0xFD , 0xFD , 0xFD , 0xFD 120 | defb 0xFd , 0xFd , 0xFe , 0xFe 121 | defb 0xFe , 0xFE , 0xFE , 0xFE 122 | defb 0xFe , 0xFe , 0xFf 123 | defb 0xFF , 0xFF , 0xFF , 0xFF , 0xFF 124 | defb 0xFf , 0xFf , 0xFf , 0xFf 125 | 126 | 127 | fin 128 | ld a,ixl 129 | or a 130 | 131 | pos_EI 132 | ei 133 | jp randusr ; 7997 134 | 135 | 136 | randusr 137 | nop 138 | 139 | 140 | 141 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/rom.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 ; 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | ld hl, 23797 13 | ld de, inicio 14 | ld b,1 15 | ldir 16 | 17 | MAX ld hl,$3fff 18 | jp pilot 19 | 20 | inicio 21 | pilot di 22 | ld de, $10e8 23 | ld bc, $affe 24 | 25 | pii xor a 26 | out (c),e 27 | 28 | pi_LOW inc a 29 | in f,(c) 30 | jp po, pi_LOW 31 | out (c),b 32 | pi_HIGH sub c 33 | in f,(c) 34 | jp pe, pi_HIGH 35 | 36 | SYNC cp 74 37 | rl d 38 | cp 54 39 | jr nc, pii 40 | inc d 41 | jr nz , pii 42 | 43 | ld d,e 44 | 45 | JR entra 46 | 47 | 48 | 49 | FULL ld (hl),d 50 | inc hl 51 | ld d,C ; 12 + 17 = 29 52 | 53 | SIGUE 54 | poo in f,(c) 55 | jp po , poo ; 22 56 | 57 | 58 | k1 cp $1f 59 | jr nc, fin 60 | 61 | rra 62 | or e 63 | ld b,a 64 | entra 65 | xor a 66 | ld R,a ; 37 67 | 68 | poe in f,(c) 69 | jp pe , poe 70 | 71 | Ld a,R 72 | 73 | k0 cp $8 74 | ccf 75 | rl d ; 27 76 | 77 | jr Nc, full 78 | 79 | 80 | out (c),b ; 81 | jr c, SIGUE ; 7+ 24 = 31 82 | 83 | 84 | fin 85 | pos_EI 86 | ei 87 | jp rand 88 | 89 | rand nop 90 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/rom_mini.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 ; 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | ld hl, 23797 13 | ld de, inicio 14 | ld b,1 15 | ldir 16 | k1 17 | MAX ld hl,$3fff 18 | jp pilot 19 | 20 | inicio 21 | pilot di 22 | ld bc, $0efe 23 | ld de, $10ea 24 | 25 | pii xor a 26 | out (c),e 27 | 28 | pi_LOW inc a 29 | in f,(c) 30 | jp po, pi_LOW 31 | out (c),b 32 | pi_HIGH sub c 33 | in f,(c) 34 | jp pe, pi_HIGH 35 | 36 | SYNC cp 74 37 | rl d 38 | cp 54 39 | jr nc, pii 40 | inc d 41 | jr nz , pii 42 | 43 | cp 34 44 | ld a,e 45 | 46 | jr c, noinv 47 | 48 | Ps in f,(c) 49 | jp po, ps 50 | 51 | xor 8 52 | noinv 53 | ld (pe1 ),a 54 | xor 8 ; 55 | ld (po1 ),a 56 | 57 | K0 ld de,$e0f2 58 | ld b,$3f 59 | 60 | JR entra ;: SIGUE 61 | 62 | 63 | 64 | FULL ld (hl),d 65 | inc hl 66 | ld d,C ; 12 + 17 = 29 67 | entra 68 | SIGUE xor a 69 | ld R,a ; 13 70 | 71 | HIGH in f,(c) 72 | pe1 jp pe , HIGH 73 | 74 | Ld a,R 75 | add a,e 76 | rl d ; 77 | 78 | LOW in f,(c) 79 | po1 jp po , LOW ; 22 80 | 81 | jr Nc, FULL 82 | 83 | ld a,R 84 | cp b 85 | jr c, SIGUE ; 7+ 25 = 32 86 | 87 | fin 88 | pos_EI 89 | ei 90 | jp rand 91 | 92 | rand nop 93 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/scherzando.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | 18 | ld hl,$3fff 19 | jp pilot 20 | 21 | tabla 22 | pilot di 23 | xor a 24 | ex af,af' 25 | dec hl 26 | ld bc, $0efe 27 | ld de, $10ea 28 | 29 | pii xor a 30 | out (c),e 31 | pi_LOW inc a 32 | in f,(c) 33 | jp po, pi_LOW 34 | 35 | out (c),b 36 | pi_HIGH inc a 37 | in f,(c) 38 | jp pe, pi_HIGH 39 | 40 | SYNC cp 72 41 | rl d 42 | cp 55 43 | jr nc, pii 44 | 45 | inc d 46 | jr nz , pii 47 | 48 | cp 32 49 | ld a,e 50 | jr c, noinv 51 | 52 | Ps in f,(c) 53 | jp po, ps 54 | 55 | xor 8 56 | noinv ld (pe1),a 57 | ld (pe2),a 58 | xor 8 ; 59 | ld (po1),a 60 | ld (po2),a 61 | 62 | ld b, $e0 63 | jr sigue 64 | 65 | 66 | full ex af,af' 67 | xor b 68 | ex af,af' 69 | ld (hl), b 70 | inc hl 71 | ld b,c ;12 +12 + 17 = 41 72 | sigue 73 | entra 74 | 75 | LOW1 ld a,c 76 | 77 | in f,(c) 78 | po1 jp po, LOW1 79 | 80 | k0 ld e,$fe 81 | 82 | HIGH1 inc a 83 | inc e 84 | in f,(c) 85 | pe1 jp pe, HIGH1 86 | 87 | ld d,$fe 88 | 89 | LOW2 inc a 90 | inc d 91 | in f,(c) 92 | po2 jp po, LOW2 93 | 94 | cp 0x2a 95 | 96 | HIGH2 inc e 97 | inc d 98 | in f,(c) 99 | pe2 jp pe, HIGH2 100 | 101 | jr nc ,acaba 102 | 103 | cp d 104 | rl b 105 | 106 | adc a,d ;add a,d 107 | rra 108 | cp e 109 | rl b 110 | 111 | ld a,L ; 43 112 | 113 | jr nc , FULL 114 | 115 | and $e 116 | k1 or $a 117 | out ($fe),a 118 | 119 | jp sigue ; 7 + 25 + 10 = ; 42 120 | 121 | 122 | 123 | acaba ex af,af' 124 | pos_EI 125 | fin 126 | ei 127 | jp randomizeusr ;ret z 128 | ;rst 8 129 | ;defb 26 130 | 131 | 132 | 133 | 134 | randomizeusr nop 135 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/slow.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 65320 ; org $ffff - 187 ; 139 - 42 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | MAX ld hl,$3fff 18 | jp pilot 19 | 20 | pilot di 21 | ld bc, $0efe 22 | ld de, $10ea 23 | pii xor a 24 | out (c),e 25 | pi_LOW inc a 26 | in f,(c) 27 | jp po, pi_LOW 28 | 29 | out (c),b 30 | pi_HIGH sub c 31 | in f,(c) 32 | jp pe, pi_HIGH 33 | 34 | SYNC cp 74; 29 35 | rl d 36 | cp 54 ;19 37 | jr nc, pii 38 | 39 | inc d 40 | jr nz , pii 41 | 42 | cp 34 ;8; cp 11 43 | ld a,e ; $ea 44 | jr c, no_inv 45 | 46 | syn_LOW in f,(c) 47 | jp po, syn_LOW 48 | 49 | xor 8 50 | no_inv 51 | ld (pe1),a 52 | ld (pe0),a ;ld (jf0),a 53 | xor 8 54 | ld (po1),a 55 | 56 | dec hl 57 | 58 | ;//ld de,$40a3 ; x0x0x0x1 -> 10100011 59 | ld de, $80d4 ; x1x1x1x0 -> 11010100 d4 60 | 61 | K1 ld b,11 62 | xor a 63 | ex af, af' 64 | ld a, -52 ; -11 ; xor a 65 | 66 | syncro in f,(c) 67 | ;jf0 jp po, HIGH 68 | pe0 jp pe, HIGH 69 | jr syncro 70 | 71 | 72 | full ex af, af' 73 | xor d 74 | ex af, af' 75 | ld (hl),d 76 | inc hl 77 | ld d, e; //c ; ; 24 + 12 + 29 + 4 = 69 78 | 79 | sigue xor a 80 | 81 | LOW add a,b 82 | in f,(c) 83 | po1 jp po, LOW ;26 84 | 85 | 86 | cp $c0 87 | jr nc , fin 88 | 89 | 90 | K0 add a,-11 91 | ;18 92 | HIGH add a,b 93 | in f , (c) 94 | pe1 jp pe , HIGH ; 69+26+18+26= 95 | 96 | rla 97 | rl d 98 | rla 99 | rl d 100 | 101 | jr nC, full 102 | 103 | or c 104 | xor e 105 | out (c),a 106 | jr sigue 107 | ;24 + 7 + 32 + 4 = 67 108 | 109 | fin ex af,af' 110 | or a 111 | pos_EI 112 | ei 113 | jp randomizeusr ;ret z 114 | ;rst 8 115 | ;defb 26 116 | 117 | randomizeusr nop 118 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/slow_tabla.asm: -------------------------------------------------------------------------------- 1 | 2 | 3 | org 65320 ; org $ffff - 187 ; 139 - 42 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | 13 | inicio ld hl, 23797 14 | ld de, pilot 15 | ld b,1 16 | ldir 17 | MAX ld hl,$3fff 18 | jp pilot 19 | 20 | pilot 21 | dec hl 22 | di 23 | ld bc, $0efe 24 | ld de, $10ea 25 | 26 | pii xor a 27 | out (c),e 28 | pi_LOW inc a 29 | in f,(c) 30 | jp po, pi_LOW 31 | 32 | out (c),b 33 | pi_HIGH sub c 34 | in f,(c) 35 | jp pe, pi_HIGH 36 | 37 | SYNC cp 74; 29 38 | rl d 39 | cp 54 ;19 40 | jr nc, pii 41 | 42 | inc d 43 | jr nz , pii 44 | 45 | 46 | syn_LOW in f,(c) 47 | jp po, syn_LOW 48 | 49 | cp 34 ;8; cp 11 50 | ld a,e ; $ea 51 | 52 | 53 | jr c, no_inv 54 | 55 | 56 | xor 8 57 | 58 | syn_hi in f,(c) 59 | jp pe, syn_hi 60 | 61 | no_inv 62 | ld (pe1),a 63 | xor 8 64 | ld (po1),a 65 | 66 | 67 | ld ixl,d 68 | 69 | ex de,hl 70 | 71 | 72 | ld b,11 73 | xor a 74 | jr entra 75 | K1 76 | tabla 77 | defb $fc,$40,$40,$40,$40 78 | defb $40,$40,$40,$40,$40 79 | defb $40,$40,$40,$40,$40 80 | defb $40,$40,$40,$40,$40 81 | defb $40,$40,$40,$40,$40 82 | defb $40,$40,$40,$40 83 | 84 | full 85 | and H 86 | ld (de),a 87 | inc de 88 | xor ixl 89 | ld ixl,a 90 | ld a, c; ; 10 + 37 = 47 91 | sigue 92 | 93 | entra 94 | 95 | HIGH inc hl 96 | in f , (c) 97 | pe1 jp pe , HIGH 98 | 99 | ld h,$ff 100 | ld h,(hl) 101 | 102 | 103 | k0 ld l,tabla-$ff00 104 | 105 | rlca 106 | rla ;29 107 | 108 | LOW inc hl 109 | in f,(c) 110 | po1 jp po, LOW ;28 111 | ; 48+28+29+28=133 112 | 113 | 114 | jp nC, full 115 | 116 | dec b 117 | set 1,b 118 | out (c),b 119 | and H 120 | jp m, sigue 121 | ;10 + 28 +10= 48 122 | 123 | fin ld a,ixl 124 | or a 125 | pos_EI 126 | ei 127 | jp randomizeusr ;ret z 128 | ;rst 8 129 | ;defb 26 130 | 131 | 132 | randomizeusr nop 133 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/snap.asm: -------------------------------------------------------------------------------- 1 | 2 | org $4900 + 29 3 | 4 | 5 | snap ld de,$ff00 6 | ld hl,18400 7 | ld bc,$100 8 | ldir 9 | 10 | ld sp,hl 11 | 12 | pop hl 13 | pop de 14 | pop bc 15 | pop af 16 | 17 | exx 18 | ex af,af' 19 | 20 | pop iy 21 | pop ix 22 | pop hl 23 | pop de 24 | 25 | pop af 26 | im 0 27 | jr z,bb 28 | im 1 29 | jr nc,bb 30 | im 2 31 | 32 | bb out ($fe),a 33 | rla 34 | 35 | pop bc 36 | ld a,b 37 | ld i,a 38 | ld a,c 39 | ld r,a 40 | 41 | pop bc 42 | jr c , en_in 43 | 44 | pop af 45 | ld sp, ($4900 + 24) 46 | jr fin 47 | 48 | en_in pop af 49 | ld sp,($4900 + 24) 50 | ei 51 | fin jr snap-3 ;jp retorno 52 | 53 | retorno nop ;ret 54 | 55 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/ultra.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | 14 | inicio ld hl, 23797 15 | ld de, pilot 16 | ld b,1 17 | ldir 18 | MAX 19 | ld hl,$3fff 20 | jp pilot 21 | 22 | pilot 23 | di 24 | ld bc, $0efe 25 | ld de, $10ea 26 | pii xor a 27 | out (c),e 28 | pi_LOW inc a 29 | in f,(c) 30 | jp po, pi_LOW 31 | 32 | out (c),b 33 | pi_HIGH sub c 34 | in f,(c) 35 | jp pe, pi_HIGH 36 | 37 | SYNC cp 74 38 | rl d 39 | cp 54 40 | jr nc, pii 41 | 42 | inc d 43 | jr nz , pii 44 | 45 | cp 34 46 | ld a,e 47 | jr c, no_inv 48 | 49 | xor 8 50 | no_inv ld (pe1),a 51 | xor 8 ; 52 | ld (po1),a 53 | 54 | k0 ld de, $801f; $80 55 | k1 ld b, $8a 56 | 57 | jr entra 58 | 59 | 60 | full ld (hl),d 61 | inc hl 62 | ld d, c ;12 +10 +17 +4= 43 63 | sigue 64 | 65 | ld a,e 66 | 67 | LOW inc a 68 | in f,(c) 69 | po1 jp po, LOW 70 | 71 | add a,a 72 | rl d 73 | 74 | and 2 75 | xor b 76 | 77 | out ($fe),a 78 | 79 | entra 80 | ld a,e ; 23 +11 +4= 38 81 | 82 | HIGH inc a 83 | in f , (c) 84 | pe1 jp pe , HIGH 85 | 86 | rlca 87 | rl d 88 | 89 | jp nC , full ; 90 | 91 | rrca 92 | cp b 93 | jp c, sigue 94 | ; 12 + 10 + 8+ 10+ 4 = 44 95 | 96 | FIN 97 | pos_EI 98 | ei 99 | jp randomizeusr 100 | 101 | randomizeusr nop 102 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/ultra_r.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | CTES 5 | defb MAX-CTES 6 | defb K0-CTES 7 | defb K1-CTES 8 | defb pos_EI -CTES 9 | defb SYNC -CTES 10 | 11 | 12 | 13 | 14 | inicio ld hl, 23797 15 | ld de, pilot 16 | ld b,1 17 | ldir 18 | max 19 | ld hl,$3fff 20 | jp pilot 21 | 22 | 23 | pilot 24 | di 25 | ld bc, $0efe 26 | ld de, $10ea 27 | pii xor a 28 | out (c),e 29 | pi_LOW inc a 30 | in f,(c) 31 | jp po, pi_LOW 32 | 33 | out (c),b 34 | pi_HIGH sub c 35 | in f,(c) 36 | jp pe, pi_HIGH 37 | 38 | SYNC cp 74 39 | rl d 40 | cp 54 41 | jr nc, pii 42 | 43 | inc d 44 | jr nz , pii 45 | 46 | cp 34 47 | ld a,e 48 | jr c, no_inv 49 | 50 | xor 8 51 | no_inv ld (pe1),a 52 | xor 8 ; 53 | ld (po1),a 54 | 55 | ld de, $c0e8 56 | 57 | call entra 58 | 59 | 60 | FIN 61 | pos_EI 62 | ei 63 | jp randomizeusr 64 | 65 | 66 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 67 | 68 | ;20 69 | full add a,e 70 | rl d 71 | ld (hl),d 72 | ld d, e ; e=1x1x1x0x ; 0xe8 73 | inc hl ;29 74 | ; = 49 75 | 76 | 77 | sigue 78 | LOW in f,(c) 79 | po1 jp po, LOW 80 | 81 | 82 | ld b,a 83 | 84 | ld a, r 85 | sub b 86 | k1 add a, 212 87 | 88 | entra rl d 89 | 90 | k0 ld a, 12 91 | ld r,a 92 | ; 46 93 | 94 | HIGH in f , (c) 95 | pe1 jp pe , HIGH 96 | 97 | ld a,r 98 | 99 | jr nC , full ; 100 | ; 15 101 | cp 50 102 | ret nc 103 | add a,e 104 | rl d ; 105 | jp sigue ; 34 106 | ; = 49 107 | 108 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 109 | 110 | 111 | randomizeusr nop 112 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/asm/vivace.asm: -------------------------------------------------------------------------------- 1 | 2 | org 65320 3 | 4 | 5 | CTES 6 | defb MAX-CTES 7 | defb K0-CTES 8 | defb K1-CTES 9 | defb pos_EI -CTES 10 | defb SYNC -CTES 11 | 12 | inicio ld hl, 23797 13 | ld de, tabla 14 | ld b,1 15 | ldir 16 | MAX 17 | ld hl,$3fff 18 | jp pilot 19 | 20 | tabla 21 | k0 22 | pilot 23 | dec hl 24 | xor a 25 | ex af,af' 26 | di 27 | ld bc, $eafe 28 | ld de, $10ee 29 | 30 | 31 | pii xor a 32 | out (c),e 33 | pi_LOW inc a 34 | in f,(c) 35 | jp po, pi_LOW 36 | 37 | out (c),b 38 | pi_HIGH inc a 39 | in f,(c) 40 | jp pe, pi_HIGH 41 | 42 | SYNC cp 72 43 | rl d 44 | cp 55 45 | jr nc, pii 46 | 47 | inc d 48 | jr nz , pii 49 | 50 | cp 32 51 | ld a,b 52 | 53 | jr c, noinv 54 | 55 | 56 | Ps in f,(c) 57 | jp po, ps 58 | 59 | xor 8 60 | noinv ld (jf2),a 61 | xor 8 ; 62 | ld (jf1),a 63 | 64 | ld de,$8060 65 | ld a, $8e 66 | jr entra 67 | 68 | full ex af,af' 69 | xor d 70 | ex af,af' 71 | ld (hl),d 72 | inc hl 73 | ld d,c ;12 + 29 = 41 74 | 75 | sigue 76 | 77 | 78 | HIGH inc de 79 | in f,(c) 80 | jf2 jp pe, HIGH 81 | 82 | cp e 83 | jr c , fin 84 | 85 | rl e 86 | k1 ld e,$73 ;(0x77+0x70)/2 87 | entra rl d ; 4 + 7+8+7+8= 34 88 | 89 | LOW inc de 90 | in f,(c) 91 | jf1 jp po, LOW 92 | 93 | 94 | jr nc , FULL 95 | 96 | 97 | out ($fe),a 98 | out (c),b 99 | jr sigue ; 7 + 12 + 11 +12 = 42 100 | 101 | fin 102 | ex af,af' 103 | or a 104 | pos_EI 105 | 106 | acaba ei 107 | jp randomizeusr 108 | 109 | 110 | randomizeusr nop 111 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/k7.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | //--------------------------------------------------------------------------- 6 | USEFORM("MainForm.cpp", Form1); 7 | //--------------------------------------------------------------------------- 8 | WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 9 | { 10 | try 11 | { 12 | Application->Initialize(); 13 | Application->CreateForm(__classid(TForm1), &Form1); 14 | Application->Run(); 15 | } 16 | catch (Exception &exception) 17 | { 18 | Application->ShowException(&exception); 19 | } 20 | catch (...) 21 | { 22 | try 23 | { 24 | throw Exception(""); 25 | } 26 | catch (Exception &exception) 27 | { 28 | Application->ShowException(&exception); 29 | } 30 | } 31 | return 0; 32 | } 33 | //--------------------------------------------------------------------------- 34 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/k7zx.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | //--------------------------------------------------------------------------- 6 | USEFORM("about.cpp", AboutBox); 7 | USEFORM("SettingdForm.cpp", SettingsFrm); 8 | USEFORM("PlayerForm.cpp", PlayerFrm); 9 | USEFORM("DirForm.cpp", DirFrm); 10 | USEFORM("ProressForm.cpp", ProgresoFrm); 11 | //--------------------------------------------------------------------------- 12 | WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 13 | { 14 | try 15 | { 16 | Application->Initialize(); 17 | Application->Title = "k7zx"; 18 | Application->CreateForm(__classid(TPlayerFrm), &PlayerFrm); 19 | Application->CreateForm(__classid(TSettingsFrm), &SettingsFrm); 20 | Application->CreateForm(__classid(TAboutBox), &AboutBox); 21 | Application->CreateForm(__classid(TDirFrm), &DirFrm); 22 | Application->CreateForm(__classid(TProgresoFrm), &ProgresoFrm); 23 | Application->Run(); 24 | } 25 | catch (Exception &exception) 26 | { 27 | Application->ShowException(&exception); 28 | } 29 | catch (...) 30 | { 31 | try 32 | { 33 | throw Exception(""); 34 | } 35 | catch (Exception &exception) 36 | { 37 | Application->ShowException(&exception); 38 | } 39 | } 40 | return 0; 41 | 42 | } 43 | //--------------------------------------------------------------------------- 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/k7zx.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/k7zx.res -------------------------------------------------------------------------------- /source_k7zx_ 4.3/rutinas.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef rutinasH 4 | #define rutinasH 5 | 6 | 7 | 8 | #define _MAX_ADDRESS_ 0xff3c //65340 9 | 10 | /* 11 | #define LD_B_B 0x40 12 | #define LD_A_N 0x3e 13 | #define LD_A_BC 0x0a 14 | #define RET_Z 0xc8 15 | #define INC_DE 0x13 16 | #define DEC_DE 0x1b 17 | #define CP_HL 0xBE 18 | #define PUSH_HL 0xe5 19 | #define POP_HL 0xe1 20 | */ 21 | #define INC_HL_ 0x34 22 | #define DEC_HL_ 0x35 23 | #define EX_SP_HL 0xe3 24 | 25 | 26 | #define DIR_SISTEM_VARS 23552 27 | 28 | 29 | #define NEWPPC 23618 30 | #define NSPPC 23620 31 | #define PPC 23621 32 | #define SUBPPC 23623 33 | #define VARS 23627 34 | #define PROG 23635 35 | 36 | 37 | 38 | 39 | // #define N_BASIC 22 40 | 41 | #define _POS_K0_ (rutina[1]+1) 42 | #define _POS_K1_ (rutina[2]+1) 43 | 44 | 45 | #define _ROM_MIN_ 0 46 | #define _FSK_R_ 1 47 | #define _FI_MIN_ 2 48 | #define _FiQFAST_ 3 49 | #define _ESCSLOW_ 4 50 | #define _RAUDO48000_ 5 51 | #define _ULTRA_R_ 6 52 | #define _NPU_R_ 7 53 | 54 | extern unsigned char * codes_ [] ; 55 | extern unsigned char * codes_extra[] ; 56 | 57 | 58 | extern unsigned char lprint_code[]; 59 | extern unsigned char deco_snap [] ; 60 | 61 | 62 | 63 | extern unsigned char multi_milks [] ; 64 | extern unsigned char multi_slow [] ; 65 | extern unsigned char multi_machester []; 66 | 67 | extern unsigned char load_snap_blocks[]; 68 | extern unsigned char load_snap_blocks_milks[]; 69 | extern unsigned char load_snap_blocks_manchester[]; 70 | 71 | extern unsigned char SISTEM_VARS [] ; 72 | 73 | extern unsigned char BAS [] ; 74 | 75 | extern unsigned char multi_128 []; 76 | 77 | //--------------------------------------------------------------------------- 78 | #endif 79 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/textos.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef textosH 4 | #define textosH 5 | //--------------------------------------------------------------------------- 6 | 7 | 8 | extern const char * explicacion []; 9 | extern const char * e_conversion []; 10 | #endif 11 | -------------------------------------------------------------------------------- /source_k7zx_ 4.3/versiones.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sweetlilmre/otla/f45cdf4f52ae76caadb1255ec0703c40606c64cb/source_k7zx_ 4.3/versiones.txt -------------------------------------------------------------------------------- /source_k7zx_ 4.3/zxwav.h: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #ifndef zxwavH 4 | #define zxwavH 5 | 6 | #define _NORMAL_ 0 7 | #define _NONTROPO_ 1 8 | #define _ESCALOFRIO_ 2 9 | 10 | 11 | #define _79_ 79.36508 12 | 13 | #define _ROM_ 0 14 | #define _MILKS_ 1 15 | 16 | #define _FSK_ 2 17 | #define _SHAVINGS_SLOW_ 3 18 | #define _SHAVINGS_DELTA_ 4 19 | #define _SHAVINGS_RAUDO_ 5 20 | 21 | #define _ULTRA_ 6 22 | #define _NPU_ 7 23 | 24 | #define _FI_ 8 25 | //#define _PWM_ 9 26 | #define _FI_Q_ 9 27 | 28 | #define _MANCHESTER_ 10 29 | #define _MANCHESTER_DIF_ 11 30 | 31 | #define _ESCURRIDO_ 12 32 | 33 | #define _ANDANTE_ 13 34 | #define _AGITATTO_ 14 35 | #define _VIVACE_ 15 36 | #define _PRESTO_ 16 37 | #define _MAESTOSO_ 17 38 | #define _SCHERZANDO_ 18 39 | 40 | 41 | 42 | #define _8_00 32 43 | #define _7_00 28 44 | #define _6_00 24 45 | #define _5_00 20 46 | #define _4_00 16 47 | #define _3_50 14 48 | #define _3_00 12 49 | #define _2_75 11 50 | #define _2_50 10 51 | #define _2_25 9 52 | #define _2_00 8 53 | #define _1_75 7 54 | #define _1_50 6 55 | #define _1_25 5 56 | 57 | #define _1_33 4 58 | 59 | 60 | #define _CUADRADA_ 0 61 | #define _RAMPA_ 1 62 | #define _CUBICA_ 2 63 | #define _0_CONTINUA_ 3 64 | #define _IGUAL_E_ 4 65 | #define _PARABOLA_ 5 66 | #define _DELTA_ 6 67 | 68 | 69 | 70 | typedef struct { 71 | unsigned int ChunkID; 72 | unsigned int ChunkSize; 73 | unsigned int Format; 74 | unsigned int fmtChunkID; 75 | unsigned int fmtChunkSize; 76 | unsigned short AudioFormat; 77 | unsigned short NumChannels; 78 | unsigned int SampleRate; 79 | unsigned int ByteRate; 80 | unsigned short BlockAlign; 81 | unsigned short BitsPerSample; 82 | unsigned int dataChunkID; 83 | unsigned int dataChunkSize; 84 | } WavHdr; 85 | 86 | #pragma pack(push, 1) 87 | 88 | typedef struct { 89 | unsigned short l; 90 | unsigned short r; 91 | } st_stereo; 92 | 93 | typedef struct { 94 | char zxt[6];//="ZXTape!" 95 | char eof;//=0x1a 96 | char M; //=1 97 | char n;//=5 98 | char id; //=15 99 | unsigned short _79;//=79 100 | unsigned short ms; //=50 101 | char b;//=0 102 | unsigned short L1; 103 | unsigned char L2; 104 | char data[1]; 105 | }st_Tzx15Hdr ; 106 | 107 | 108 | 109 | #pragma pack(pop) 110 | 111 | 112 | 113 | extern char emular; 114 | 115 | extern int FqMuestreo; 116 | 117 | extern int signo; 118 | extern char CD; 119 | extern char forma_onda; 120 | extern char tono_final; 121 | extern char max_vol; 122 | extern char acelerar_basic; 123 | 124 | extern int inv_r; 125 | extern int divisor; 126 | extern int multipicador; 127 | 128 | extern float duracion; 129 | extern float duracion_loader; 130 | 131 | 132 | extern char metodo; 133 | extern char muestras_por_bit; 134 | 135 | 136 | 137 | 138 | extern char p [5]; 139 | 140 | int preprocesa (const char * file ); 141 | int convierte (); 142 | 143 | 144 | int abreWav (const char * file_out); 145 | int cierraWav (); 146 | 147 | 148 | void LoaderBlock (char *churro, unsigned longitud); 149 | 150 | 151 | escalofridoWav (char * t , unsigned short inicio , unsigned short longitud ); 152 | 153 | 154 | #define _t_P1_ 8 155 | #define _t_P2_ 8 156 | #define _t_S1_ 4 157 | #define _t_S2_ 2 158 | 159 | pilot_digital (int n); 160 | 161 | 162 | 163 | puretone (double Ppilot, int n); 164 | sync (double Psync1, double Psync2); 165 | secuence( unsigned short *s ,int n); 166 | //puredata(double Pcero, double Puno, char *d,int n); 167 | puredata(double Pcero, double Puno, char *d,int n, int l_b); 168 | pausa ( double P , int n ); 169 | 170 | directrecording (unsigned short,unsigned char *data, int n); 171 | 172 | //--------------------------------------------------------------------------- 173 | 174 | #endif 175 | -------------------------------------------------------------------------------- /wiki/AdaptacionZx81.wiki: -------------------------------------------------------------------------------- 1 | #summary Hi-speed loading for zx81 2 | = Introduction = 3 | 4 | El zx81 tiene dos serias limitaciones para usar las cargas de alta velocidad. 5 | 6 | -Su escasa memoria RAM. 7 | -Valocidad de carga stadard muy lenta. (300 bps) 8 | 9 | 10 | = Details = 11 | 12 | La rutina de carga OTLA ocupa del orden de 150 bytes. 13 | 14 | Para el zx81 se utilizará otra rutina de carga rápida más simple pero que se pueda ubicar en los 32 bytes del buffer de impresora de zx81, PRBUFF=16444 (única zona de memoria donde parece viable) 15 | 16 | Esta rutina tiene estas limitaciones. 17 | 18 | Es más lenta (codifica símbolos de un sólo bit , en lugar de dos). Aun así se conseguirá velocidades notables desde 7350 bps a 16200 bps. 19 | No tiene control de checksum para detectar errores de carga. 20 | Solo carga un bloque de bytes. 21 | 22 | Código de la rutina de carga 23 | {{{ 24 | org 16444 25 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 26 | ; inizialiting 27 | 28 | di 29 | out ($fd),a ; disable NMI 30 | ld hl, 16514 ; HL= start address for receiving 31 | ld bc, $00fe ; B= received byte ; C= cassette port 32 | ld de, $f6ef ; D= value for detecting 0 or 1; E= value for end of transimsion 33 | ; (values depend on desidered speed transmissión) 34 | 35 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 36 | ; detecting start of transmisión 37 | 38 | pii inc b 39 | call cicle 40 | djnz pii 41 | 42 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 43 | ;receiving bytes 44 | 45 | full ld (hl),b 46 | inc hl 47 | enter ld b, c 48 | more call cicle 49 | jr nC, full 50 | out ($ff),a 51 | cp e 52 | jr nc, more 53 | 54 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 55 | ;ending 56 | ; enable NMI 57 | rst 8 58 | defb $ff 59 | 60 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 61 | ;Waiting for a raising edge and measuring the length 62 | ;of the positive pulse using register A 63 | ;Saving received bit in bit0 of register B 64 | 65 | cicle 66 | pi_LOW in f,(c) 67 | jp po, pi_LOW 68 | ld a,c 69 | pi_HIGH dec a 70 | in f,(c) 71 | jp pe, pi_HIGH 72 | cp d 73 | rl b 74 | ret 75 | }}} 76 | 77 | Table for available speeds 78 | 79 | || samples / bit || bps (f = 44.1 kHz) || bps (f = 48 kHz) || 80 | || 6 || 7.350 || 8.000 || 81 | || 5 || 8.820 || 9.600|| 82 | || 4 || 11.025 || 12.000 || 83 | || 3 || 14.700 || 16.200 || -------------------------------------------------------------------------------- /wiki/ComoCargar.wiki: -------------------------------------------------------------------------------- 1 | #summary Commands on 8bits machine for load 2 | 3 | = Load in practice = 4 | 5 | 6 | Load in practice is very simple 7 | Only requires a suitable cable and type the correct order in the computer 8bits 8 | 9 | *For ZX Spectrum and ZX81* 10 | 11 | typing `LOAD ""` + enter 12 | 13 | 14 | *For MSX* 15 | 16 | typing `BLOAD "CAS:", R` + enter 17 | 18 | 19 | *FOR Amstrad CPC* 20 | 21 | typing 22 | 23 | teclear `|TAPE` + enter (without a diskette (464)) 24 | 25 | typing `RUN"` + enter 26 | 27 | ---- 28 | _comandos de carga en la maquina d e8 bits_ 29 | 30 | = Cargar en la práctica = 31 | 32 | Cargar en la práctica es muy sencillo 33 | Tan sólo hace falta un cable adecuado y teclear la orden correcta en el computadora 8bits 34 | 35 | *Para ZX Spectrum y zx81* 36 | 37 | teclear `LOAD""` + enter 38 | 39 | 40 | *Para MSX* 41 | 42 | teclear `BLOAD"CAS:",R` + enter 43 | 44 | 45 | *PARA CPC Amstrad* 46 | 47 | teclear `|TAPE` + enter (para modelo sin disketera para 464 no hace falta) 48 | 49 | teclear `RUN"`+ enter -------------------------------------------------------------------------------- /wiki/ComoFunciona.wiki: -------------------------------------------------------------------------------- 1 | #summary How does it work? 2 | 3 | = Explanation of the loading routine = 4 | 5 | Routine has two parts. 6 | First one detects pilot guide tone and the polarity of the wave that came from Cassette port. Depending on polarity the second part is adjusted (mutant code). Note that this routine in ROM will only work for one polarity, not the reverse one. In RAM works perfectly 7 | 8 | Second one receives data while there are cycles in the wave that are valid to be decoded. 9 | Note that there is not any check of total amount of received bytes, so an overflow is a possibility 10 | 11 | [http://personal.auna.com/casariche/otla/pilot.png] 12 | 13 | 14 | 15 | [http://personal.auna.com/casariche/otla/data.png] -------------------------------------------------------------------------------- /wiki/CuestionCompresion.wiki: -------------------------------------------------------------------------------- 1 | #summary La cuestión de la compresión 2 | 3 | =La cuestión de la compresión= 4 | 5 | 6 | ¿Cual sería el ahorro de tiempo cargado un fichero comprimido? 7 | 8 | 9 | ==Teoría== 10 | 11 | 12 | El tiempo de carga a gran velocidad es la suma de los siguientes tiempos. 13 | 14 | Tiempo de carga del cargador rápido a la velocidad de ROM . Es un programa BASIC con un linea REM con el código del cargador.Tiene un tamaño del orden de 200 bytes (el tamaño de cada método de carga varía)y su tiempo de carga es aprox. 6 segundos según las temporizaciones defininas en la rutina de carga de la ROM. Con la opción de acortar esas temporizaciones (Accelerate BASIC loader) se acortan el tono guia y la duración de ceros y unos. Así el tiempo se reduce a aprox. 4 segundos 15 | 16 | Tiempo de carga de los datos a velocidad rápida . Si pensamos en Snapshot de 48k tenemos 49152*8 = 393216 bits para trasmitir a una velocidad de 19.600 resultaría: 20 segundos.En la realidad ese tiempo siempre suele ser menor ya que los snapshot no son secuencias puras aleatorias de ceros y unos. Predominan los ceros sobre los unos. Como trasmitir un cero lleva menos tiempo podemos decir que hay una compresión implícita (Ci). (Esto no se aplica métodos de carga que utiliazan el mismo tiempo para trasmitir un cero que para trasmitir un uno ( Manchester, Fi )) 17 | 18 | En el caso de trasmisión del mismo snapshot pero comprimido el tiempo carga del cargador será el mismo. El numero de bits para trasmitir será en este caso menor, según la relación de compresión conseguida. Pero en un fichero comprimido el numero de unos y ceros tiende a ser igual por lo que la compresión implícita en la trasmisión no se aprovecha. Además de los datos hay que trasmitir la rutina descompresora. Tiempo perfectamente despreciable ya que se va a cargar a gran velocidad o si se quiere se puede incluir corrigiendo la relación de compresión final sumando al tamaño del fihero comrpimido el tamaño de la rutina.Y por último queda el tiempo de descompresión. Que se puede despreciar si el objetivo es el tamaño final del fichero wav. Pero se debe tener en cuenta para medir el tiempo total o si se se van a cargar varios bloques comprimidos (para snapshots de 128k) no se podrá empezar a cargar el segundo bloque hasta que no se haya descomprimido el primero. 19 | 20 | == Haciendo números.== 21 | 22 | Ejemplo: snapshot del Manic Miner comprimido con un algoritmo RLE queda en 26627. 23 | Lo que significa una relación de compresion 26627/49152=54% considerable 24 | 25 | Tc = Tiempo del cargador 26 | Ci = compresion implicita en la tramision de un fichteo sin comprimir 27 | Rc = ratio de comresion 28 | Td = tiempo de descompresion 29 | 30 | Veamos los timempos de carga del snapshot del Manic Miner en los diferentes casos (comrpimido y sin comprimir) y a diferentes velocidades. Se supone un tiempo de descompresión de 1 segundo. 31 | 32 | ===19600 bps (2459 bytes/seguundo)=== 33 | 34 | carga normal: Tc + Ci*49152/2459 = 4.2 + 15.8 = 20 segundos 35 | 36 | carga comprimido : Tc + Rc*49152/2459 + Td = 4.2 + 10.3 +1 = 15.5 segundos 37 | 38 | el tiempo final queda en el : 15,5/20 = 77.5% 39 | 40 | 41 | ===25200 bps (3150 bytes/segundo)=== 42 | 43 | carga normal: Tc + Ci*49152/3150 = 4.2 + 11.4 = 15.2 segundos 44 | 45 | carga comprimido : Tc + Rc*49152/3150 + Td = 4.2 + 7.8 +1= 13 segundos 46 | 47 | el tiempo final queda en el : 13/15.2 = 85.5% 48 | 49 | Conclusión primera: Todo lo que se gane comprimimiendo no se va a ganar proporcianalmente en el tiempo final de carga y la mejora en la compresión se notará menos cuanto mayor se la velocidad de carga 50 | 51 | De la reducción de 46% del fichero comprimido se cosigue reducir el timepo un 22.5% a 19600 bps y solo 14.5% a 25200 bps. No parece que mejorar sistema de compresión se vea recompensado con unas mejoras de tiempo significativas. 52 | 53 | Claro que el sanpshot del Manic Miner puede adaptarse muy favorablemente a la compresion RLE y no ser muy representativo. -------------------------------------------------------------------------------- /wiki/HistoriaVersiones.wiki: -------------------------------------------------------------------------------- 1 | #summary historial de versiones 2 | 3 | = Historia versiones = 4 | 5 | 6 | 7 | 1.0 8 | 9 | primera version: velocidad 12.600 bps (3,5 samples/bit - 44100 Hz) 10 | 11 | 1.1 12 | 13 | . 14 | 15 | 1.2 16 | velocidad más lenta. 17 | Opcion para reubicar la rutina de carga 18 | Cambio en el tono guia y pulso de sincronismo (frecuancias un poco más bajas) 19 | 20 | 1.3 21 | mejora del interface de usuario 22 | Publicacion en Google Proyect 23 | 24 | 25 | 2.0 26 | Mejoras para la edicion de ficheros .sbb 27 | convierte ficheros .cas de MSX 28 | convierte ficheros .cdt para CPC 29 | convierte snapshots de 128k de ZX 30 | convierte programas BASIC para ZX 31 | convierte pantallas .SCR para ZX 32 | 33 | 34 | 2.1 35 | 36 | Corrige bug al reubicar rutina de carga 37 | Redefine formato .SBB. Se incluye información de reubicación de la rutina de carga y modelo de maquina. 38 | Reproductor de wav con control de volumen y seleccion de tarjeta de sonido 39 | Mejora en la detección de polaridad de la onda en la rutina de carga para ZX dependiendo de la frecuencia de muestreo 40 | 41 | 2.2 42 | Adaptación para zx81 43 | Un solo ejecutable 44 | la opción de habilitar/deshabilitar interrupcion va en la cabecera del fichero sbb 45 | proceso por lotes para convertir ficheros automáticamente 46 | herramienta de ajuste del audio 47 | se aumenta un pelín el volumen en el wav -------------------------------------------------------------------------------- /wiki/K7Zx.wiki: -------------------------------------------------------------------------------- 1 | #summary k7zx , wav tool for spectrum 2 | 3 | = Introduction = 4 | 5 | K7zx converts .tap .tzx .z80 files to wav. From normal speed up to verý high speed ( theorically 38,400 bps) 6 | New version 4.3 of k7zx can convert sbb files (created with OtlaBuilder) to wav files 7 | 8 | 9 | = Details = 10 | 11 | OtlaPlayer converts .sbb to .wav using one of the many encoding techniques avalable in spectrum tool k7zx. (Shavings Slow which offers best ratio speed/reliability). 12 | 13 | Spectrum users although may preffer other techniques for shorter loading times. 14 | 15 | [http://personal.auna.com/casariche/k7zx4/cuadro.gif] -------------------------------------------------------------------------------- /wiki/LoadingLinks.wiki: -------------------------------------------------------------------------------- 1 | #summary Interesting links 2 | 3 | = Interesting Liks = 4 | 5 | Links to information about loading 6 | 7 | 8 | Teoría de la carga de datos desde cassette (para Amstrad CPC pero se aplica a otros sistemas) 9 | http://www.cpcwiki.com/index.php/Cassette_data_information 10 | 11 | Diferentes esquemas de carga desarrollados para el Spectrum 12 | http://newton.sunderland.ac.uk/~specfreak/Schemes/schemes.html 13 | 14 | Hypraloader y z802tzx, herramientas pioneras de la alta velocidad 15 | ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/HypraLoader.zip 16 | ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/Z802TZXv12.zip 17 | 18 | Manual de antiguas ultracargas y wav listos para descargar 19 | http://www.speccy.org/spectrumhoy/Juegos.htm 20 | 21 | sna2wav el precursor de k7zx 22 | http://www.speccy.org/cajon/sna2wav.html 23 | 24 | Todavía más velocidad de carga utilizando el puerto de joystick 25 | http://www.zxprojects.com/index.php/external-ultra-high-loader-for-the-zx-spectrum 26 | 27 | Microwaver, cargas rápidas para msx 28 | http://cax.narod.ru/msx/packed/index.html 29 | 30 | Una red para msx por el puerto de joystick 31 | http://msxlink.chat.ru/ 32 | 33 | tap2cd: Cargas rápidas para el Oric (1999) 34 | http://oric.ifrance.com/emulateur.html 35 | 36 | Video de un cargador musical para zx Spectrum 37 | http://www.youtube.com/watch?v=rByIgi65xZk&feature=related -------------------------------------------------------------------------------- /wiki/OtlaBuilder.wiki: -------------------------------------------------------------------------------- 1 | #summary Otlabuilder is the module that creates sbb files 2 | 3 | = otlaBuilder = 4 | 5 | 6 | The programs that once were stored on cassette tapes, discs 3'' or ROM cartridges can be found today in files that can be downloaded from the Internet. 7 | 8 | To load these files into a real ZX81 , Spectrum , CPC, MSX with OtlaPlayer first it is necesary to convert them into a standard format (SbbFormat) 9 | 10 | *Loading Name* 11 | This is the string that appears on screen when loading starts. Its maximum length depends on machine type (10 for Spectrum, 16 for CPC, 6 for MSX). It can be used also with the load command (LOAD "name" instead of LAOD"") 12 | 13 | * Enable interruptions between blocs .* 14 | Before starting the loading of a block disable interrupts. After recieving a block interrupts are enabled again.. The latter can be avoided. When loading snapshots interrupsts must be disabled. 15 | 16 | * Relocate .* 17 | The hi-speed loading routine is located in different places for each machine. 18 | Default locations 19 | * ZXSpectrum $FF58 (GDU area) 20 | * CPC $FF10 (final part of the screen) 21 | * MSX $F430 (keyboard buffer) 22 | * ZX81 16444 (keyboard buffer) 23 | For CPC and MSX can be given alternative locations giving another value to more significant byte 24 | 25 | 26 | ---- 27 | _Módulo para construir ficheros sbb_ 28 | 29 | = otlaBuilder = 30 | 31 | 32 | Los progrmas que en su día se almacenaban en cintas de cassette, discos de 3" o cartuchos ROMse puden encontrar hoy en día en ficheros que se pueden descargar de internet. 33 | 34 | Para cargar estos ficheros en un ZX81 , Spectrum, CPC, MSX real con OtlaPlayer primero hay que convertirlos a un formato normalizado (SbbFormat) 35 | 36 | 37 | *Nombre de carga* 38 | Es la cadena que aparecerá en la pantalla cuando empiece la carga 39 | 40 | *Habilitar las interrupciones entre bloques.* 41 | Antes de empezar la carga de un bloque se deshabilitan las interrupciones. Cuando acaba la carga del bloque se vuelven a habilitar. Esto ultimo se puede evitar. 42 | 43 | 44 | *Reubicar.* 45 | La rutina de carga se ubica en lugares diferentes para cada maquina. 46 | ubicaciones por defecto 47 | * ZXSpectrum $FF58 (zona de GDU) 48 | * CPC $FF10 (parte final de pantalla) 49 | * MSX $F430 (buffer del teclado) 50 | * ZX81 16444 (buffer de impresora) 51 | Para CPC y MSX se pueden dar ubicaciones alternativas dando otro valor al byte más significativo -------------------------------------------------------------------------------- /wiki/ProyectoOtla.wiki: -------------------------------------------------------------------------------- 1 | #summary Introduction 2 | 3 | = O.T.L.A. Project = 4 | 5 | Vintage 8 bit machines (ZX *81* , *ZX* Spectrum , *CPC* Amstrad , *MSX*) used to load programs with cassette audiotapes. Data was encoded and decoded with an audio signal. 6 | 7 | Those days normal loading speed was about 1000 - 2000 bps. 8 | 9 | Proyecto O.T.L.A. will make loadings at 12000 bps or even faster using digital audio devices (cd and mp3 players , pc sound cards ...). Which means that loading a game will take less than one minute, normally about 30 seconds. 10 | 11 | Project consists on two parts: OtlaPlayer and OtlaBuilder 12 | 13 | How does it work ? ComoFunciona 14 | 15 | [http://personal.auna.com/casariche/otla/formatos.png] 16 | 17 | ---- 18 | 19 | = Proyecto O.T.L.A. = 20 | 21 | EL proyecto OTLA ofrece una alternativa a la obsoleta cinta de cassette para cargar programas en las viejas computadoras de los años 80 basadas en el microporecsador Z80 (ZX *81* , *ZX* Spectrum , *CPC* Amstrad y *MSX*) utilizando modernos reproductores de audio digitales. 22 | 23 | Para la carga de programas se procede como normalmente (load"",etc) pero en lugar de conectar un reproductor de cassette a la vieja computadora se conecta un reproductor de CD, MP3, la tarjeta de sonido de un PC, etc. No se necesita de ningún dispositivo adicional y la carga será considerable más rápida que las cargas con cassette de la época. 24 | 25 | El software consta de dos partes: OtlaPlayer y OtlaBuilder 26 | 27 | ComoFunciona -------------------------------------------------------------------------------- /wiki/SbbFormat.wiki: -------------------------------------------------------------------------------- 1 | #summary .sbb format definition 2 | 3 | = SBB file format = 4 | 5 | SBB (Stream of Binary Blocks) 6 | 7 | A SBB file has one header and blocks of data to be loaded 8 | 9 | ==Header Format== 10 | 11 | ||position||field name|| type||comment|| 12 | ||0..2 ||sbb_version|| char(3)||always "SB" + version number (2.1=0x21)|| 13 | ||3..6 ||machine|| char(4)||ZX , CPC , MSX, 81|| 14 | ||7 ||model|| char ||model 48k, +2A. 464 ...|| 15 | ||8..14 ||extre_info|| char(7)||Ready For Future Uses|| 16 | ||15 ||ei_di|| char||Enable disable interrupts between blocks|| 17 | ||16..31 || name|| char(16)||name|| 18 | ||32 || locate|| char||Most Significative Byte for the address of loading rutine|| 19 | ||33 || origin|| char|| sbb was built from tap, bin , sna ...|| 20 | ||34 || n_blocks|| char||number of blocks || 21 | ||35 || poke_ffff|| char||msx pagination (if 0, Poke -1 is not modified)|| 22 | ||36..37|| clear || ushort || clear or SP (if 0, SP is not modified) || 23 | ||38..39|| n_usr|| ushort || execution address after loading all bloacks(if 0, it is not an executable ) || 24 | 25 | 26 | ==Block format== 27 | 28 | One of this for each block 29 | 30 | ||position||field name|| type||comment|| 31 | ||0..15||blockname|| char (16) || description|| 32 | ||16..17||size|| ushort ||number of bytes for data || 33 | ||18..19||param3|| ushort || aux parammter || 34 | ||20||block_type|| char|| type|| 35 | ||21||h_chksum|| char|| checksum for header of block =((ini-1) XOR jump XOR exec) || 36 | ||22..23||ini|| ushort || start memory address for data || 37 | ||24||jump|| char|| 0xC3 or 0xCD for an executable block , 0x01 or oxc9 in other case|| 38 | ||25..26||exec|| ushort || execution address for block. If zero, it is not an executable block|| 39 | ||27||d_chksum|| char || checksum for data || 40 | ||28..28+size-1||data || char (size) || memory block || 41 | 42 | 43 | 44 | 45 | . -------------------------------------------------------------------------------- /wiki/WavForms.wiki: -------------------------------------------------------------------------------- 1 | #summary Different waveforms for loads at high speed 2 | 3 | =Wave Forms = 4 | 5 | OtlaPlayer can generate different waveforms. 6 | 7 | Cubic waveform cube is defualt. When you want to experiment with higher speeds it is possible that another form of wave can function better 8 | 9 | * Square * 10 | 11 | It is the natural way to represent the transmission of data by a audio-line as home computers did in the 80's. Many tools work only with this waveform. 12 | But in a real transmission ther is not such ideal square wave. 13 | And especially when you want to convert the sound to an MP3 format the square wave gives dismal results. 14 | 15 | (Note: some emulators only work well with the square waveform (for instance WinApe for Amstrad CPC)) 16 | 17 | * Cubic * 18 | 19 | It was generated using a 3 order polynomial : x(x + P)(x - P) where 1/(2P) is the frequency 20 | 21 | * Square Root Sine* 22 | 23 | Similar to the previous one but it offers more outstanding in the falling and rising edges. This waveform is used to generate the part of the normal load. 24 | 25 | * Saw tooth * 26 | 27 | Better falling edge and smooth rising edge 28 | 29 | * Equal energy pulse * 30 | 31 | The square pulses of high frequencies are transmitted with different amplitude dependig on their frequency. So electrical energy quantum is constant for each pulse. 32 | Theorical intuition that actually works. 33 | 34 | *Delta * 35 | 36 | Purely experimental 37 | 38 | ---- 39 | _Distintas formas de onda para cargas a alta velocidad_ 40 | 41 | = Formas de onda= 42 | 43 | ProyectoOtla puede generar distintas formas de onda. 44 | 45 | Lo normal será utilizar la forma de onda cúbica. 46 | 47 | Cuando se quiere experimentar con velocidades más altas es posible que otra forma de onda funcione mejor 48 | 49 | *Cuadrada* 50 | 51 | Es la forma natural para representar la trasmisión de datos por una linea de audio tal y como lo hacían los computadores domésticos de los años 80. Muchas herramientas trabajan únicamente con esta forma de onda. 52 | Pero a la hora de una trasmision real, no ideal, la onda que "oye" el computador nunca será cuadrada. 53 | Y sobre todo cuando se quiere convertir el sonido a un formato MP3 la onda cuadrada da pésimos resultados. 54 | 55 | (Nota: algunos emuladores solo trabajan bien con la forma de onda cuadrada) 56 | 57 | *Cubica* 58 | 59 | Se construye con un polinomio de orden 3: x(x+P)(x-P) donde 1/(2*P) es la frecquncia 60 | 61 | *Raiz cuadrada del seno* 62 | 63 | Parecida a la anterior ofrece mayor pendiente en los flancos de subida y bajada. Esta forma de onda es la que se utiliza para generar la parte de carga normal. 64 | 65 | *Diente de sierra* 66 | 67 | Mayor pendiente posible del flanco de bajada y constante en el flanco de subida. 68 | 69 | *Pulsos de igual energia* 70 | 71 | Las ciclos de altas frecuencias se transmiten con mayor amplitud de los de baja de tal forma qua energia de los pulsos es constante. 72 | Intuición teórica que realmente funciona. (Sobre todo en otro tipo de trasmisiones como Manchester) 73 | 74 | *Delta* 75 | 76 | Puramente experimental --------------------------------------------------------------------------------