refactoring

This commit is contained in:
Anatoliy Belyanskiy 2023-06-21 02:26:06 +10:00
parent c830097baf
commit f0ab2100a7
3 changed files with 184 additions and 228 deletions

View File

@ -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 ¡ ©â  º
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
;!FIXIT ᤥ« âì ¢ë¡®à áâà ­¨æë ¬ ªà®á®¬ á ãá«®¢¨ï¬¨ ª®¬¯¨«ï樨,
;ç⮡ ¬®¦­® ¡ë«® ª®¬¯¨«¨âì vROM ª ª ¤«ï à ¡®âë á <20>‡“, â ª ¨ ¯®«­®áâìî ¡¥§ ­¥£®
//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
//LD A,ROM.EXPANSION ; ¯¥à¥å®¤ ¢ EXPANSION
;!FIXIT ᤥ« âì ¢ë¡®à áâà ­¨æë ¬ ªà®á®¬ á ãá«®¢¨ï¬¨ ª®¬¯¨«ï樨,
;ç⮡ ¬®¦­® ¡ë«® ª®¬¯¨«¨âì vROM ª ª ¤«ï à ¡®âë á <20>‡“, â ª ¨ ¯®«­®áâìî ¡¥§ ­¥£®
LD A,0
OUT (CNF_PORT.ON),A
;
POP AF
RET ; ¢®§¢à â
;< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <;

View File

@ -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
;******************************

View File

@ -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
DISP #5C00 - DOS_PROG.Size ;!HARDCODE
.Exec: PUSH AF
XOR A
OUT (SYS_PORT_OFF),A
POP AF
CALL 3D03H
DOS_PROG_A EQU $-DOS_PROG-1
.Patch+2: CALL #3D03
PUSH AF
LD A,0
OUT (CNF_PORT),A
POP AF
RET
DOS_PROG_LEN EQU $-DOS_PROG
.Size EQU $ - .Exec
ENT
CONT_PROG:
LD HL,1AFDH
@ -334,7 +336,4 @@ CONT_PROG:
LD A,0E8H
LD (DE),A
JP SW_ROM
;