Updated to use CMT

This commit is contained in:
Philip Smart
2020-07-12 18:34:13 +01:00
parent 3ac2045504
commit 6a5e5bf5f0
12 changed files with 9676 additions and 302 deletions

BIN
software/MZF/BASIC.MZF Normal file

Binary file not shown.

BIN
software/MZF/BASIC80A.MZF Normal file

Binary file not shown.

BIN
software/MZF/BASICRFS.MZF Normal file

Binary file not shown.

9005
software/asm/BASIC.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,329 @@
;--------------------------------------------------------------------------------------------------------
;-
;- Name: BASIC_Definitions.asm
;- Created: June 2020
;- Author(s): Philip Smart
;- Description: Sharp MZ series CPM v2.23
;- Definitions for the Sharp MZ80A CPM v2.23 OS used in the RFS
;-
;- Credits:
;- Copyright: (c) 2019-20 Philip Smart <philip.smart@net2net.org>
;-
;- History: Jan 2020 - Initial version.
; May 2020 - Advent of the new RFS PCB v2.0, quite a few changes to accommodate the
; additional and different hardware. The SPI is now onboard the PCB and
; not using the printer interface card.
; Jun 2020 - Copied and strpped from TZFS for BASIC.
;
;--------------------------------------------------------------------------------------------------------
;- This source file is free software: you can redistribute it and-or modify
;- it under the terms of the GNU General Public License as published
;- by the Free Software Foundation, either version 3 of the License, or
;- (at your option) any later version.
;-
;- This source file is distributed in the hope that it will be useful,
;- but WITHOUT ANY WARRANTY; without even the implied warranty of
;- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;- GNU General Public License for more details.
;-
;- You should have received a copy of the GNU General Public License
;- along with this program. If not, see <http://www.gnu.org/licenses/>.
;--------------------------------------------------------------------------------------------------------
;-----------------------------------------------
; Features.
;-----------------------------------------------
;-----------------------------------------------
;-----------------------------------------------
; Configurable settings.
;-----------------------------------------------
TMRTICKINTV EQU 5 ; Number of 0.010mSec ticks per interrupt, ie. resolution of RTC.
COLW: EQU 80 ; Width of the display screen (ie. columns).
ROW: EQU 25 ; Number of rows on display screen.
SCRNSZ: EQU COLW * ROW ; Total size, in bytes, of the screen display area.
SCRLW: EQU COLW / 8 ; Number of 8 byte regions in a line for hardware scroll.
MODE80C: EQU 1
; BIOS equates
KEYBUFSIZE EQU 64 ; Ensure this is a power of 2, max size 256.
;MAXMEM EQU 10000H - TZSVCSIZE ; Top of RAM on the tranZPUter/
MAXMEM EQU 0CFFFH ; Top of RAM on a standard Sharp MZ80A.
; Tape load/save modes. Used as a flag to enable common code.
TAPELOAD EQU 1
CTAPELOAD EQU 2
TAPESAVE EQU 3
CTAPESAVE EQU 4
; Build options. Set just one to '1' the rest to '0'.
BUILD_MZ80A EQU 1 ; Build for the standard Sharp MZ80A, no lower memory. Manually change MAXMEM above.
BUILD_RFS EQU 0 ; Build for RFS where the tranZPUter board is available without the K64F and running under RFS.
BUILD_TZFS EQU 0 ; Build for TZFS where extended memory is available.
INCLUDE_ANSITERM EQU 1 ; Include the Ansi terminal emulation processor in the build.
; Debugging
ENADEBUG EQU 0 ; Enable debugging logic, 1 = enable, 0 = disable
;-----------------------------------------------
; CMT Object types.
;-----------------------------------------------
ATR_OBJ EQU 1
ATR_BASIC_PROG EQU 2
ATR_BASIC_DATA EQU 3
ATR_SRC_FILE EQU 4
ATR_RELOC_FILE EQU 5
ATR_PASCAL_PROG EQU 0A0H
ATR_PASCAL_DATA EQU 0A1H
;-------------------------------------------------------
; Function entry points in the standard SA-1510 Monitor.
;-------------------------------------------------------
QWRI EQU 00021h
QWRD EQU 00024h
QRDI EQU 00027h
QRDD EQU 0002Ah
QVRFY EQU 0002Dh
;-----------------------------------------------
; BASIC ERROR CODE VALUES
;-----------------------------------------------
NF EQU 00H ; NEXT without FOR
SN EQU 02H ; Syntax error
RG EQU 04H ; RETURN without GOSUB
OD EQU 06H ; Out of DATA
FC EQU 08H ; Function call error
OV EQU 0AH ; Overflow
OM EQU 0CH ; Out of memory
UL EQU 0EH ; Undefined line number
BS EQU 10H ; Bad subscript
DDA EQU 12H ; Re-DIMensioned array
DZ EQU 14H ; Division by zero (/0)
ID EQU 16H ; Illegal direct
TM EQU 18H ; Type miss-match
OS EQU 1AH ; Out of string space
LS EQU 1CH ; String too long
ST EQU 1EH ; String formula too complex
CN EQU 20H ; Can't CONTinue
UF EQU 22H ; UnDEFined FN function
MO EQU 24H ; Missing operand
HX EQU 26H ; HEX error
BN EQU 28H ; BIN error
BV EQU 2AH ; Bad Value error
IO EQU 2CH ; IO error
;-----------------------------------------------
; Memory mapped ports in hardware.
;-----------------------------------------------
SCRN: EQU 0D000H
ARAM: EQU 0D800H
DSPCTL: EQU 0DFFFH ; Screen 40/80 select register (bit 7)
KEYPA: EQU 0E000h
KEYPB: EQU 0E001h
KEYPC: EQU 0E002h
KEYPF: EQU 0E003h
CSTR: EQU 0E002h
CSTPT: EQU 0E003h
CONT0: EQU 0E004h
CONT1: EQU 0E005h
CONT2: EQU 0E006h
CONTF: EQU 0E007h
SUNDG: EQU 0E008h
TEMP: EQU 0E008h
MEMSW: EQU 0E00CH
MEMSWR: EQU 0E010H
INVDSP: EQU 0E014H
NRMDSP: EQU 0E015H
SCLDSP: EQU 0E200H
SCLBASE: EQU 0E2H
;-----------------------------------------------
; IO Registers
;-----------------------------------------------
FDC EQU 0D8h ; MB8866 IO Region 0D8h - 0DBh
FDC_CR EQU FDC + 000h ; Command Register
FDC_STR EQU FDC + 000h ; Status Register
FDC_TR EQU FDC + 001h ; Track Register
FDC_SCR EQU FDC + 002h ; Sector Register
FDC_DR EQU FDC + 003h ; Data Register
FDC_MOTOR EQU FDC + 004h ; DS[0-3] and Motor control. 4 drives DS= BIT 0 -> Bit 2 = Drive number, 2=1,1=0,0=0 DS0, 2=1,1=0,0=1 DS1 etc
; bit 7 = 1 MOTOR ON LOW (Active)
FDC_SIDE EQU FDC + 005h ; Side select, Bit 0 when set = SIDE SELECT LOW
;-----------------------------------------------
; Common character definitions.
;-----------------------------------------------
SCROLL EQU 001H ;Set scroll direction UP.
BELL EQU 007H
SPACE EQU 020H
TAB EQU 009H ;TAB ACROSS (8 SPACES FOR SD-BOARD)
CR EQU 00DH
LF EQU 00AH
FF EQU 00CH
CS EQU 0CH ; Clear screen
DELETE EQU 07FH
BACKS EQU 008H
SOH EQU 1 ; For XModem etc.
EOT EQU 4
ACK EQU 6
NAK EQU 015H
NUL EQU 000H
;NULL EQU 000H
CTRL_A EQU 001H
CTRL_B EQU 002H
CTRL_C EQU 003H
CTRL_D EQU 004H
CTRL_E EQU 005H
CTRL_F EQU 006H
CTRL_G EQU 007H
CTRL_H EQU 008H
CTRL_I EQU 009H
CTRL_J EQU 00AH
CTRL_K EQU 00BH
CTRL_L EQU 00CH
CTRL_M EQU 00DH
CTRL_N EQU 00EH
CTRL_O EQU 00FH
CTRL_P EQU 010H
CTRL_Q EQU 011H
CTRL_R EQU 012H
CTRL_S EQU 013H
CTRL_T EQU 014H
CTRL_U EQU 015H
CTRL_V EQU 016H
CTRL_W EQU 017H
CTRL_X EQU 018H
CTRL_Y EQU 019H
CTRL_Z EQU 01AH
ESC EQU 01BH
CTRL_SLASH EQU 01CH
CTRL_RB EQU 01DH
CTRL_CAPPA EQU 01EH
CTRL_UNDSCR EQU 01FH
CTRL_AT EQU 000H
NOKEY EQU 0F0H
CURSRIGHT EQU 0F1H
CURSLEFT EQU 0F2H
CURSUP EQU 0F3H
CURSDOWN EQU 0F4H
DBLZERO EQU 0F5H
INSERT EQU 0F6H
CLRKEY EQU 0F7H
HOMEKEY EQU 0F8H
BREAKKEY EQU 0FBH
;-----------------------------------------------
; IO ports in hardware and values.
;-----------------------------------------------
MMCFG EQU 060H ; Memory management configuration latch.
SETXMHZ EQU 062H ; Select the alternate clock frequency.
SET2MHZ EQU 064H ; Select the system 2MHz clock frequency.
CLKSELRD EQU 066H ; Read clock selected setting, 0 = 2MHz, 1 = XMHz
SVCREQ EQU 068H ; I/O Processor service request.
;-----------------------------------------------
; tranZPUter SW Memory Management modes
;-----------------------------------------------
TZMM_ORIG EQU 000H ; Original Sharp MZ80A mode, no tranZPUter features are selected except the I/O control registers (default: 0x60-063).
TZMM_BOOT EQU 001H ; Original mode but E800-EFFF is mapped to tranZPUter RAM so TZFS can be booted.
TZMM_TZFS EQU 002H ; TZFS main memory configuration. all memory is in tranZPUter RAM, E800-FFFF is used by TZFS, SA1510 is at 0000-1000 and RAM is 1000-CFFF, 64K Block 0 selected.
TZMM_TZFS2 EQU 003H ; TZFS main memory configuration. all memory is in tranZPUter RAM, E800-EFFF is used by TZFS, SA1510 is at 0000-1000 and RAM is 1000-CFFF, 64K Block 0 selected, F000-FFFF is in 64K Block 1.
TZMM_TZFS3 EQU 004H ; TZFS main memory configuration. all memory is in tranZPUter RAM, E800-EFFF is used by TZFS, SA1510 is at 0000-1000 and RAM is 1000-CFFF, 64K Block 0 selected, F000-FFFF is in 64K Block 2.
TZMM_TZFS4 EQU 005H ; TZFS main memory configuration. all memory is in tranZPUter RAM, E800-EFFF is used by TZFS, SA1510 is at 0000-1000 and RAM is 1000-CFFF, 64K Block 0 selected, F000-FFFF is in 64K Block 3.
TZMM_CPM EQU 006H ; CPM main memory configuration, all memory on the tranZPUter board, 64K block 4 selected. Special case for F3C0:F3FF & F7C0:F7FF (floppy disk paging vectors) which resides on the mainboard.
TZMM_CPM2 EQU 007H ; CPM main memory configuration, F000-FFFF are on the tranZPUter board in block 4, 0040-CFFF and E800-EFFF are in block 5, mainboard for D000-DFFF (video), E000-E800 (Memory control) selected.
; Special case for 0000:003F (interrupt vectors) which resides in block 4, F3C0:F3FF & F7C0:F7FF (floppy disk paging vectors) which resides on the mainboard.
TZMM_MZ700_0 EQU 00AH ; MZ700 Mode - 0000:0FFF is on the tranZPUter board in block 6, 1000:CFFF is on the tranZPUter board in block 0, D000:FFFF is on the mainboard.
TZMM_MZ700_1 EQU 00BH ; MZ700 Mode - 0000:0FFF is on the tranZPUter board in block 0, 1000:CFFF is on the tranZPUter board in block 0, D000:FFFF is on the tranZPUter in block 6.
TZMM_MZ700_2 EQU 00CH ; MZ700 Mode - 0000:0FFF is on the tranZPUter board in block 6, 1000:CFFF is on the tranZPUter board in block 0, D000:FFFF is on the tranZPUter in block 6.
TZMM_MZ700_3 EQU 00DH ; MZ700 Mode - 0000:0FFF is on the tranZPUter board in block 0, 1000:CFFF is on the tranZPUter board in block 0, D000:FFFF is inaccessible.
TZMM_MZ700_4 EQU 00EH ; MZ700 Mode - 0000:0FFF is on the tranZPUter board in block 6, 1000:CFFF is on the tranZPUter board in block 0, D000:FFFF is inaccessible.
TZMM_TZPU0 EQU 018H ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 0 is selected.
TZMM_TZPU1 EQU 019H ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 1 is selected.
TZMM_TZPU2 EQU 01AH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 2 is selected.
TZMM_TZPU3 EQU 01BH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 3 is selected.
TZMM_TZPU4 EQU 01CH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 4 is selected.
TZMM_TZPU5 EQU 01DH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 5 is selected.
TZMM_TZPU6 EQU 01EH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 6 is selected.
TZMM_TZPU7 EQU 01FH ; Everything is in tranZPUter domain, no access to underlying Sharp mainboard unless memory management mode is switched. tranZPUter RAM 64K block 7 is selected.
;-----------------------------------------------
; TZ File System Header (MZF)
;-----------------------------------------------
TZFS_ATRB: EQU 00000h ; Code Type, 01 = Machine Code.
TZFS_NAME: EQU 00001h ; Title/Name (17 bytes).
TZFS_SIZE: EQU 00012h ; Size of program.
TZFS_DTADR: EQU 00014h ; Load address of program.
TZFS_EXADR: EQU 00016h ; Exec address of program.
TZFS_COMNT: EQU 00018h ; Comment
TZFS_MZFLEN: EQU 128 ; Length of the MZF header.
TZFS_CMTLEN: EQU 104 ; Length of the comment field
;-----------------------------------------------
; BIOS WORK AREA (MZ80A)
;-----------------------------------------------
; Variables and control structure used by the I/O processor for service calls and requests.
ORG TZSVCMEM
TZSVCMEM: EQU 0FD80H ; Start of a memory structure used to communicate with the K64F I/O processor for services such as disk access.
TZSVCSIZE: EQU 00280H ;
TZSVCDIRSZ: EQU 20 ; Size of the directory/file name.
TZSVCFILESZ: EQU 17 ; Size of a Sharp filename.
TZSVCLONGFILESZ: EQU 31 ; Size of a standard filename.
TZSVCLONGFMTSZ: EQU 20 ; Size of a formatted standard filename for use in directory listings.
TZSVCWILDSZ: EQU 20 ; Size of the wildcard.
TZSVCSECSIZE: EQU 512
TZSVCDIR_ENTSZ: EQU 32 ; Size of a directory entry.
TZSVCWAITIORETRIES: EQU 500 ; Wait retries for IO response.
TZSVCWAITCOUNT: EQU 65535 ; Wait retries for IO request response.
TZSVC_FTYPE_MZF: EQU 0 ; File type being handled is an MZF
TZSVC_FTYPE_CAS: EQU 1 ; File type being handled is an CASsette BASIC script.
TZSVC_FTYPE_BAS: EQU 2 ; File type being handled is an BASic script
TZSVC_FTYPE_ALL: EQU 10 ; Handle any filetype.
TZSVC_FTYPE_ALLFMT: EQU 11 ; Special case for directory listings, all files but truncated and formatted.
TZSVCCMD: DS virtual 1 ; Service command.
TZSVCRESULT: DS virtual 1 ; Service command result.
TZSVCDIRSEC: DS virtual 1 ; Storage for the directory sector number.
TZSVC_FILE_SEC: EQU TZSVCDIRSEC ; Union of the file and directory sector as only one can be used at a time.
TZSVC_TRACK_NO: DS virtual 2 ; Storage for the virtual drive track number.
TZSVC_SECTOR_NO: DS virtual 2 ; Storage for the virtual drive sector number.
TZSVC_FILE_NO: DS virtual 1 ; File number to be opened in a file service command.
TZSVC_FILE_TYPE: DS virtual 1 ; Type of file being accessed to differentiate between Sharp MZF files and other handled files.
TZSVC_LOADADDR: DS virtual 2 ; Dynamic load address for rom/images.
TZSVC_SAVEADDR: EQU TZSVC_LOADADDR ; Union of the load address and the cpu frequency change value, the address of data to be saved.
TZSVC_CPU_FREQ: EQU TZSVC_LOADADDR ; Union of the load address and the save address value, only one can be used at a time.
TZSVC_LOADSIZE: DS virtual 2 ; Size of image to load.
TZSVC_SAVESIZE: EQU TZSVC_LOADSIZE ; Size of image to be saved.
TZSVC_DIRNAME: DS virtual TZSVCDIRSZ ; Service directory/file name.
TZSVC_FILENAME: DS virtual TZSVCFILESZ ; Filename to be opened/created.
TZSVCWILDC: DS virtual TZSVCWILDSZ ; Directory wildcard for file pattern matching.
TZSVCSECTOR: DS virtual TZSVCSECSIZE ; Service command sector - to store directory entries, file sector read or writes.
TZSVC_CMD_READDIR: EQU 01H ; Service command to open a directory and return the first block of entries.
TZSVC_CMD_NEXTDIR: EQU 02H ; Service command to return the next block of an open directory.
TZSVC_CMD_READFILE: EQU 03H ; Service command to open a file and return the first block.
TZSVC_CMD_NEXTREADFILE: EQU 04H ; Service command to return the next block of an open file.
TZSVC_CMD_WRITEFILE: EQU 05H ; Service command to create a file and save the first block.
TZSVC_CMD_NEXTWRITEFILE:EQU 06H ; Service command to write the next block to the open file.
TZSVC_CMD_CLOSE: EQU 07H ; Service command to close any open file or directory.
TZSVC_CMD_LOADFILE: EQU 08H ; Service command to load a file directly into tranZPUter memory.
TZSVC_CMD_SAVEFILE: EQU 09H ; Service command to save a file directly from tranZPUter memory.
TZSVC_CMD_ERASEFILE: EQU 0aH ; Service command to erase a file on the SD card.
TZSVC_CMD_CHANGEDIR: EQU 0bH ; Service command to change the active directory on the SD card.
TZSVC_CMD_LOAD40BIOS: EQU 20H ; Service command requesting that the 40 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD80BIOS: EQU 21H ; Service command requesting that the 80 column version of the SA1510 BIOS is loaded.
TZSVC_CMD_LOAD700BIOS40:EQU 22H ; Service command requesting that the MZ700 1Z-013A 40 column BIOS is loaded.
TZSVC_CMD_LOAD700BIOS80:EQU 23H ; Service command requesting that the MZ700 1Z-013A 80 column patched BIOS is loaded.
TZSVC_CMD_LOAD80BIPL: EQU 24H ; Service command requesting the MZ-80B IPL is loaded.
TZSVC_CMD_LOADBDOS: EQU 30H ; Service command to reload CPM BDOS+CCP.
TZSVC_CMD_ADDSDDRIVE: EQU 31H ; Service command to attach a CPM disk to a drive number.
TZSVC_CMD_READSDDRIVE: EQU 32H ; Service command to read an attached SD file as a CPM disk drive.
TZSVC_CMD_WRITESDDRIVE: EQU 33H ; Service command to write to a CPM disk drive which is an attached SD file.
TZSVC_CMD_CPU_BASEFREQ EQU 40H ; Service command to switch to the mainboard frequency.
TZSVC_CMD_CPU_ALTFREQ EQU 41H ; Service command to switch to the alternate frequency provided by the K64F.
TZSVC_CMD_CPU_CHGFREQ EQU 42H ; Service command to set the alternate frequency in hertz.
TZSVC_STATUS_OK: EQU 000H ; Flag to indicate the K64F processing completed successfully.
TZSVC_STATUS_REQUEST: EQU 0FEH ; Flag to indicate the Z80 has made a request to the K64F.
TZSVC_STATUS_PROCESSING:EQU 0FFH ; Flag to indicate the K64F is processing a command.

View File

@@ -1966,307 +1966,344 @@ DACN1: OR A
LD A,L
JR DACN2
KTBL: DB 022H
DB 021H
DB 017H
DB 011H
DB 001H
DB 0C7H
DB 000H
DB 01AH
DB 024H
DB 023H
DB 012H
DB 005H
DB 004H
DB 013H
DB 018H
DB 003H
DB 026H
DB 025H
DB 019H
DB 014H
DB 007H
DB 006H
DB 016H
DB 002H
DB 028H
DB 027H
DB 009H
DB 015H
DB 00AH
DB 008H
DB 00EH
DB 000H
DB 020H
DB 029H
DB 010H
DB 00FH
DB 00CH
DB 00BH
DB 02FH
DB 00DH
DB 0BEH
DB 02AH
DB 052H
DB 055H
DB 04FH
DB 02CH
DB 02DH
DB 02EH
DB 0C5H
DB 059H
DB 0C3H
DB 0C2H
DB 0CDH
DB 054H
DB 000H
DB 049H
DB 028H
DB 027H
DB 025H
DB 024H
DB 022H
DB 021H
DB 0E7H
DB 020H
DB 06AH
DB 029H
DB 02AH
DB 026H
DB 000H
DB 023H
DB 000H
DB 02EH
KTBL: ;S0 00 - 07 ;
DB 022H ; 2
DB 021H ; 1
DB 017H ; W
DB 011H ; Q
DB 001H ; A
DB 0C7H ; DEL
DB 000H ; NULL
DB 01AH ; Z
;S1 08 - 0F ;
DB 024H ; 4
DB 023H ; 3
DB 012H ; R
DB 005H ; E
DB 004H ; D
DB 013H ; S
DB 018H ; X
DB 003H ; C
;S2 10 - 17 ;
DB 026H ; 6
DB 025H ; 5
DB 019H ; Y
DB 014H ; T
DB 007H ; G
DB 006H ; F
DB 016H ; V
DB 002H ; B
;S3 18 - 1F ;
DB 028H ; 8
DB 027H ; 7
DB 009H ; I
DB 015H ; U
DB 00AH ; J
DB 008H ; H
DB 00EH ; N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 020H ; 0
DB 029H ; 9
DB 010H ; P
DB 00FH ; O
DB 00CH ; L
DB 00BH ; K
DB 02FH ; ,
DB 00DH ; M
;S5 28 - 2F ;
DB 0BEH ; ^
DB 02AH ; -
DB 052H ; [
DB 055H ; @
DB 04FH ; :
DB 02CH ; ;
DB 02DH ; /
DB 02EH ; .
;S6 30 - 37 ;
DB 0C5H ; HOME
DB 059H ; \
DB 0C3H ; CURSOR RIGHT
DB 0C2H ; CURSOR UP
DB 0CDH ; CR
DB 054H ; ]
DB 000H ; NULL
DB 049H ; ?
;S7 38 - 3F ;
DB 028H ; 8
DB 027H ; 7
DB 025H ; 5
DB 024H ; 4
DB 022H ; 2
DB 021H ; 1
DB 0E7H ; 00
DB 020H ; 0
; S8 ;
DB 06AH ; *
DB 029H ; 9
DB 02AH ; -
DB 026H ; 6
DB 000H ; NULL
DB 023H ; 3
DB 000H ; NULL
DB 02EH ; ,
KTBLS: DB 062H
DB 061H
DB 097H
DB 091H
DB 081H
DB 0C8H
DB 000H
DB 09AH
DB 064H
DB 063H
DB 092H
DB 085H
DB 084H
DB 093H
DB 098H
DB 083H
DB 066H
DB 065H
DB 099H
DB 094H
DB 087H
DB 086H
DB 096H
DB 082H
DB 068H
DB 067H
DB 089H
DB 095H
DB 08AH
DB 088H
DB 08EH
DB 000H
DB 0BFH
DB 069H
DB 090H
DB 08FH
DB 08CH
DB 08BH
DB 051H
DB 08DH
DB 0A5H
DB 02BH
DB 0BCH
DB 0A4H
DB 06BH
DB 06AH
DB 045H
DB 057H
DB 0C6H
DB 080H
DB 0C4H
DB 0C1H
DB 0CDH
DB 040H
DB 000H
DB 050H
KTBLS: ;S0 00 - 07 ;
DB 062H ; "
DB 061H ; !
DB 097H ; w
DB 091H ; q
DB 081H ; a
DB 0C8H ; INSERT
DB 000H ; NULL
DB 09AH ; z
;S1 08 - 0F ;
DB 064H ; $
DB 063H ; #
DB 092H ; r
DB 085H ; e
DB 084H ; d
DB 093H ; s
DB 098H ; x
DB 083H ; c
;S2 10 - 17 ;
DB 066H ; &
DB 065H ; %
DB 099H ; y
DB 094H ; t
DB 087H ; g
DB 086H ; f
DB 096H ; v
DB 082H ; b
;S3 18 - 1F ;
DB 068H ; (
DB 067H ; '
DB 089H ; i
DB 095H ; u
DB 08AH ; j
DB 088H ; h
DB 08EH ; n
DB 000H ; SPACE
;S4 20 - 27 ;
DB 0BFH ; _
DB 069H ; )
DB 090H ; p
DB 08FH ; o
DB 08CH ; l
DB 08BH ; k
DB 051H ; <
DB 08DH ; m
;S5 28 - 2F ;
DB 0A5H ; ~
DB 02BH ; =
DB 0BCH ; (
DB 0A4H ; '
DB 06BH ; #
DB 06AH ; +
DB 045H ; <-
DB 057H ; >
;S6 30 - 37 ;
DB 0C6H ; CLR
DB 080H ; |
DB 0C4H ; CURSOR LEFT
DB 0C1H ; CURSOR DOWN
DB 0CDH ; CR
DB 040H ; )
DB 000H ; NULL
DB 050H ; UP^
;
KTBLG: ;S0 00 - 07 ;
DB 03EH ; #2
DB 037H ; #1
DB 038H ; #W
DB 03CH ; #Q
DB 053H ; #A
DB 0C7H ; #DEL
DB 000H ; #NULL
DB 076H ; #Z
;S1 08 - 0F ;
DB 07BH ; #4
DB 07FH ; #3
DB 030H ; #R
DB 034H ; #E
DB 047H ; #D
DB 044H ; #S
DB 06DH ; #X
DB 0DEH ; #C
;S2 10 - 17 ;
DB 05EH ; #6
DB 03AH ; #5
DB 075H ; #Y
DB 071H ; #T
DB 04BH ; #G
DB 04AH ; #F
DB 0DAH ; #V
DB 06FH ; #B
;S3 18 - 1F ;
DB 0BDH ; #8
DB 01FH ; #7
DB 07DH ; #I
DB 079H ; #U
DB 05CH ; #J
DB 072H ; #H
DB 032H ; #N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 09CH ; #0
DB 0A1H ; #9
DB 0D6H ; #P
DB 0B0H ; #O
DB 0B4H ; #L
DB 05BH ; #K
DB 060H ; #,
DB 01CH ; #M
;S5 28 - 2F ;
DB 09EH ; #^
DB 0D2H ; #-
DB 0D8H ; #[
DB 0B2H ; #@
DB 0B6H ; ##:
DB 042H ; #;
DB 0DBH ; #/
DB 0B8H ; #.
;S6 30 - 37 ;
DB 0C5H ; HOME
DB 0D4H ; #\
DB 0C3H ; CURSOR RIGHT
DB 0C2H ; CURSOR UP
DB 0CDH ; CR
DB 04EH ; #J
DB 000H ; NULL
DB 0BAH ; #?
;
KTBLGS: ;S0 00 - 07 ;
DB 036H ; ?2
DB 03FH ; ?1
DB 078H ; ?W
DB 07CH ; ?Q
DB 046H ; ?A
DB 0C8H ; INST
DB 000H ; NULL
DB 077H ; ?Z
;S1 08 - 0F ;
DB 03BH ; ?4
DB 07EH ; ?3
DB 070H ; ?R
DB 074H ; ?E
DB 048H ; ?D
DB 041H ; ?S
DB 0DDH ; ?X
DB 0D9H ; C
;S2 10 - 17 ;
DB 01EH ; ?6
DB 07AH ; ?5
DB 035H ; ?Y
DB 031H ; ?T
DB 04CH ; ?G
DB 043H ; ?F
DB 0A6H ; ?V
DB 06EH ; ?B
;S3 18 - 1F ;
DB 0A2H ; ?8
DB 05FH ; ?7
DB 03DH ; ?I
DB 039H ; ?U
DB 05DH ; ?J
DB 073H ; ?H
DB 033H ; ?N
DB 000H ; SPACE
;S4 20 - 27 ;
DB 09DH ; ?0
DB 0A3H ; ?9
DB 0B1H ; ?P
DB 0D5H ; ?O
DB 056H ; ?L
DB 06CH ; ?K
DB 0D0H ; ?,
DB 01DH ; ?M
;S5 28 - 2F ;
DB 09FH ; ?^
DB 0D1H ; ?-
DB 0B3H ; ?[
DB 0D7H ; ?@
DB 04DH ; ?:
DB 0B5H ; ?;
DB 01BH ; ?/
DB 0B9H ; ?.
;S6 30 - 37 ;
DB 0C6H ; CLR
DB 0D3H ; ?\
DB 0C4H ; CURSOR RIGHT
DB 0C1H ; CURSOR UP
DB 0CDH ; CR
DB 0B7H ; ?J
DB 000H ; NULL
DB 0BBH ; ??
;
KTBLC: ;S0 00 - 07 ;
DB 0F0H ; CODE 80H=NOT KEY
DB 0F0H ;
DB 0E2H ; CTRL + W
DB 0C1H ; CTRL + Q
DB 0E0H ; CTRL + A SHIFT LOCK
DB 0F0H ;
DB 000H ;
DB 0E5H ; CTRL + Z
;S1 08 - 0F ;
DB 0F0H ;
DB 0F0H ;
DB 0C2H ; CTRL + R
DB 0CFH ; CTRL + E ROLL DOWN
DB 0CEH ; CTRL + D ROLL UP
DB 0C3H ; CTRL + S
DB 0E3H ; CTRL + X
DB 0F3H ; CTRL + C
;S2 10 - 17 ;
DB 0F0H ;
DB 0F0H ;
DB 0E4H ; CTRL + Y
DB 0C4H ; CTRL + T
DB 0F7H ; CTRL + G
DB 0F6H ; CTRL + F
DB 0C6H ; CTRL + V CLR
DB 0F2H ; CTRL + B
;S3 18 - 1F ;
DB 0F0H ;
DB 0F0H ;
DB 0F9H ; CTRL + I
DB 0C5H ; CTRL + U HOME
DB 0FAH ; CTRL + J
DB 0F8H ; CTRL + H
DB 0FEH ; CTRL + N
DB 0F0H ;
;S4 20 - 27 ;
DB 0F0H ;
DB 0F0H ;
DB 0E1H ; CTRL + P
DB 0FFH ; CTRL + O
DB 0FCH ; CTRL + L
DB 0FBH ; CTRL + K
DB 0F0H ;
DB 0FDH ; CTRL + M
;S5 28 - 2F ;
DB 0EFH ; CTRL + ^
DB 0F4H ; CTRL + -
DB 0E6H ; CTRL + [
DB 0CCH ; CTRL + @ REVERSE
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
;S6 30 - 37 ;
DB 0F0H ;
DB 0EBH ; CTRL + \
DB 0F0H ;
DB 0F0H ;
DB 0F0H ;
DB 0EEH ; CTRL + ]
DB 0F0H ;
KTBLG: DB 03EH
DB 037H
DB 038H
DB 03CH
DB 053H
DB 0C7H
DB 000H
DB 076H
DB 07BH
DB 07FH
DB 030H
DB 034H
DB 047H
DB 044H
DB 06DH
DB 0DEH
DB 05EH
DB 03AH
DB 075H
DB 071H
DB 04BH
DB 04AH
DB 0DAH
DB 06FH
DB 0BDH
DB 01FH
DB 07DH
DB 079H
DB 05CH
DB 072H
DB 032H
DB 000H
DB 09CH
DB 0A1H
DB 0D6H
DB 0B0H
DB 0B4H
DB 05BH
DB 060H
DB 01CH
DB 09EH
DB 0D2H
DB 0D8H
DB 0B2H
DB 0B6H
DB 042H
DB 0DBH
DB 0B8H
DB 0C5H
DB 0D4H
DB 0C3H
DB 0C2H
DB 0CDH
DB 04EH
DB 000H
DB 0BAH
KTBLGS: DB 036H
DB 03FH
DB 078H
DB 07CH
DB 046H
DB 0C8H
DB 000H
DB 077H
DB 03BH
DB 07EH
DB 070H
DB 074H
DB 048H
DB 041H
DB 0DDH
DB 0D9H
DB 01EH
DB 07AH
DB 035H
DB 031H
DB 04CH
DB 043H
DB 0A6H
DB 06EH
DB 0A2H
DB 05FH
DB 03DH
DB 039H
DB 05DH
DB 073H
DB 033H
DB 000H
DB 09DH
DB 0A3H
DB 0B1H
DB 0D5H
DB 056H
DB 06CH
DB 0D0H
DB 01DH
DB 09FH
DB 0D1H
DB 0B3H
DB 0D7H
DB 04DH
DB 0B5H
DB 01BH
DB 0B9H
DB 0C6H
DB 0D3H
DB 0C4H
DB 0C1H
DB 0CDH
DB 0B7H
DB 000H
DB 0BBH
KTBLC: DB 0F0H
DB 0F0H
DB 0E2H
DB 0C1H
DB 0E0H
DB 0F0H
DB 000H
DB 0E5H
DB 0F0H
DB 0F0H
DB 0C2H
DB 0CFH
DB 0CEH
DB 0C3H
DB 0E3H
DB 0F3H
DB 0F0H
DB 0F0H
DB 0E4H
DB 0C4H
DB 0F7H
DB 0F6H
DB 0C6H
DB 0F2H
DB 0F0H
DB 0F0H
DB 0F9H
DB 0C5H
DB 0FAH
DB 0F8H
DB 0FEH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0E1H
DB 0FFH
DB 0FCH
DB 0FBH
DB 0F0H
DB 0FDH
DB 0EFH
DB 0F4H
DB 0E6H
DB 0CCH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0F0H
DB 0F0H
DB 0EBH
DB 0F0H
DB 0F0H
DB 0F0H
DB 0EEH
DB 0F0H
?BRK: LD A,0F0H
?BRK: LD A,0F0H
LD (KEYPA),A
NOP
LD A,(KEYPB)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -35,7 +35,7 @@ ASM=glass.jar
#BUILDROMLIST="MZ80AFI rfs rfs_mrom IPL monitor_SA1510 monitor_80c_SA1510 monitor_mz-1r12 quickdisk_mz-1e05 quickdisk_mz-1e14 monitor_1Z-013A monitor_80c_1Z-013A"
BUILDROMLIST="monitor_SA1510_hiload monitor_80c_SA1510_hiload monitor_80c_SA1510 MZ80AFI monitor_SA1510 monitor_80c_SA1510"
#BUILDMZFLIST="hi-ramcheck sharpmz-test"
BUILDMZFLIST="sharpmz-test"
BUILDMZFLIST="BASIC sharpmz-test"
ASMDIR=${ROOTDIR}/software/asm
ASMTMPDIR=${ROOTDIR}/software/tmp
INCDIR=${ROOTDIR}/software/asm/include
@@ -61,8 +61,8 @@ do
echo "Copy ${ASMDIR}/${f}.obj to ${ROMDIR}/${f}.rom"
cp ${ASMTMPDIR}/${f}.obj ${ROMDIR}/${f}.rom
else
echo "Copy ${ASMDIR}/${f}.obj to ${MZFDIR}/${f}.mzf"
cp ${ASMTMPDIR}/${f}.obj ${MZFDIR}/${f}.mzf
echo "Copy ${ASMDIR}/${f}.obj to ${MZFDIR}/${f}.MZF"
cp ${ASMTMPDIR}/${f}.obj ${MZFDIR}/${f}.MZF
fi
fi
done

View File

@@ -64,6 +64,9 @@ RFS_INCLUDE+="${MZF_PATH}/AIP_-_LOGO_xrr.MZF:"
RFS_INCLUDE+="${MZF_PATH}/APOLLO_CHESS_v2a.MZF:"
RFS_INCLUDE+="${MZF_PATH}/B880.A3_P6.MZF:"
RFS_INCLUDE+="${MZF_PATH}/B880_MASTER.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASIC.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASICRFS.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASIC80A.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASIC_MZ-5Z008_2.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASIC_MZ-5Z008.MZF:"
RFS_INCLUDE+="${MZF_PATH}/BASIC_MZ-5Z009_modified.MZF:"