From 4acaf558776284b9b316bab2735e736d5ae65f60 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sun, 15 Jun 2025 02:17:12 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B8=D0=BC=D1=8F=20=D0=B4=D0=B8=D1=81=D0=BA=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20SCL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- macroses/accelerator | 71 -------------------------------------- macroses/accelerator.a80 | 71 -------------------------------------- macroses/macros | 73 ---------------------------------------- macroses/macros.a80 | 73 ---------------------------------------- spectrum.asm | 15 ++++++--- trdscl.a80 | 9 ++--- 7 files changed, 15 insertions(+), 299 deletions(-) delete mode 100644 macroses/accelerator delete mode 100644 macroses/accelerator.a80 delete mode 100644 macroses/macros delete mode 100644 macroses/macros.a80 diff --git a/Shared_Includes b/Shared_Includes index 68e156a..a0e68ce 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 68e156a69e848e7b01656cdf67122022999d75ee +Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1 diff --git a/macroses/accelerator b/macroses/accelerator deleted file mode 100644 index f8171a6..0000000 --- a/macroses/accelerator +++ /dev/null @@ -1,71 +0,0 @@ -; Макросы акселератора для красоты)) - -;--------[выключить акселератор]-------- - MACRO ACC_Off - ld b,b - ENDM -;--------------------------------------- - -;---------[режим приема байта]---------- - MACRO ACC_SetBlockSize - ld d,d -; включает акселератор в режим приема -; байта размера блока далее следует -; команда типа LD A,dat, где dat и будет -; новым размером блока. Если размер -; блока был установлен ранее, его можно -; не устанавливать. - ENDM -;--------------------------------------- - -;-------[заполнение одним байтом]------- - MACRO ACC_FillOneByte - ld c,c -; Операция Fill. Последующая команда -; типа LD (HL),A приведет к заполнению -; указанного ранее количества байт -; значением A - ENDM -;--------------------------------------- - -;----[заполнение вертикальных линий]---- -;Операция Fill для графического экрана. - MACRO ACC_FillScreenOneByte - ld e,e -; Последующая команда типа LD (HL),A -; приведет к заполнению значением A -; вертикальных линий экрана указанным -; ранее количеством байт - ENDM -;--------------------------------------- - -;----------[копирование блока]---------- - MACRO ACC_CopyBlock - ld l,l -; Последующая команда типа LD A,(HL) -; приведет к заполнению ОЗУ акселератора -; данными из адреса (HL), а команда типа -; LD (DE),A приведет к перезаписи данных -; из ОЗУ акселератора в основное или -; видео-ОЗУ. - ENDM -;--------------------------------------- - -;---[копирование графического блока]---- - MACRO ACC_CopyScreenBlock - ld a,a -; копирование блока для граф. экрана. -; Последующая команда типа LD A,(HL) -; приведет к заполнению ОЗУ акселератора -; данными из адреса (HL), а команда типа -; LD (DE),A приведет к перезаписи данных -; из ОЗУ акселератора в видео-ОЗУ -; вертикальными линиями. - ENDM -;--------------------------------------- - -;--------------[Reserved]--------------- - MACRO ACC_Reserved - LD H,H - ENDM -;--------------------------------------- \ No newline at end of file diff --git a/macroses/accelerator.a80 b/macroses/accelerator.a80 deleted file mode 100644 index f8171a6..0000000 --- a/macroses/accelerator.a80 +++ /dev/null @@ -1,71 +0,0 @@ -; Макросы акселератора для красоты)) - -;--------[выключить акселератор]-------- - MACRO ACC_Off - ld b,b - ENDM -;--------------------------------------- - -;---------[режим приема байта]---------- - MACRO ACC_SetBlockSize - ld d,d -; включает акселератор в режим приема -; байта размера блока далее следует -; команда типа LD A,dat, где dat и будет -; новым размером блока. Если размер -; блока был установлен ранее, его можно -; не устанавливать. - ENDM -;--------------------------------------- - -;-------[заполнение одним байтом]------- - MACRO ACC_FillOneByte - ld c,c -; Операция Fill. Последующая команда -; типа LD (HL),A приведет к заполнению -; указанного ранее количества байт -; значением A - ENDM -;--------------------------------------- - -;----[заполнение вертикальных линий]---- -;Операция Fill для графического экрана. - MACRO ACC_FillScreenOneByte - ld e,e -; Последующая команда типа LD (HL),A -; приведет к заполнению значением A -; вертикальных линий экрана указанным -; ранее количеством байт - ENDM -;--------------------------------------- - -;----------[копирование блока]---------- - MACRO ACC_CopyBlock - ld l,l -; Последующая команда типа LD A,(HL) -; приведет к заполнению ОЗУ акселератора -; данными из адреса (HL), а команда типа -; LD (DE),A приведет к перезаписи данных -; из ОЗУ акселератора в основное или -; видео-ОЗУ. - ENDM -;--------------------------------------- - -;---[копирование графического блока]---- - MACRO ACC_CopyScreenBlock - ld a,a -; копирование блока для граф. экрана. -; Последующая команда типа LD A,(HL) -; приведет к заполнению ОЗУ акселератора -; данными из адреса (HL), а команда типа -; LD (DE),A приведет к перезаписи данных -; из ОЗУ акселератора в видео-ОЗУ -; вертикальными линиями. - ENDM -;--------------------------------------- - -;--------------[Reserved]--------------- - MACRO ACC_Reserved - LD H,H - ENDM -;--------------------------------------- \ No newline at end of file diff --git a/macroses/macros b/macroses/macros deleted file mode 100644 index b8fc631..0000000 --- a/macroses/macros +++ /dev/null @@ -1,73 +0,0 @@ -; - MACRO FRAM_ON - IN A,(FastRAM_ON) - IF Emulator - PUSH BC - PUSH AF - LD BC,#1FFD - XOR A - OUT (C),A - OUT (FastRam_BANK0),A - POP AF - POP BC - ENDIF - ENDM - - MACRO FRAM_OFF - IN A,(FastRAM_OFF) - IF Emulator - PUSH BC - PUSH AF - LD BC,#1FFD - LD A,1 - OUT (C),A - XOR A - OUT (FastRam_BANK0),A - POP AF - POP BC - ENDIF - ENDM -; -; - MACRO PrintProc - - MODULE PrintF -;--------------------------------------- -printstr: -; в рег. HL адрес на печатаемый буфер - LD C,Dss.PChars - jp ToDSS -;--------------------------------------- - -;--------------------------------------- -; в рег. A число печатаемое как hex -printhex: - LD D,A - RRCA - RRCA - RRCA - RRCA - AND #0F - ADD A,#30 - CP #3A - JR C,.PRNH1 - ADD A,7 -.PRNH1: - CALL .PRINT_CHAR - LD A,D - AND #0F - ADD A,#30 - CP #3A - JP C,.PRINT_CHAR - ADD A,7 - JP .PRINT_CHAR -; в регистре A символ для печати -.PRINT_CHAR: - LD BC,#0182 - JP ToBIOS -;--------------------------------------- - ENDMODULE - - ENDM -; -; \ No newline at end of file diff --git a/macroses/macros.a80 b/macroses/macros.a80 deleted file mode 100644 index b8fc631..0000000 --- a/macroses/macros.a80 +++ /dev/null @@ -1,73 +0,0 @@ -; - MACRO FRAM_ON - IN A,(FastRAM_ON) - IF Emulator - PUSH BC - PUSH AF - LD BC,#1FFD - XOR A - OUT (C),A - OUT (FastRam_BANK0),A - POP AF - POP BC - ENDIF - ENDM - - MACRO FRAM_OFF - IN A,(FastRAM_OFF) - IF Emulator - PUSH BC - PUSH AF - LD BC,#1FFD - LD A,1 - OUT (C),A - XOR A - OUT (FastRam_BANK0),A - POP AF - POP BC - ENDIF - ENDM -; -; - MACRO PrintProc - - MODULE PrintF -;--------------------------------------- -printstr: -; в рег. HL адрес на печатаемый буфер - LD C,Dss.PChars - jp ToDSS -;--------------------------------------- - -;--------------------------------------- -; в рег. A число печатаемое как hex -printhex: - LD D,A - RRCA - RRCA - RRCA - RRCA - AND #0F - ADD A,#30 - CP #3A - JR C,.PRNH1 - ADD A,7 -.PRNH1: - CALL .PRINT_CHAR - LD A,D - AND #0F - ADD A,#30 - CP #3A - JP C,.PRINT_CHAR - ADD A,7 - JP .PRINT_CHAR -; в регистре A символ для печати -.PRINT_CHAR: - LD BC,#0182 - JP ToBIOS -;--------------------------------------- - ENDMODULE - - ENDM -; -; \ No newline at end of file diff --git a/spectrum.asm b/spectrum.asm index 939da65..58e00be 100644 --- a/spectrum.asm +++ b/spectrum.asm @@ -371,6 +371,7 @@ READ_IMAGE: LD DE,ONE_FILE CPDR INC HL LD (HL),0 + PUSH HL ; устанавливаем и инитим винт ; LD A,SYS_PORT.BIOS ; OUT (SYS_PORT.ROM),A @@ -381,6 +382,8 @@ READ_IMAGE: LD DE,ONE_FILE CALL BPB_SetUp ; запоминаем сектор директории CALL SET_IMAGE_DIR_SECTOR + POP HL + LD (HL),'\' ; ;;;;;;;;; ; .no_change_Disk:; @@ -799,7 +802,7 @@ RESET_TO_ZX: DI LD (SYS_PAGE.CURRENT_DIR_DRIVE),A LD (SYS_PAGE.CURRENT_DIR_DRIVE_COPY),A ;!TODO в BIOS? - LD BC,CBL.SYS_PORT + LD BC,SP_SND.CBL.SYS_PORT XOR A OUT (C),A ; CBL-off ; @@ -1593,15 +1596,19 @@ CNF_FILE: DB "SPECTRUM.CFG",0 ;USER_CURRENT_DIR EQU $ ;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256 ; +;---------------------------------------------------------------------[] ONE_FILE: WORD 0 .Size EQU 256 TMP_BUFF EQU ONE_FILE + ONE_FILE.Size .Size EQU 256 +SCL_Buffer EQU TMP_BUFF + TMP_BUFF.Size +.Size EQU #701 ; -PlaceForPalette EQU TMP_BUFF + TMP_BUFF.Size ;#A000 -PlaceForTXTscreen EQU PlaceForPalette + 1024*4 ;!HARDCODE - +PlaceForPalette EQU SCL_Buffer + SCL_Buffer.Size +.Size EQU 1024*4 +PlaceForTXTscreen EQU PlaceForPalette + PlaceForPalette.Size + ASSERT $<#A000,"Buffer out of mem bank 2" STACK_CHECK_MACRO stack_point,stack_buffer ; Code after Loader diff --git a/trdscl.a80 b/trdscl.a80 index f5a66aa..667fb12 100644 --- a/trdscl.a80 +++ b/trdscl.a80 @@ -320,9 +320,6 @@ SYS_SECTOR SEEK SYS_SECTOR_END: BLOCK 3,0 SCL_FILE_ID: DB 0 -;-----------[в самый конец]------------- -SCL_Buffer EQU $ - ASSERT SCL_Buffer+#701<#A000,"Buffer out of mem bank 2" - - - +; ;-----------[в самый конец]------------- +; SCL_Buffer EQU $ +; ASSERT SCL_Buffer+#701<#A000,"Buffer out of mem bank 2" \ No newline at end of file