diff --git a/SP__48.ASM b/SP__48.ASM index 76a53a8..76a08f5 100644 --- a/SP__48.ASM +++ b/SP__48.ASM @@ -346,155 +346,103 @@ L0090: SCF ; set the carry flag ; the word. The first is an inverted step-over byte. ;; TKN-TABLE -L0095: DC '?' - DC "RND" - DC "INKEY$" +L0095: + DC "?" + DC 'RND' + DC 'INKEY$' DC 'PI' DC 'FN' - DC "POINT" - DC "SCREEN$" - DC "ATTR" + DC 'POINT' + DC 'SCREEN$' + DC 'ATTR' DC 'AT' - DC "TAB" - DC "VAL$" - DC "CODE" - DC "VAL" - DC "LEN" - DC "SIN" - DC "COS" - DC "TAN" - DC "ASN" - DC "ACS" - DC "ATN" + DC 'TAB' + DC 'VAL$' + DC 'CODE' + DC 'VAL' + DC 'LEN' + DC 'SIN' + DC 'COS' + DC 'TAN' + DC 'ASN' + DC 'ACS' + DC 'ATN' DC 'LN' - DC "EXP" - DC "INT" - DC "SQR" - DC "SGN" - DC "ABS" - DC "PEEK" + DC 'EXP' + DC 'INT' + DC 'SQR' + DC 'SGN' + DC 'ABS' + DC 'PEEK' DC 'IN' - DC "USR" - DC "STR$" - DC "CHR$" - DC "NOT" - DC "BIN" + DC 'USR' + DC 'STR$' + DC 'CHR$' + DC 'NOT' + DC 'BIN' ; The previous 32 function-type words are printed without a leading space ; The following have a leading space if they begin with a letter - DEFB 'O','R'+$80 - DEFM "AN" - DEFB 'D'+$80 - DEFB $3C,'='+$80 ; <= - DEFB $3E,'='+$80 ; >= - DEFB $3C,$3E+$80 ; <> - DEFM "LIN" - DEFB 'E'+$80 - DEFM "THE" - DEFB 'N'+$80 - DEFB 'T','O'+$80 - DEFM "STE" - DEFB 'P'+$80 - DEFM "DEF F" - DEFB 'N'+$80 - DEFM "CA" - DEFB 'T'+$80 - DEFM "FORMA" - DEFB 'T'+$80 - DEFM "MOV" - DEFB 'E'+$80 - DEFM "ERAS" - DEFB 'E'+$80 - DEFM "OPEN " - DEFB '#'+$80 - DEFM "CLOSE " - DEFB '#'+$80 - DEFM "MERG" - DEFB 'E'+$80 - DEFM "VERIF" - DEFB 'Y'+$80 - DEFM "BEE" - DEFB 'P'+$80 - DEFM "CIRCL" - DEFB 'E'+$80 - DEFM "IN" - DEFB 'K'+$80 - DEFM "PAPE" - DEFB 'R'+$80 - DEFM "FLAS" - DEFB 'H'+$80 - DEFM "BRIGH" - DEFB 'T'+$80 - DEFM "INVERS" - DEFB 'E'+$80 - DEFM "OVE" - DEFB 'R'+$80 - DEFM "OU" - DEFB 'T'+$80 - DEFM "LPRIN" - DEFB 'T'+$80 - DEFM "LLIS" - DEFB 'T'+$80 - DEFM "STO" - DEFB 'P'+$80 - DEFM "REA" - DEFB 'D'+$80 - DEFM "DAT" - DEFB 'A'+$80 - DEFM "RESTOR" - DEFB 'E'+$80 - DEFM "NE" - DEFB 'W'+$80 - DEFM "BORDE" - DEFB 'R'+$80 - DEFM "CONTINU" - DEFB 'E'+$80 - DEFM "DI" - DEFB 'M'+$80 - DEFM "RE" - DEFB 'M'+$80 - DEFM "FO" - DEFB 'R'+$80 - DEFM "GO T" - DEFB 'O'+$80 - DEFM "GO SU" - DEFB 'B'+$80 - DEFM "INPU" - DEFB 'T'+$80 - DEFM "LOA" - DEFB 'D'+$80 - DEFM "LIS" - DEFB 'T'+$80 - DEFM "LE" - DEFB 'T'+$80 - DEFM "PAUS" - DEFB 'E'+$80 - DEFM "NEX" - DEFB 'T'+$80 - DEFM "POK" - DEFB 'E'+$80 - DEFM "PRIN" - DEFB 'T'+$80 - DEFM "PLO" - DEFB 'T'+$80 - DEFM "RU" - DEFB 'N'+$80 - DEFM "SAV" - DEFB 'E'+$80 - DEFM "RANDOMIZ" - DEFB 'E'+$80 - DEFB 'I','F'+$80 - DEFM "CL" - DEFB 'S'+$80 - DEFM "DRA" - DEFB 'W'+$80 - DEFM "CLEA" - DEFB 'R'+$80 - DEFM "RETUR" - DEFB 'N'+$80 - DEFM "COP" - DEFB 'Y'+$80 + DC "OR" + DC "AND" + DC "<=" + DC ">=" + DC "<>" + DC "LINE" + DC "THEN" + DC "TO" + DC "STEP" + DC "DEF FN" + DC "CAT" + DC "FORMAT" + DC "MOVE" + DC "ERASE" + DC "OPEN #" + DC "CLOSE #" + DC "MERGE" + DC "VERIFY" + DC "BEEP" + DC "CIRCLE" + DC "INK" + DC "PAPER" + DC "FLASH" + DC "BRIGHT" + DC "INVERSE" + DC "OVER" + DC "OUT" + DC "LPRINT" + DC "LLIST" + DC "STOP" + DC "READ" + DC "DATA" + DC "RESTORE" + DC "NEW" + DC "BORDER" + DC "CONTINUE" + DC "DIM" + DC "REM" + DC "FOR" + DC "GO TO" + DC "GO SUB" + DC "INPUT" + DC "LOAD" + DC "LIST" + DC "LET" + DC "PAUSE" + DC "NEXT" + DC "POKE" + DC "PRINT" + DC "PLOT" + DC "RUN" + DC "SAVE" + DC "RANDOMIZE" + DC "IF" + DC "CLS" + DC "DRAW" + DC "CLEAR" + DC "RETURN" + DC "COPY" ; ---------------- ; THE 'KEY' TABLES @@ -511,45 +459,45 @@ L0095: DC '?' ; the values obtained from this table. ;; MAIN-KEYS -L0205: DEFB $42 ; B - DEFB $48 ; H - DEFB $59 ; Y - DEFB $36 ; 6 - DEFB $35 ; 5 - DEFB $54 ; T - DEFB $47 ; G - DEFB $56 ; V - DEFB $4E ; N - DEFB $4A ; J - DEFB $55 ; U - DEFB $37 ; 7 - DEFB $34 ; 4 - DEFB $52 ; R - DEFB $46 ; F - DEFB $43 ; C - DEFB $4D ; M - DEFB $4B ; K - DEFB $49 ; I - DEFB $38 ; 8 - DEFB $33 ; 3 - DEFB $45 ; E - DEFB $44 ; D - DEFB $58 ; X +L0205: DEFB "B" + DEFB "H" + DEFB "Y" + DEFB "6" + DEFB "5" + DEFB "T" + DEFB "G" + DEFB "V" + DEFB "N" + DEFB "J" + DEFB "U" + DEFB "7" + DEFB "4" + DEFB "R" + DEFB "F" + DEFB "C" + DEFB "M" + DEFB "K" + DEFB "I" + DEFB "8" + DEFB "3" + DEFB "E" + DEFB "D" + DEFB "X" DEFB $0E ; SYMBOL SHIFT - DEFB $4C ; L - DEFB $4F ; O - DEFB $39 ; 9 - DEFB $32 ; 2 - DEFB $57 ; W - DEFB $53 ; S - DEFB $5A ; Z - DEFB $20 ; SPACE + DEFB "L" + DEFB "O" + DEFB "9" + DEFB "2" + DEFB "W" + DEFB "S" + DEFB "Z" + DEFB " " DEFB $0D ; ENTER - DEFB $50 ; P - DEFB $30 ; 0 - DEFB $31 ; 1 - DEFB $51 ; Q - DEFB $41 ; A + DEFB "P" + DEFB "0" + DEFB "1" + DEFB "Q" + DEFB "A" ;; E-UNSHIFT @@ -586,13 +534,13 @@ L022C: DEFB $E3 ; READ ;; EXT-SHIFT ; The 26 shifted extended mode keys for the alphabetic characters. ; The red keywords below keys on the original keyboard. -L0246: DEFB $7E ; ~ +L0246: DEFB '~' DEFB $DC ; BRIGHT DEFB $DA ; PAPER - DEFB $5C ; \ + DEFB '\' ; DEFB $B7 ; ATN - DEFB $7B ; { - DEFB $7D ; } + DEFB '{' + DEFB '}' DEFB $D8 ; CIRCLE DEFB $BF ; IN DEFB $AE ; VAL$ @@ -604,13 +552,13 @@ L0246: DEFB $7E ; ~ DEFB $7F ; (Copyright character) DEFB $B5 ; ASN DEFB $D6 ; VERIFY - DEFB $7C ; | + DEFB '|' DEFB $D5 ; MERGE - DEFB $5D ; ] + DEFB ']' DEFB $DB ; FLASH DEFB $B6 ; ACS DEFB $D9 ; INK - DEFB $5B ; [ + DEFB '[' DEFB $D7 ; BEEP @@ -634,31 +582,31 @@ L0260: DEFB $0C ; DELETE ; The ten single-character digit symbols are converted without the aid of ; a table using subtraction and minor manipulation. L026A: DEFB $E2 ; STOP - DEFB $2A ; * - DEFB $3F ; ? + DEFB '*' + DEFB '?' DEFB $CD ; STEP DEFB $C8 ; >= DEFB $CC ; TO DEFB $CB ; THEN - DEFB $5E ; ^ + DEFB '^' DEFB $AC ; AT - DEFB $2D ; - - DEFB $2B ; + - DEFB $3D ; = - DEFB $2E ; . - DEFB $2C ; , - DEFB $3B ; ; - DEFB $22 ; " + DEFB '-' + DEFB '+' + DEFB '=' + DEFB '.' + DEFB ',' + DEFB ';' + DEFB '"' DEFB $C7 ; <= - DEFB $3C ; < + DEFB '<' DEFB $C3 ; NOT - DEFB $3E ; > + DEFB '>' DEFB $C5 ; OR - DEFB $2F ; / + DEFB '/' DEFB $C9 ; <> DEFB $60 ; pound DEFB $C6 ; AND - DEFB $3A ; : + DEFB ':' ; : ;; E-DIGITS ; The ten keywords assigned to the digits in extended mode. @@ -19330,18 +19278,27 @@ L3C97: ; ║ дополнения для SP48 !! ║ ; ║ для перехода EXP-BAS48 ║ ; ║ 16 байт + 22 байта ║ -; ╚═══════════════════════════╝ -// LD HL,#C0 ; POINT - вход в MENU из BASIC 48. for ZX_MODE.ASM - RET_FROM_BIOS_TO_BASIC48 - LD HL,#3CF0 ; POINT - вход в MENU из BASIC 48. for ZX_MODE.ASM - RET_FROM_BIOS_TO_BASIC48 +; ╚═══════════════════════════╝ + ;!FIXIT сделать выбор страницы макросом с условиями компиляции, + ;чтоб можно было компилить vROM как для работы с ПЗУ, так и полностью без него + //LD HL,#C0 ; POINT - вход в MENU из BASIC 48. for ZX_MODE.ASM - RET_FROM_BIOS_TO_BASIC48 + LD HL,#3CF0 ; POINT - вход в MENU из BASIC 48. for ZX_MODE.ASM - RET_FROM_BIOS_TO_BASIC48 + ; JR JMP_EX BLOCK #3CF8-$,0 JMP_EX: PUSH HL PUSH AF -// LD A,ROM.BIOS ; переход в BIOS - LD A,ROM.EXPANSION ; переход в EXPANSION - OUT (CNF_PORT.ON),A + + //LD A,ROM.BIOS ; переход в BIOS + //LD A,ROM.EXPANSION ; переход в EXPANSION + + ;!FIXIT сделать выбор страницы макросом с условиями компиляции, + ;чтоб можно было компилить vROM как для работы с ПЗУ, так и полностью без него + LD A,0 + OUT (CNF_PORT.ON),A + ; POP AF RET ; возврат ;< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <; diff --git a/ZX_EXP/SERVICE.ASM b/ZX_EXP/SERVICE.ASM index fb2ef9f..f4ec262 100644 --- a/ZX_EXP/SERVICE.ASM +++ b/ZX_EXP/SERVICE.ASM @@ -30,7 +30,7 @@ SR_MENU: DC 'TURBO ON ' DC 'Clear RAM' DC 'RETURN' - DC ' ' ; маркер конца + DC " " ; маркер конца SR_LEN EQU $-SR_MENU @@ -177,7 +177,7 @@ IS_MENU: DC 'Pentagon 512' DC 'Restart ' DC 'RETURN' - DC ' ' ; маркер конца + DC " " ; маркер конца .Size EQU $-IS_MENU ;****************************** diff --git a/ZX_EXP/TEST.ASM b/ZX_EXP/TEST.ASM index b08dd4d..4941bdb 100644 --- a/ZX_EXP/TEST.ASM +++ b/ZX_EXP/TEST.ASM @@ -277,9 +277,9 @@ ERR_TST_M: ;************************************** CALL_DOS_MOVE: - LD DE,5C00H-DOS_PROG_LEN + LD DE,DOS_PROG.Exec LD HL,DOS_PROG - LD BC,DOS_PROG_LEN + LD BC,DOS_PROG.Size LDIR RET ; @@ -295,34 +295,36 @@ CALL_DOS1: LD (5C63H),DE LD (5C65H),DE CALL CALL_DOS_MOVE - JP 5C00H-DOS_PROG_LEN + JP DOS_PROG.Exec CALL_DOS: PUSH HL PUSH DE PUSH BC PUSH AF CALL CALL_DOS_MOVE - LD A,13H - LD (5C00H-DOS_PROG_LEN+DOS_PROG_A),A + LD A,#13 ; #13 из AUTO_1303 + LD (DOS_PROG.Patch),A POP AF POP BC POP DE POP HL - JP 5C00H-DOS_PROG_LEN + JP DOS_PROG.Exec DOS_PROG: - PUSH AF - XOR A - OUT (SYS_PORT_OFF),A - POP AF - CALL 3D03H -DOS_PROG_A EQU $-DOS_PROG-1 - PUSH AF - LD A,0 - OUT (CNF_PORT),A - POP AF - RET -DOS_PROG_LEN EQU $-DOS_PROG + DISP #5C00 - DOS_PROG.Size ;!HARDCODE +.Exec: PUSH AF + XOR A + OUT (SYS_PORT_OFF),A + POP AF +.Patch+2: CALL #3D03 + PUSH AF + LD A,0 + OUT (CNF_PORT),A + POP AF + RET +.Size EQU $ - .Exec + ENT + CONT_PROG: LD HL,1AFDH @@ -334,7 +336,4 @@ CONT_PROG: LD A,0E8H LD (DE),A JP SW_ROM - - - - +; \ No newline at end of file