mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Compare commits
11 Commits
v3.5.0-dev
...
v3.5.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
074f2cfdb2 | ||
|
|
91f5b36fbc | ||
|
|
9ad7798713 | ||
|
|
807999928e | ||
|
|
0b1bbf3d2b | ||
|
|
d93e639e4b | ||
|
|
b633c309f4 | ||
|
|
a00cf821c7 | ||
|
|
d13ea96f35 | ||
|
|
8e4bb575f1 | ||
|
|
ee8cdfa4b8 |
8
.github/workflows/commit.yml
vendored
8
.github/workflows/commit.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Get Commit Ref
|
||||
run: |
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
find -type f -exec md5sum '{}' \;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
uses: actions/upload-artifact@v4.3.0
|
||||
with:
|
||||
name: RomWBW-${{env.COMMIT_REF}}-Linux
|
||||
path: .
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Get Commit Ref
|
||||
run: |
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
find . -type f -exec md5 -r -- '{}' +;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3.1.1
|
||||
uses: actions/upload-artifact@v4.3.0
|
||||
with:
|
||||
name: RomWBW-${{env.COMMIT_REF}}-MacOS
|
||||
path: .
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3.3.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
|
||||
@@ -2,6 +2,13 @@ Version 3.5
|
||||
-----------
|
||||
- M?F: Fix for hours display in HBRTC application
|
||||
- M?F: Fix for assembly error in DS1501RTC driver
|
||||
- WBW: Add VT-100 graphics char selection to Propeller firmware
|
||||
- WBW: Allow all lines of VGA display to be used on Propeller firmware
|
||||
- WBW: Allow front panel LED/Switch bits to be inverted in config
|
||||
- WBW: Add API to expose application banks available
|
||||
- WBW: Added console takeover at boot loader prompt
|
||||
- L?N: Fixed Propeller font vertical line character to align properly
|
||||
- L?S: EF9345 video display controller driver
|
||||
|
||||
Version 3.4
|
||||
-----------
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.5 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
12 Jan 2024
|
||||
07 Feb 2024
|
||||
|
||||
# Overview
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
12 Jan 2024
|
||||
07 Feb 2024
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -271,9 +271,9 @@ diskdef interak
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 256KB ROM (128KB reserved, 128KB ROM Disk)
|
||||
# RomWBW 128KB ROM Disk
|
||||
|
||||
diskdef wbw_rom256
|
||||
diskdef wbw_rom128
|
||||
seclen 512
|
||||
tracks 4
|
||||
sectrk 64
|
||||
@@ -284,35 +284,9 @@ diskdef wbw_rom256
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 512KB ROM (128KB reserved, 384KB ROM Disk)
|
||||
# RomWBW 256KB ROM Disk
|
||||
|
||||
diskdef wbw_rom512
|
||||
seclen 512
|
||||
tracks 12
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 1024KB ROM (128KB reserved, 896KB ROM Disk)
|
||||
|
||||
diskdef wbw_rom1024
|
||||
seclen 512
|
||||
tracks 28
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 512KB RAM (256KB reserved, 256KB RAM Disk)
|
||||
|
||||
diskdef wbw_ram512
|
||||
diskdef wbw_rom256
|
||||
seclen 512
|
||||
tracks 8
|
||||
sectrk 64
|
||||
@@ -323,11 +297,24 @@ diskdef wbw_ram512
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 1024KB RAM (256KB reserved, 768KB RAM Disk)
|
||||
# RomWBW 384KB ROM Disk
|
||||
|
||||
diskdef wbw_ram1024
|
||||
diskdef wbw_rom384
|
||||
seclen 512
|
||||
tracks 24
|
||||
tracks 12
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 896KB ROM Disk
|
||||
|
||||
diskdef wbw_rom896
|
||||
seclen 512
|
||||
tracks 28
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
|
||||
@@ -312,13 +312,13 @@ hardware into the proper mode, etc.
|
||||
## Invocation
|
||||
|
||||
HBIOS functions are invoked by placing the required parameters in CPU
|
||||
registers and executing an RST 08 instruction. Note that HBIOS does not
|
||||
registers and executing an `RST 08` instruction. Note that HBIOS does not
|
||||
preserve register values that are unused. However, the values of the Z80
|
||||
alternate registers and IX/IY will be preserved (these registers may be
|
||||
used within HBIOS, but will be saved and restored internally).
|
||||
|
||||
An alternate method of invoking HBIOS functions is to use `CALL 0xFFF0`.
|
||||
Since the RST 08 vector exists in page zero of the CPU address space,
|
||||
An alternate method of invoking HBIOS functions is to use `CALL $FFF0`.
|
||||
Since the `RST 08` vector exists in page zero of the CPU address space,
|
||||
it may be paged out when alternate memory banks are selected. If this
|
||||
may be true when you are invoking a function, you should use the `CALL`
|
||||
method.
|
||||
@@ -352,6 +352,12 @@ buffers) will require double-buffering if the caller’s buffer is in the
|
||||
lower 32K of CPU address space. For optimal performance, such buffers
|
||||
should be placed in the upper 32K of CPU address space.
|
||||
|
||||
HBIOS also implements a small number of core functions in the HBIOS
|
||||
proxy area at the top of RAM. These exist primarily to faciliate the
|
||||
operation of normal HBIOS function calls. However, they are available
|
||||
to be used by OSes and applications. These functions can only be
|
||||
invoked by calling into a jump table in upper RAM.
|
||||
|
||||
## Result Codes
|
||||
|
||||
The following function result codes are defined generically for all
|
||||
@@ -664,11 +670,10 @@ by this function. The function typically just records the sector
|
||||
address for subsequent I/O function calls.
|
||||
|
||||
The double-word Sector Address (DEHL) can represent either a Logical
|
||||
Block Address (LBA) or a Cylinder/Head/Sector (CHS). If the high bit of
|
||||
register D is set, then an LBA value is specified. Otherwise, the
|
||||
value is CHS.
|
||||
Block Address (LBA) or a Cylinder/Head/Sector (CHS). Bit 7 of D is
|
||||
set (1) for LBA mode and cleared (0) for CHS mode.
|
||||
|
||||
For LBA mode operation, the high bit is cleared and the entire
|
||||
For LBA mode operation, the high bit is set and the rest of the
|
||||
double-word is then treated as the logical sector address.
|
||||
|
||||
For CHS mode operation, the Sector Address (DEHL) registers are
|
||||
@@ -1976,10 +1981,25 @@ The hardware Platform (L) is identified as follows:
|
||||
| C: Bank ID | C: Prior Bank ID |
|
||||
|
||||
Activates the specified memory Bank ID (C) and returns the Prior Bank ID
|
||||
(C). The function **must** be invoked from code located in the upper
|
||||
(C).
|
||||
|
||||
The function **must** be invoked from code located in the upper
|
||||
32K and the stack **must** be in the upper 32K. The Status (A) is a
|
||||
standard HBIOS result code.
|
||||
|
||||
If the system is using interrupt mode 1 interrupts, the you **must**
|
||||
take steps to ensure interrupts are properly handled. You generally
|
||||
have two choices:
|
||||
|
||||
- Disable interrupts while the User Bank is switched out
|
||||
- Duplicate the interrupt mode 1 vector from the User Bank
|
||||
into the bank you are switching to.
|
||||
|
||||
If the User Bank has been switched out, you will not be able to
|
||||
invoke the HBIOS API functions using an `RST 08` instruction. You can
|
||||
use the alternative mechanism using `CALL $FFF0` as described in
|
||||
[Invocation].
|
||||
|
||||
### Function 0xF3 -- System Get Bank (SYSGETBNK)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
@@ -2349,6 +2369,38 @@ This function will return the current value of the switches (L) from the
|
||||
front panel of the system. If no front panel is available in the
|
||||
system, the returned Status (A) will indicate a No Hardware error.
|
||||
|
||||
#### SYSGET Subfunction 0xF5 -- Get Application Banks Information (APPBNKS)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| B: 0xF8 | A: Status |
|
||||
| C: 0xF5 | H: App Banks Start ID |
|
||||
| | L: App Banks Count |
|
||||
| | E: Bank Size |
|
||||
|
||||
HBIOS may be configured to reserve a number of RAM memory banks that
|
||||
will be available for application use. This function returns
|
||||
information about the RAM memory banks currently available for
|
||||
application use. The function provides the bank id of the first
|
||||
available application bank (H) and the count of banks available (L). It
|
||||
also returns the size of a bank expressed as a number of 256-byte pages
|
||||
(E). The returned Status (A) is a standard HBIOS result code.
|
||||
|
||||
The application banks are always a contiguous set of banks, so the App
|
||||
Banks Start ID can be incremented to address additional banks up to the
|
||||
limit indicated by App Banks Count. If the App Banks Count is zero,
|
||||
then there are no application banks available (regardless of the value
|
||||
of App Banks Start ID).
|
||||
|
||||
HBIOS does not provide any mechanism to reserve application banks. Any
|
||||
concept of allocation of application banks must be implemented within
|
||||
the OS or application.
|
||||
|
||||
This function does not change the current bank selected. You must use
|
||||
[Function 0xF2 -- System Set Bank (SYSSETBNK)] or the proxy function
|
||||
[Bank Select (BNKSEL)] for this. Be sure
|
||||
to observe the warnings in the description of this function.
|
||||
|
||||
### Function 0xF9 -- System Set (SYSSET)
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
@@ -2574,6 +2626,111 @@ provided.
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
## Proxy Functions
|
||||
|
||||
The following special functions are implemented inside of the HBIOS
|
||||
proxy area at the top of RAM. They do not cause a bank switch and are,
|
||||
therefore, much faster than their corresponding HBIOS API functions.
|
||||
|
||||
The functions are invoked via the following dedicated jump table:
|
||||
|
||||
| **Function** | **Address** | ** Equate ** |
|
||||
|----------------------------------------|---------------|------------------------|
|
||||
| Invoke HBIOS Function (INVOKE) | 0xFFF0 | HB_INVOKE |
|
||||
| Bank Select (BNKSEL) | 0xFFF3 | HB_BNKSEL |
|
||||
| Bank Copy (BNKCPY) | 0xFFF6 | HB_BNKCPY |
|
||||
| Bank Call (BNKCALL) | 0xFFF9 | HB_BNKCALL |
|
||||
|
||||
The function addresses are also defined as equates in hbios.inc. It
|
||||
is suggested that you use the equates when possible.
|
||||
|
||||
To use the functions, you may either call or jump to them. Some
|
||||
examples:
|
||||
|
||||
```
|
||||
CALL $FFF0
|
||||
JP $FFF3
|
||||
CALL HB_BNKCPY
|
||||
```
|
||||
|
||||
These functions are inherently dangerous and generally not value
|
||||
checked. Use with extreme caution.
|
||||
|
||||
### Invoke HBIOS Function (INVOKE)
|
||||
|
||||
**Address 0xFFF0**
|
||||
|
||||
This function is an alternate mechanism for invoking the normal HBIOS
|
||||
API functions. The parameters and return values are as documented
|
||||
above. To put it another way, `CALL $FFF0` is equivalent to `RST 08`,
|
||||
but it can be used in any scenario when the normal bank is not
|
||||
selected.
|
||||
|
||||
### Bank Select (BNKSEL)
|
||||
|
||||
**Address 0xFFF3**
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| A: Bank ID | |
|
||||
|
||||
This function will select the memory bank identified by Bank ID (A).
|
||||
Register AF is destroyed. All other registers are preserved.
|
||||
|
||||
The warnings described in [Function 0xF2 -- System Set Bank (SYSSETBNK)]
|
||||
should be observed.
|
||||
|
||||
### Bank Copy (BNKCPY)
|
||||
|
||||
**Address 0xFFF6**
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| HL: Source Address | HL: Ending Source Address |
|
||||
| DE: Destination Address | DE: Ending Destination Address |
|
||||
| BC: Count | BC: 0 |
|
||||
| HB_SRCBNK: Source Bank ID | |
|
||||
| HB_DSTBNK: Destination Bank ID | |
|
||||
|
||||
This function will copy Count (BC) bytes from Source Address (HL) in
|
||||
Source Bank ID (HB_SRCBNK) to Destination Address (DE) in Destination
|
||||
Bank ID (HB_DSTBNK). The HB_SRCBNK and HB_DSTBNK fields are dedicated
|
||||
locations in the proxy. These locations are defined in hbios.inc:
|
||||
|
||||
- Source Bank ID: `HB_SRCBNK` = $FFE4
|
||||
- Destination Bank ID: `HB_DSTBNK` = $FFE7
|
||||
|
||||
The Source Bank ID and Destination Bank ID values must be populated in
|
||||
the specified addresses before calling this function.
|
||||
|
||||
During processing, HL and DE, will be incremented. At termination,
|
||||
HL and DE will contain the "next" source/destination addresses that
|
||||
would be copied. This allows this function to be invoked repeatedly
|
||||
to copy continuous blocks of data.
|
||||
|
||||
Register AF is destroyed by this function. Register BC will be 0.
|
||||
|
||||
### Bank Call (BNKCALL)
|
||||
|
||||
**Address 0xFFF9**
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| A: Target Bank ID | |
|
||||
| IX: Target Address | |
|
||||
|
||||
This function will perform a function call to a routine in another
|
||||
bank. It does this by selecting the Target Bank ID (A) and then
|
||||
calling the Target Address (IX). On return from the target function,
|
||||
the originally active bank is selected.
|
||||
|
||||
Register usage is determined by the routine that is called.
|
||||
|
||||
Since a different bank will be selected while the target function is
|
||||
active, the warnings described in
|
||||
[Function 0xF2 -- System Set Bank (SYSSETBNK)] should be observed.
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
# Errors and diagnostics
|
||||
|
||||
|
||||
@@ -897,6 +897,31 @@ The use of diagnostic levels above 4 are really intended only for
|
||||
software developers. I do not recommend changing this under
|
||||
normal circumstances.
|
||||
|
||||
## Console Takeover
|
||||
|
||||
If your system has more than one character unit, then the Boot Loader
|
||||
will "poll" all of the character devices for a request to make any of
|
||||
the alternate character devices the active console. This is called a
|
||||
console takeover request. This functionality must be enabled in the ROM
|
||||
build configuration, but currently it is for all standard ROMs.
|
||||
|
||||
To request a console takeover, you just press the \<space\> character
|
||||
twice in a row at the port or terminal that you want to move the console
|
||||
to. The terminal or communication software **must** be configured for
|
||||
the default serial port speed and data bits for this to work.
|
||||
|
||||
A takeover request is only possible while the active console is
|
||||
showing the Boot Loader prompt prior to typing any characters at
|
||||
the active console. In other words, once you start typing at the
|
||||
active console prompt, the takeover polling is suspended. If you have
|
||||
started typing characters, you can press \<enter\> at the active
|
||||
console to get a fresh Boot Loader prompt and reactivate the polling.
|
||||
|
||||
If you have built a custom ROM that includes an automatic boot
|
||||
command with a timeout, then performing a console takeover will
|
||||
abort the timeout process and the automatic boot command will not be
|
||||
performed.
|
||||
|
||||
## Front Panel
|
||||
|
||||
RomWBW supports the concept of a simple front panel. The following
|
||||
@@ -924,7 +949,8 @@ output on the console. The meaning of the LEDs is:
|
||||
|
||||
Once the system has booted, the LEDs are used to indicate disk device
|
||||
activity. Each LED numbered 7-0 represents disk units 7-0. As each
|
||||
disk device performs I/O, the LED will light.
|
||||
disk device performs I/O, the LED will light while the disk is active.
|
||||
This is only possible for the first 8 disk units.
|
||||
|
||||
The second row of the front panel is composed of switches that allow
|
||||
you to control a few aspects of the system startup.
|
||||
@@ -1749,10 +1775,84 @@ with 6 slices containing 5 ready-to-run OSes and a slice with
|
||||
the WordStar application files. Alternatively, you can create your own
|
||||
hard disk image with the specific slice contents you choose.
|
||||
|
||||
#### Standard Hard Disk Physical Layout
|
||||
|
||||
As previously described in [Hard Disk Layouts], the exact placement of
|
||||
slices and optional FAT partition will vary depending on which disk
|
||||
layout (hd512 or hd1k) you are using and your partition table entries.
|
||||
To simplify the use of hard disk images, RomWBW has adopted standard
|
||||
partition table entries for disk image files provided.
|
||||
|
||||
These partition sizes and locations were chosen to:
|
||||
|
||||
- Fit entirely on 1GB media
|
||||
- Allow for 64 CP/M filesystem slices
|
||||
- Allow for a 384KB FAT filesystem
|
||||
|
||||
**NOTE:** RomWBW is not limited to these partition table entries. You
|
||||
can change the size and location of the RomWBW and/or FAT partitions to
|
||||
increase/decrease the number of slices or FAT filesystem size.
|
||||
|
||||
+---------------------------------+-------------------------------+-------------------------------+
|
||||
| | **--- Legacy (hd512) ---** | **--- Modern (hd1k) ---** |
|
||||
| +---------------+---------------+---------------+---------------+
|
||||
| | Byte(s) | Sector(s) | Byte(s) | Sector(s) |
|
||||
+=================================+==============:+==============:+==============:+==============:+
|
||||
| RomWBW (slices) Start | 0 | 0 | 1,048,576 | 2,048 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| RomWBW (slices) Size | 545,259,520 | 1,064,960 | 536,870,912 | 1,048,576 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| FAT Filesystem Start | 545,259,520 | 1,064,960 | 537,919,488 | 1,050,624 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| FAT Filesystem Size | 402,653,184 | 786,432 | 402,653,184 | 786,432 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| \<end\> | 947,912,704 | 1,851,392 | 940,572,672 | 1,837,056 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
|
||||
The above partition table entries will result in the following locations and sizes of
|
||||
filesystems on the RomWBW disk images.
|
||||
|
||||
|
||||
+---------------------------------+-------------------------------+-------------------------------+
|
||||
| | **--- Legacy (hd512) ---** | **--- Modern (hd1k) ---** |
|
||||
| +---------------+---------------+---------------+---------------+
|
||||
| | Byte(s) | Sector(s) | Byte(s) | Sector(s) |
|
||||
+=================================+==============:+==============:+==============:+==============:+
|
||||
| Prefix Start | -- | -- | 0 | 0 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Prefix Size | -- | -- | 1,048,576 | 2,048 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice Size | 8,519,680 | 16,640 | 8,388,608 | 16,384 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 0 Start | 0 | 0 | 1,048,576 | 2,048 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 1 Start | 8,519,680 | 16,640 | 9,437,184 | 18,432 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 2 Start | 17,039,360 | 33,280 | 17,825,792 | 34,816 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 3 Start | 25,559,040 | 49,920 | 26,214,400 | 51,200 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 4 Start | 34,078,720 | 66,560 | 34,603,008 | 67,584 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 5 Start | 42,598,400 | 83,200 | 42,991,616 | 83,968 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 6 Start | 51,118,080 | 99,840 | 51,380,224 | 100,352 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 7 Start | 59,637,760 | 116,480 | 59,768,832 | 116,736 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| Slice 63 Start | 536,739,840 | 1,048,320 | 529,530,880 | 1,034,240 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| FAT Filesystem Start | 545,259,520 | 1,064,960 | 537,919,488 | 1,050,624 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| FAT Filesystem Size | 402,653,184 | 786,432 | 402,653,184 | 786,432 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
| \<end\> | 947,912,704 | 1,851,392 | 940,572,672 | 1,837,056 |
|
||||
+---------------------------------+---------------+---------------+---------------+---------------+
|
||||
|
||||
#### Combo Hard Disk Image
|
||||
|
||||
The combo disk image is essentially just a single image that has several
|
||||
of the individual filesystem images (slices) already concatenated
|
||||
of the individual filesystem images (slices) already concatenated
|
||||
together. The combo disk image contains the following 6 slices in the
|
||||
positions indicated:
|
||||
|
||||
@@ -5558,6 +5658,7 @@ may be discovered by RomWBW in your system.
|
||||
| DS1501RTC | RTC | Maxim DS1501/DS1511 Watchdog Real-Time Clock |
|
||||
| DSRTC | RTC | Maxim DS1302 Real-Time Clock w/ NVRAM |
|
||||
| DUART | Char | SCC2681 or compatible Dual UART |
|
||||
| EF | Char | EF9345 Video Display Controller |
|
||||
| EMM | Disk | Disk drive on Parallel Port emm interface (Zip Drive) |
|
||||
| FD | Disk | 8272 or compatible Floppy Disk Controller |
|
||||
| FP | System | Simple LED & Switch Front Panel |
|
||||
|
||||
@@ -135,11 +135,11 @@ for %%f in (hbios_rom.bin osimg.bin osimg1.bin osimg2.bin) do (
|
||||
::
|
||||
|
||||
if %ROMSize% gtr 0 (
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin + ..\RomDsk\rom%ROMSize%_wbw.dat %ROMName%.rom || exit /b
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin + ..\RomDsk\rom%ROMDiskSize%_wbw.dat %ROMName%.rom || exit /b
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin %ROMName%.upd || exit /b
|
||||
copy /b hbios_app.bin + osimg_small.bin %ROMName%.com || exit /b
|
||||
) else (
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin + ..\RomDsk\ram%RAMSize%_wbw.dat %ROMName%.rom || exit /b
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin + ..\RomDsk\rom%RAMDiskSize%_wbw.dat %ROMName%.rom || exit /b
|
||||
copy /b hbios_rom.bin + osimg.bin + osimg1.bin + osimg2.bin %ROMName%.upd || exit /b
|
||||
copy /b hbios_app.bin + osimg_small.bin %ROMName%.com || exit /b
|
||||
)
|
||||
@@ -174,10 +174,10 @@ copy /b romldr.bin + dbgmon.bin + ..\zsdos\zsys_una.bin + ..\cpm22\cpm_una.bin o
|
||||
|
||||
:: Copy OS Bank and ROM Disk image files to output
|
||||
copy /b osimg.bin ..\..\Binary\UNA_WBW_SYS.bin || exit /b
|
||||
copy /b ..\RomDsk\rom%ROMSize%_una.dat ..\..\Binary\UNA_WBW_ROM%ROMSize%.bin || exit /b
|
||||
copy /b ..\RomDsk\rom%ROMDiskSize%_una.dat ..\..\Binary\UNA_WBW_ROM%ROMDiskSize%.bin || exit /b
|
||||
|
||||
:: Create the final ROM image
|
||||
copy /b ..\UBIOS\UNA-BIOS.BIN + osimg.bin + ..\UBIOS\FSFAT.BIN + ..\RomDsk\rom%ROMSize%_una.dat %ROMName%.rom || exit /b
|
||||
copy /b ..\UBIOS\UNA-BIOS.BIN + osimg.bin + ..\UBIOS\FSFAT.BIN + ..\RomDsk\rom%ROMDiskSize%_una.dat %ROMName%.rom || exit /b
|
||||
|
||||
:: Copy to output
|
||||
copy %ROMName%.rom ..\..\Binary || exit /b
|
||||
|
||||
@@ -115,4 +115,4 @@ fi
|
||||
|
||||
#echo OBJECTS=${OBJECTS}
|
||||
|
||||
make ROM_PLATFORM=${ROM_PLATFORM} ROM_CONFIG=${ROM_CONFIG} ROMSIZE=${ROMSIZE} RAMSIZE=${RAMSIZE}
|
||||
make ROM_PLATFORM=${ROM_PLATFORM} ROM_CONFIG=${ROM_CONFIG} ROMSIZE=${ROMSIZE} RAMSIZE=${RAMSIZE} ROMDISKSIZE=${ROMDISKSIZE} RAMDISKSIZE=${RAMDISKSIZE}
|
||||
|
||||
@@ -50,6 +50,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
;
|
||||
|
||||
@@ -50,6 +50,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -58,6 +58,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
;
|
||||
|
||||
@@ -49,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -49,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -54,6 +54,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -60,6 +60,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -60,6 +60,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -63,6 +63,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -62,6 +62,7 @@ TMSENABLE .SET TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_COLECO ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 1 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -59,6 +59,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -54,6 +54,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -47,6 +47,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -68,6 +68,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -48,6 +48,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -50,6 +50,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -50,6 +50,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -52,6 +52,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -53,6 +53,7 @@ TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -53,6 +53,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -74,15 +74,15 @@ $(OBJECTS) : $(ROMDEPS)
|
||||
fi
|
||||
if [ $(ROM_PLATFORM) = UNA ] ; then \
|
||||
cp osimg.bin $(DEST)/UNA_WBW_SYS.bin ; \
|
||||
cp ../RomDsk/rom$(ROMSIZE)_una.dat $(DEST)/UNA_WBW_ROM$(ROMSIZE).bin ; \
|
||||
cat ../UBIOS/UNA-BIOS.BIN osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$(ROMSIZE)_una.dat >$(ROMNAME).rom ; \
|
||||
cp ../RomDsk/rom$(ROMDISKSIZE)_una.dat $(DEST)/UNA_WBW_ROM$(ROMDISKSIZE).bin ; \
|
||||
cat ../UBIOS/UNA-BIOS.BIN osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$(ROMDISKSIZE)_una.dat >$(ROMNAME).rom ; \
|
||||
else \
|
||||
if [ $(ROMSIZE) -gt 0 ] ; then \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ../RomDsk/rom$(ROMSIZE)_wbw.dat >$(ROMNAME).rom ; \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ../RomDsk/rom$(ROMDISKSIZE)_wbw.dat >$(ROMNAME).rom ; \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin >$(ROMNAME).upd ; \
|
||||
cat hbios_app.bin osimg_small.bin > $(ROMNAME).com ; \
|
||||
else \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ../RomDsk/ram$(RAMSIZE)_wbw.dat >$(ROMNAME).rom ; \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin ../RomDsk/rom$(RAMDISKSIZE)_wbw.dat >$(ROMNAME).rom ; \
|
||||
cat hbios_rom.bin osimg.bin osimg1.bin osimg2.bin >$(ROMNAME).upd ; \
|
||||
cat hbios_app.bin osimg_small.bin > $(ROMNAME).com ; \
|
||||
fi \
|
||||
|
||||
@@ -9,7 +9,8 @@ DIST_OBJECTS := \
|
||||
# RCZ80_mt RCZ80_duart MON_std
|
||||
|
||||
OBJECTS := $(DIST_OBJECTS)
|
||||
OBJECTS := SBC_std MK4_std UNA_std S100_std
|
||||
# OBJECTS := SBC_std MK4_std UNA_std S100_std
|
||||
|
||||
OBJECTS := $(OBJECTS:=.rom) $(OBJECTS:=.com) $(OBJECTS:=.upd)
|
||||
OBJECTS := $(filter-out UNA_%.com UNA_%.upd,$(OBJECTS))
|
||||
|
||||
@@ -115,13 +116,13 @@ S100_%.imgpad2.bin: s100mon.bin
|
||||
|
||||
UNA_%.rom: UNA_%.osimg.bin UNA_%.hbios_env.sh
|
||||
. ./UNA_$(*F).hbios_env.sh ; \
|
||||
cat ../UBIOS/UNA-BIOS.BIN UNA_$(*F).osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$${ROMSIZE}_una.dat >$@ ; \
|
||||
cat ../UBIOS/UNA-BIOS.BIN UNA_$(*F).osimg.bin ../UBIOS/FSFAT.BIN ../RomDsk/rom$${ROMDISKSIZE}_una.dat >$@ ; \
|
||||
cp UNA_$(*F).osimg.bin $(DEST)/UNA_WBW_SYS.bin ; \
|
||||
cp ../RomDsk/rom$${ROMSIZE}_una.dat $(DEST)/UNA_WBW_ROM$${ROMSIZE}.bin
|
||||
cp ../RomDsk/rom$${ROMDISKSIZE}_una.dat $(DEST)/UNA_WBW_ROM$${ROMDISKSIZE}.bin
|
||||
|
||||
%.rom: %.hbios_rom.bin %.osimg.bin %.osimg1.bin %.imgpad2.bin %.hbios_env.sh
|
||||
. ./$(*F).hbios_env.sh ; \
|
||||
if [ $$ROMSIZE -gt 0 ] ; then RD="rom$$ROMSIZE" ; else RD="ram$$RAMSIZE" ; fi ; \
|
||||
if [ $$ROMSIZE -gt 0 ] ; then RD="rom$$ROMDISKSIZE" ; else RD="rom$$RAMDISKSIZE" ; fi ; \
|
||||
cat $(*F).hbios_rom.bin $(*F).osimg.bin $(*F).osimg1.bin $(*F).imgpad2.bin ../RomDsk/$${RD}_wbw.dat >$@
|
||||
|
||||
%.com: %.hbios_app.bin %.osimg_small.bin
|
||||
|
||||
@@ -22,6 +22,14 @@ ANSI_DEFCOLOR .EQU 7 ; WHITE ON BLACK
|
||||
; ANSI EMULATION MODULE
|
||||
;==================================================================================================
|
||||
;
|
||||
; PRE-CONSOLE INITIALIZATION
|
||||
;
|
||||
ANSI_PREINIT:
|
||||
OR $FF ; RESET THE VDA UNIT
|
||||
LD (ANSI_VDAUNIT),A ; ... TO INITIAL VALUE
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; INITIALIZATION OF EMULATION MODULE CALLED BY PARENT VDA DRIVER
|
||||
; ON ENTRY:
|
||||
; DE: DISPATCH ADDRESS OF CALLING VDA DRIVER
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_UNSUP ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPGSEL_0 .EQU $50 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $51 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -67,9 +69,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $42 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $42 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -170,6 +174,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -187,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
;
|
||||
@@ -70,9 +72,11 @@ DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU FALSE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -189,6 +193,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -192,6 +196,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -22,6 +22,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -31,6 +32,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -98,9 +100,11 @@ WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -238,6 +242,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_HILO ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_LOW ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -64,9 +66,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -167,6 +171,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
;
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -177,6 +181,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_MON ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
;
|
||||
RTCIO .EQU $C0 ; RTC LATCH REGISTER ADR
|
||||
@@ -64,9 +66,11 @@ WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -187,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
;
|
||||
@@ -71,9 +73,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -179,6 +183,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -75,9 +77,11 @@ DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -193,6 +197,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -197,6 +201,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -192,6 +196,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_RPH ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
;
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -168,6 +172,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_57600_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -187,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -64,9 +66,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -167,6 +171,7 @@ VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.AS
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
RAMBIAS .EQU ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -69,9 +71,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -187,6 +191,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -32,6 +32,10 @@ INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU 0 ; NOT SUPPORTED ON UNA
|
||||
;
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
MDRAM .EQU TRUE ; MD: ENABLE RAM DISK
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
;
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPGSEL_0 .EQU $60 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $61 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -67,9 +69,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -169,6 +173,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -56,9 +58,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -139,6 +143,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -25,6 +25,7 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
|
||||
AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
|
||||
;
|
||||
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
|
||||
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
|
||||
@@ -34,6 +35,7 @@ DEFSERCFG .EQU SER_38400_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
APP_BNKS .EQU $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING)
|
||||
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON]
|
||||
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
|
||||
@@ -67,9 +69,11 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_INV .EQU FALSE ; FP: LED BITS ARE INVERTED
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
FPSW_INV .EQU FALSE ; FP: SWITCH BITS ARE INVERTED
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
@@ -150,6 +154,7 @@ TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
SCONENABLE .EQU FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM)
|
||||
EFENABLE .EQU FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
|
||||
@@ -59,6 +59,7 @@ CVDU_COLS .EQU 80
|
||||
#ENDIF
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
KBDENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT
|
||||
;
|
||||
;======================================================================
|
||||
; CVDU DRIVER - INITIALIZATION
|
||||
|
||||
1083
Source/HBIOS/ef.asm
Normal file
1083
Source/HBIOS/ef.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -65,6 +65,7 @@ GDC_COLS .EQU 80
|
||||
.ECHO "\n"
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
KBDENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT
|
||||
;
|
||||
;======================================================================
|
||||
; GDC DRIVER - INITIALIZATION
|
||||
|
||||
@@ -95,11 +95,10 @@ MODCNT .SET MODCNT + 1
|
||||
#DEFINE ALIGN(N) .FILL ((($+(N-1)) & ~(N-1)) - $)
|
||||
;
|
||||
#IF (FPLED_ENABLE)
|
||||
#DEFINE DIAG(N) PUSH AF
|
||||
#DEFCONT \ LD A,N
|
||||
; #DEFCONT \ OUT (DIAGPORT),A
|
||||
#DEFINE DIAG(N) PUSH AF
|
||||
#DEFCONT \ LD A,N
|
||||
#DEFCONT \ CALL FP_SETLEDS
|
||||
#DEFCONT \ POP AF
|
||||
#DEFCONT \ POP AF
|
||||
#ELSE
|
||||
#DEFINE DIAG(N) \;
|
||||
#ENDIF
|
||||
@@ -132,30 +131,30 @@ MODCNT .SET MODCNT + 1
|
||||
#ENDIF
|
||||
;
|
||||
#DEFINE SYSCHKERR(HB_ERR) \
|
||||
#DEFCONT \ CALL SYSCHKA
|
||||
#DEFCONT \ LD A,HB_ERR
|
||||
#DEFCONT \ OR A
|
||||
#DEFCONT \ CALL SYSCHKA
|
||||
#DEFCONT \ LD A,HB_ERR
|
||||
#DEFCONT \ OR A
|
||||
;
|
||||
;
|
||||
;
|
||||
#IF (INTMODE == 0)
|
||||
; NO INTERRUPT HANDLING
|
||||
#DEFINE HB_DI ;
|
||||
#DEFINE HB_EI ;
|
||||
; NO INTERRUPT HANDLING
|
||||
#DEFINE HB_DI ;
|
||||
#DEFINE HB_EI ;
|
||||
#ELSE
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
#IF (INTMODE == 3)
|
||||
; Z280 MODE 3 INTERRUPT HANDLING (INTA, C/T 0, & UART RCVR ENABLED)
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI $0B
|
||||
; Z280 MODE 3 INTERRUPT HANDLING (INTA, C/T 0, & UART RCVR ENABLED)
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI $0B
|
||||
#ELSE
|
||||
; Z280 MODE 1/2 INTERRUPT HANDLING
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI
|
||||
; Z280 MODE 1/2 INTERRUPT HANDLING
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI
|
||||
#ENDIF
|
||||
#ELSE
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI
|
||||
#DEFINE HB_DI DI
|
||||
#DEFINE HB_EI EI
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
@@ -335,6 +334,8 @@ CB_BIDRAMD0 .DB BID_RAMD0
|
||||
CB_RAMD_BNKS .DB RAMD_BNKS
|
||||
CB_BIDROMD0 .DB BID_ROMD0
|
||||
CB_ROMD_BNKS .DB ROMD_BNKS
|
||||
CB_BIDAPP0 .DB BID_APP0
|
||||
CB_APP_BNKS .DB APP_BNKS
|
||||
;
|
||||
.FILL (HCB + HCB_SIZ - $),0 ; PAD REMAINDER OF HCB
|
||||
;
|
||||
@@ -439,7 +440,7 @@ HBX_INVSP .EQU $ - 2
|
||||
;
|
||||
;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
;; BNKSEL - Switch Memory Bank to Bank in A.
|
||||
;; Preserve all Registers including Flags.
|
||||
;; AF is destroyed, all other registers are preserved.
|
||||
;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
;
|
||||
HBX_BNKSEL:
|
||||
@@ -1181,6 +1182,9 @@ BOOTWAIT:
|
||||
#IF (FPLED_ENABLE)
|
||||
; NO STACK YET, SO CAN'T USE DIAG() MACRO
|
||||
LD A,DIAG_01
|
||||
#IF (FPLED_INV)
|
||||
XOR $FF ; INVERT BITS IF NEEDED
|
||||
#ENDIF
|
||||
OUT (FPLED_IO),A
|
||||
#ENDIF
|
||||
#IF (LEDENABLE)
|
||||
@@ -1391,6 +1395,9 @@ Z280_INITZ:
|
||||
#IF (FPLED_ENABLE)
|
||||
; NO STACK YET, SO CAN'T USE DIAG() MACRO
|
||||
LD A,DIAG_02
|
||||
#IF (FPLED_INV)
|
||||
XOR $FF ; INVERT BITS IF NEEDED
|
||||
#ENDIF
|
||||
OUT (FPLED_IO),A
|
||||
#ENDIF
|
||||
|
||||
@@ -3250,9 +3257,8 @@ HB_PCINITTBL:
|
||||
#IF (TMSENABLE)
|
||||
.DW TMS_PREINIT
|
||||
#ENDIF
|
||||
#IF (SCONENABLE)
|
||||
.DW SCON_PREINIT
|
||||
#ENDIF
|
||||
.DW TERM_PREINIT ; ALWAYS DO THIS ONE
|
||||
;
|
||||
HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2)
|
||||
|
||||
;==================================================================================================
|
||||
@@ -3358,8 +3364,8 @@ HB_INITTBL:
|
||||
#IF (TMSENABLE)
|
||||
.DW TMS_INIT
|
||||
#ENDIF
|
||||
#IF (SCONENABLE)
|
||||
.DW SCON_INIT
|
||||
#IF (EFENABLE)
|
||||
.DW EF_INIT
|
||||
#ENDIF
|
||||
#IF (VRCENABLE)
|
||||
.DW VRC_INIT
|
||||
@@ -3403,6 +3409,9 @@ HB_INITTBL:
|
||||
#IF (PPPENABLE)
|
||||
.DW PPP_INIT
|
||||
#ENDIF
|
||||
#IF (SCONENABLE)
|
||||
.DW SCON_INIT
|
||||
#ENDIF
|
||||
#IF (CHENABLE)
|
||||
.DW CH_INIT
|
||||
#ENDIF
|
||||
@@ -4417,6 +4426,8 @@ SYS_GET:
|
||||
JP Z,SYS_GETCPUSPD
|
||||
CP BF_SYSGET_PANEL
|
||||
JP Z,SYS_GETPANEL
|
||||
CP BF_SYSGET_APPBNKS
|
||||
JP Z,SYS_GETAPPBNKS
|
||||
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
|
||||
RET
|
||||
;
|
||||
@@ -4626,6 +4637,8 @@ SYS_GETMEMINFO:
|
||||
; RETURNS:
|
||||
; D: HBIOS BANK ID
|
||||
; E: USER BANK ID
|
||||
; H: FIRST APP BANK ID
|
||||
; L: APP BANK COUNT
|
||||
;
|
||||
SYS_GETBNKINFO:
|
||||
LD A,(CB_BIDBIOS)
|
||||
@@ -4730,6 +4743,22 @@ SYS_GETPANEL1: ; HANDLE NON-EXISTENT FRONT PANEL
|
||||
OR A ; SET FLAGS
|
||||
RET ; DONE
|
||||
;
|
||||
; GET APPLICATION BANK INFORMATION
|
||||
; RETURNS:
|
||||
; H: FIRST APP BANK ID
|
||||
; L: APP BANK COUNT
|
||||
; E: BANK SIZE (IN 256-BYTE PAGES)
|
||||
;
|
||||
SYS_GETAPPBNKS:
|
||||
LD A,(CB_BIDAPP0) ; FIRST BANK ID
|
||||
LD H,A
|
||||
LD A,(CB_APP_BNKS) ; NUMBER OF BANKS
|
||||
LD L,A
|
||||
LD E,$80 ; (256 * $80) = 32KB
|
||||
;
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; SET SYSTEM PARAMETERS
|
||||
; PARAMETER(S) TO SET INDICATED IN C
|
||||
;
|
||||
@@ -6431,12 +6460,12 @@ SIZ_TMS .EQU $ - ORG_TMS
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SCONENABLE)
|
||||
ORG_SCON .EQU $
|
||||
#INCLUDE "scon.asm"
|
||||
SIZ_SCON .EQU $ - ORG_SCON
|
||||
.ECHO "SCON occupies "
|
||||
.ECHO SIZ_SCON
|
||||
#IF (EFENABLE)
|
||||
ORG_EF .EQU $
|
||||
#INCLUDE "ef.asm"
|
||||
SIZ_EF .EQU $ - ORG_EF
|
||||
.ECHO "EF occupies "
|
||||
.ECHO SIZ_EF
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
@@ -6528,7 +6557,7 @@ SIZ_FONTS .EQU $ - ORG_FONTS
|
||||
.ECHO SIZ_FONTS
|
||||
.ECHO " bytes.\n"
|
||||
;
|
||||
#IF (CVDUENABLE | VGAENABLE | GDCENABLE | VRCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC))))
|
||||
#IF (KBDENABLE)
|
||||
ORG_KBD .EQU $
|
||||
#INCLUDE "kbd.asm"
|
||||
SIZ_KBD .EQU $ - ORG_KBD
|
||||
@@ -6537,7 +6566,7 @@ SIZ_KBD .EQU $ - ORG_KBD
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (VDUENABLE | (TMSENABLE & (TMSMODE == TMSMODE_N8)))
|
||||
#IF (PPKENABLE)
|
||||
ORG_PPK .EQU $
|
||||
#INCLUDE "ppk.asm"
|
||||
SIZ_PPK .EQU $ - ORG_PPK
|
||||
@@ -6573,6 +6602,15 @@ SIZ_PPP .EQU $ - ORG_PPP
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SCONENABLE)
|
||||
ORG_SCON .EQU $
|
||||
#INCLUDE "scon.asm"
|
||||
SIZ_SCON .EQU $ - ORG_SCON
|
||||
.ECHO "SCON occupies "
|
||||
.ECHO SIZ_SCON
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CHENABLE)
|
||||
ORG_CH .EQU $
|
||||
#INCLUDE "ch.asm"
|
||||
@@ -6681,14 +6719,13 @@ SIZ_SYQ .EQU $ - ORG_SYQ
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (TERMENABLE)
|
||||
; TERM IS ALWAYS INCLUDED
|
||||
ORG_TERM .EQU $
|
||||
#INCLUDE "term.asm"
|
||||
SIZ_TERM .EQU $ - ORG_TERM
|
||||
.ECHO "TERM occupies "
|
||||
.ECHO SIZ_TERM
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
;#IF (SPKENABLE & DSRTCENABLE)
|
||||
#IF (SPKENABLE)
|
||||
@@ -6760,7 +6797,7 @@ SIZ_YM2612 .EQU $ - ORG_YM2612
|
||||
;
|
||||
; INCLUDE LZSA2 decompression engine if required.
|
||||
;
|
||||
#IF ((VGAENABLE | CVDUENABLE | TMSENABLE | GDCENABLE | VRCENABLE) & USELZSA2)
|
||||
#IF ((CVDUENABLE | GDCENABLE | TMSENABLE | VGAENABLE | VRCENABLE) & USELZSA2)
|
||||
#INCLUDE "unlzsa2s.asm"
|
||||
#ENDIF
|
||||
;
|
||||
@@ -6826,6 +6863,9 @@ FP_SETLEDS:
|
||||
OR A ; SET FLAGS
|
||||
LD A,L ; RESTORE REG A
|
||||
JR Z,FP_SETLEDS1 ; BAIL OUT IF NOT ACTIVE
|
||||
#IF (FPLED_INV)
|
||||
XOR $FF ; INVERT BITS IF NEEDED
|
||||
#ENDIF
|
||||
OUT (FPLED_IO),A ; WRITE
|
||||
FP_SETLEDS1:
|
||||
POP HL ; RESTORE HL
|
||||
@@ -6843,6 +6883,9 @@ FP_GETSWITCHES:
|
||||
OR A ; SET FLAGS
|
||||
RET Z ; BAIL OUT IF NOT ACTIVE
|
||||
IN A,(FPSW_IO) ; READ SWITCHES
|
||||
#IF (FPSW_INV)
|
||||
XOR $FF ; INVERT BITS IF NEEDED
|
||||
#ENDIF
|
||||
RET ; DONE
|
||||
;
|
||||
;
|
||||
|
||||
@@ -120,6 +120,7 @@ BF_SYSGET_MEMINFO .EQU $F1 ; GET MEMORY CAPACTITY INFO
|
||||
BF_SYSGET_BNKINFO .EQU $F2 ; GET BANK ASSIGNMENT INFO
|
||||
BF_SYSGET_CPUSPD .EQU $F3 ; GET CLOCK SPEED & WAIT STATES
|
||||
BF_SYSGET_PANEL .EQU $F4 ; GET FRONT PANEL SWITCHES VAL
|
||||
BF_SYSGET_APPBNKS .EQU $F5 ; GET APP BANK INFORMATION
|
||||
;
|
||||
BF_SYSSET_TIMER .EQU $D0 ; SET TIMER VALUE
|
||||
BF_SYSSET_SECS .EQU $D1 ; SET SECONDS VALUE
|
||||
@@ -319,6 +320,7 @@ CIODEV_LPT .EQU $0B
|
||||
CIODEV_ESPCON .EQU $0C
|
||||
CIODEV_ESPSER .EQU $0D
|
||||
CIODEV_SCON .EQU $0E
|
||||
CIODEV_EF .EQU $0F
|
||||
;
|
||||
; SUB TYPES OF CHAR DEVICES
|
||||
;
|
||||
@@ -368,6 +370,7 @@ VDADEV_GDC .EQU $02 ; GRAPHICS DISPLAY CTLR - UPD7220
|
||||
VDADEV_TMS .EQU $03 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918
|
||||
VDADEV_VGA .EQU $04 ; ECB VGA3 - HITACHI HD6445
|
||||
VDADEV_VRC .EQU $05 ; VGARC
|
||||
VDADEV_EF .EQU $06 ; EF9345
|
||||
;
|
||||
; SOUND DEVICE IDS
|
||||
;
|
||||
@@ -440,6 +443,8 @@ HCB_BIDRAMD0 .EQU $DC ; FIRST BANK OF RAM DRIVE
|
||||
HCB_RAMD_BNKS .EQU $DD ; RAM DRIVE BANK COUNT
|
||||
HCB_BIDROMD0 .EQU $DE ; FIRST BANK OF ROM DRIVE
|
||||
HCB_ROMD_BNKS .EQU $DF ; ROM DRIVE BANK COUNT
|
||||
HCB_BIDAPP0 .EQU $E0 ; FIRST BANK OF APP RAM BANKS
|
||||
HCB_APP_BNKS .EQU $E1 ; APP BANK COUNT
|
||||
;
|
||||
; HBIOS PROXY COMMON DATA BLOCK
|
||||
; EXACTLY 32 BYTES AT $FFE0-$FFFF
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
prtval("CPUFAM$", CPUFAM)
|
||||
prtval("ROMSIZE$", ROMSIZE)
|
||||
prtval("RAMSIZE$", RAMSIZE)
|
||||
prtval("ROMDISKSIZE$", ROMD_BNKS * 32)
|
||||
prtval("RAMDISKSIZE$", RAMD_BNKS * 32)
|
||||
;
|
||||
ret
|
||||
;
|
||||
|
||||
@@ -250,7 +250,7 @@ PPP_FWVER .DB $00, $00, $00, $00 ; MMNNBBB (M=MAJOR, N=MINOR, B=BUILD)
|
||||
; PARPORTPROP CONSOLE DRIVER
|
||||
;==================================================================================================
|
||||
;
|
||||
PPPCON_ROWS .EQU 37 ; PROPELLER VGA DISPLAY ROWS (40 - 3 STATUS LINES)
|
||||
PPPCON_ROWS .EQU 29 ; PROPELLER VGA DISPLAY ROWS (30 - 1 STATUS LINES)
|
||||
PPPCON_COLS .EQU 80 ; PROPELLER VGA DISPLAY COLS
|
||||
;
|
||||
.ECHO "PPPCON: ENABLED\n"
|
||||
|
||||
@@ -121,7 +121,7 @@ PRPCON_ERR .EQU $40 ; BIT SET WHEN PROPIO CONSOLE ERROR HAS OCCURRED
|
||||
PRPCON_KBDRDY .EQU $20 ; BIT SET WHEN KEYBOARD BUF HAS A BYTE READY (BUF FULL)
|
||||
PRPCON_DSPRDY .EQU $10 ; BIT SET WHEN DISPLAY BUF IS READY FOR A BYTE (BUF EMPTY)
|
||||
;
|
||||
PRPCON_ROWS .EQU 37 ; PROPELLER VGA DISPLAY ROWS (40 - 3 STATUS LINES)
|
||||
PRPCON_ROWS .EQU 29 ; PROPELLER VGA DISPLAY ROWS (30 - 1 STATUS LINES)
|
||||
PRPCON_COLS .EQU 80 ; PROPELLER VGA DISPLAY COLS
|
||||
;
|
||||
.ECHO "PRPCON: ENABLED\n"
|
||||
|
||||
@@ -175,6 +175,21 @@ start1:
|
||||
#endif
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
; Get the current console unit
|
||||
ld b,BF_SYSPEEK ; HBIOS func: POKE
|
||||
ld d,BID_BIOS ; BIOS bank
|
||||
ld hl,HCB_LOC + HCB_CONDEV ; Con unit num in HCB
|
||||
rst 08 ; do it
|
||||
ld a,e ; put in A
|
||||
ld (curcon),a ; save it
|
||||
;
|
||||
; Get character unit count
|
||||
ld b,BF_SYSGET ; HBIOS func: SYS GET
|
||||
ld c,BF_SYSGET_CIOCNT ; HBIOS subfunc: CIO unit count
|
||||
rst 08 ; E := unit count
|
||||
ld a,e ; put in A
|
||||
ld (ciocnt),a ; save it
|
||||
;
|
||||
; Check for DSKY and set flag
|
||||
ld b,BF_SYSGET ; HBIOS func: get
|
||||
ld c,BF_SYSGET_DSKYCNT ; get DSKY count
|
||||
@@ -250,6 +265,22 @@ prompt:
|
||||
call dsky_beep
|
||||
call dsky_l2on
|
||||
#endif
|
||||
;
|
||||
; purge any garbage on the line
|
||||
call delay ; wait for prompt to be sent
|
||||
ld b,0 ; failsafe max iterations
|
||||
purge:
|
||||
call cst ; anything there?
|
||||
jr z,wtkey ; if not, move on
|
||||
call cin ; read and discard
|
||||
djnz purge ; and loop till no more
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if (AUTOCON)
|
||||
or $ff ; initial value
|
||||
ld (conpend),a ; ... for conpoll routine
|
||||
#endif
|
||||
#endif
|
||||
;
|
||||
wtkey:
|
||||
; wait for a key or timeout
|
||||
@@ -261,6 +292,13 @@ wtkey:
|
||||
jp nz,dskycmd ; if pending, do DSKY command
|
||||
#endif
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if (AUTOCON)
|
||||
call conpoll ; poll for console takeover
|
||||
jp nz,docon ; if requested, takeover
|
||||
#endif
|
||||
#endif
|
||||
;
|
||||
#if (BOOT_TIMEOUT != -1)
|
||||
; check for timeout and handle auto boot here
|
||||
ld a,(acmd_act) ; get auto cmd active flag
|
||||
@@ -293,6 +331,69 @@ clrbuf1:
|
||||
ret
|
||||
;
|
||||
;=======================================================================
|
||||
; Poll character units for console takeover request
|
||||
;=======================================================================
|
||||
;
|
||||
; Poll all character units in system for a console takeover request.
|
||||
; A takeover request consists of pressing the <space> twice in a row.
|
||||
; at the character unit that wants to be the console. Return with ZF
|
||||
; set if a console takeover was requested. If so, the requested console
|
||||
; unit will be recorded in (newcon).
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if (AUTOCON)
|
||||
;
|
||||
conpoll:
|
||||
; save active console unit
|
||||
ld a,(curcon)
|
||||
ld e,a ; save in E
|
||||
;
|
||||
; loop through all char ports
|
||||
ld a,(ciocnt) ; count of char units
|
||||
ld b,a ; use for loop counter
|
||||
ld c,0 ; init unit num
|
||||
;
|
||||
conpoll1:
|
||||
ld a,c ; next char unit to test
|
||||
cp e ; is this the active console?
|
||||
jr z,conpoll2 ; if so, don't test, move on
|
||||
ld (curcon),a ; make it current port
|
||||
call cst ; char waiting?
|
||||
jr z,conpoll2 ; if no char, move on
|
||||
call cin ; get char
|
||||
cp ' ' ; space char?
|
||||
jr nz,conpoll2 ; if not, move on
|
||||
;
|
||||
; a <space> char was typed. check to see if we just saw a
|
||||
; <space> from this same unit.
|
||||
ld a,(conpend) ; pending con unit to A
|
||||
cp c ; compare to active unit
|
||||
jr z,conpoll3 ; if =, second <space>, take con
|
||||
ld a,c ; if not, unit to A
|
||||
ld (conpend),a ; and update pending console
|
||||
;
|
||||
conpoll2:
|
||||
inc c ; next char unit
|
||||
djnz conpoll1 ; loop till done
|
||||
xor a ; ret w/ Z for no takeover
|
||||
jr conpoll4 ; all done, no takeover
|
||||
;
|
||||
conpoll3:
|
||||
; record a new console request
|
||||
ld a,(curcon) ; record the unit
|
||||
ld (newcon),a ; ... as new console
|
||||
or $ff ; ret w/ NZ for new con req
|
||||
;
|
||||
conpoll4:
|
||||
; restore active console and exit
|
||||
ld a,e ; restore active
|
||||
ld (curcon),a ; ... console
|
||||
ret ; done, NZ if new con request
|
||||
;
|
||||
#endif
|
||||
#endif
|
||||
;
|
||||
;=======================================================================
|
||||
; Process a command line from buffer
|
||||
;=======================================================================
|
||||
;
|
||||
@@ -625,14 +726,8 @@ setcon:
|
||||
jp c,err_nocon ; handle overflow error
|
||||
;
|
||||
; Check against max char unit
|
||||
push de
|
||||
push af ; save requested unit
|
||||
ld b,BF_SYSGET ; HBIOS func: SYS GET
|
||||
ld c,BF_SYSGET_CIOCNT ; HBIOS subfunc: CIO unit count
|
||||
rst 08 ; E := unit count
|
||||
pop af ; restore requested unit
|
||||
cp e ; compare
|
||||
pop de
|
||||
ld hl,ciocnt
|
||||
cp (hl)
|
||||
jp nc,err_nocon ; handle invalid unit
|
||||
ld (newcon),a ; save validated console
|
||||
;
|
||||
@@ -716,6 +811,7 @@ docon: ld hl,str_newcon ; new console msg
|
||||
call prtdecb ; print unit num
|
||||
;
|
||||
; Set console unit
|
||||
ld (curcon),a ; update loader console unit
|
||||
ld b,BF_SYSPOKE ; HBIOS func: POKE
|
||||
ld d,BID_BIOS ; BIOS bank
|
||||
ld e,a ; Char unit value
|
||||
@@ -1383,8 +1479,6 @@ str_s100con .db "\r\n\r\nConsole on S100 Bus",0
|
||||
clrled:
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if (FPLED_ENABLE)
|
||||
;xor a ; zero accum
|
||||
;out (FPLED_IO),a ; clear diag leds
|
||||
ld b,BF_SYSSET ; HBIOS SysGet
|
||||
ld c,BF_SYSSET_PANEL ; ... Panel swiches value
|
||||
ld l,$00 ; all LEDs off
|
||||
@@ -1866,7 +1960,8 @@ cout:
|
||||
;
|
||||
; Output character to console via HBIOS
|
||||
ld e,a ; output char to E
|
||||
ld c,CIO_CONSOLE ; console unit to C
|
||||
ld a,(curcon) ; get current console
|
||||
ld c,a ; console unit to C
|
||||
ld b,BF_CIOOUT ; HBIOS func: output char
|
||||
rst 08 ; HBIOS outputs character
|
||||
;
|
||||
@@ -1886,7 +1981,8 @@ cin:
|
||||
push hl
|
||||
;
|
||||
; Input character from console via hbios
|
||||
ld c,CIO_CONSOLE ; console unit to c
|
||||
ld a,(curcon) ; get current console
|
||||
ld c,a ; console unit to C
|
||||
ld b,BF_CIOIN ; HBIOS func: input char
|
||||
rst 08 ; HBIOS reads character
|
||||
ld a,e ; move character to A for return
|
||||
@@ -1906,7 +2002,8 @@ cst:
|
||||
push hl
|
||||
;
|
||||
; Get console input status via HBIOS
|
||||
ld c,CIO_CONSOLE ; console unit to C
|
||||
ld a,(curcon) ; get current console
|
||||
ld c,a ; console unit to C
|
||||
ld b,BF_CIOIST ; HBIOS func: input status
|
||||
rst 08 ; HBIOS returns status in A
|
||||
;
|
||||
@@ -2419,6 +2516,14 @@ loadcnt .db 0 ; num disk sectors to load
|
||||
switches .db 0 ; front panel switches
|
||||
diskcnt .db 0 ; disk unit count value
|
||||
dskyact .db 0 ; DSKY active if != 0
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
curcon .db CIO_CONSOLE ; current console unit
|
||||
ciocnt .db 1 ; count of char units
|
||||
savcon .db 0 ; con save for conpoll
|
||||
conpend .db $ff ; pending con unit (first <space> pressed)
|
||||
#endif
|
||||
|
||||
;
|
||||
;=======================================================================
|
||||
; Pad remainder of ROM Loader
|
||||
|
||||
@@ -22,12 +22,6 @@ SCON_ROWS .EQU 40
|
||||
;
|
||||
;
|
||||
;
|
||||
SCON_PREINIT:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
SCON_INIT:
|
||||
CALL NEWLINE
|
||||
PRTS("SCON:$")
|
||||
|
||||
@@ -460,15 +460,22 @@ SER_7372800_8N2 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP2
|
||||
;
|
||||
TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL AUTO-ENABLE IF A VDA IS ENABLED
|
||||
;
|
||||
; THE FOLLOWING CONTROL INCLUSION OF THE KEYBOARD DRIVERS. THEY ARE
|
||||
; SET TO TRUE IN THE VDA DRIVERS AS NEEDED.
|
||||
;
|
||||
KBDENABLE .EQU FALSE ; PS/2 KEYBOARD DRIVER
|
||||
PPKENABLE .EQU FALSE ; PPK KEYBOARD DRIVER
|
||||
;
|
||||
; VIDEO MODES
|
||||
;
|
||||
V80X24 .EQU 0 ; ECB-VDU
|
||||
V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3
|
||||
V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3, EF9345
|
||||
V80X30 .EQU 2 ; ECB-VDU, ECB-VGA3
|
||||
V80X25B .EQU 3 ; ECB-VDU
|
||||
V80X24B .EQU 4 ; ECB-VDU
|
||||
V80X43 .EQU 5 ; ECB-VGA3
|
||||
V80X60 .EQU 6 ; ECB-VGA3
|
||||
V40X24 .EQU 7 ; EF9345
|
||||
;
|
||||
; KEYBOARD LAYOUTS
|
||||
;
|
||||
@@ -699,6 +706,83 @@ BID_RAM0 .EQU $80
|
||||
BID_ROMN .EQU (BID_ROM0 + ROMBANKS - 1)
|
||||
BID_RAMN .EQU (BID_RAM0 + RAMBANKS - 1)
|
||||
;
|
||||
#IF (BIOS == BIOS_WBW)
|
||||
;
|
||||
#IF (ROMSIZE > 0)
|
||||
ROM_BNKS_RSVD .EQU 4
|
||||
RAM_BNKS_RSVD .EQU 5
|
||||
#ELSE
|
||||
ROM_BNKS_RSVD .EQU 0
|
||||
RAM_BNKS_RSVD .EQU 8
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
#IF (BIOS == BIOS_UNA)
|
||||
ROM_BNKS_RSVD .EQU 4
|
||||
RAM_BNKS_RSVD .EQU 4 ; NEED TO CONFIRM THIS!!!
|
||||
#ENDIF
|
||||
;
|
||||
; APPLICATION MEMORY BANKS
|
||||
;
|
||||
#IF (APP_BNKS == $FF)
|
||||
APP_BNKS .SET 0 ; 0K
|
||||
#IF ((RAMBANKS - RAM_BNKS_RSVD) > $08)
|
||||
APP_BNKS .SET 3 ; 96K
|
||||
#ENDIF
|
||||
#IF ((RAMBANKS - RAM_BNKS_RSVD) > $18)
|
||||
APP_BNKS .SET 11 ; 353KB
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
; ROM/RAM MEMORY BANKS
|
||||
;
|
||||
#IF (BIOS == BIOS_WBW)
|
||||
;
|
||||
ROMD_BNKS .EQU ROMBANKS - ROM_BNKS_RSVD
|
||||
RAMD_BNKS .EQU RAMBANKS - APP_BNKS - RAM_BNKS_RSVD
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (BIOS == BIOS_UNA)
|
||||
;
|
||||
ROMD_BNKS .EQU ROMBANKS - 4
|
||||
RAMD_BNKS .EQU RAMBANKS - 4
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
; ADJUSTMENTS FOR ROMLESS SYSTEMS
|
||||
;
|
||||
#IF (ROMSIZE == 0)
|
||||
;
|
||||
; WE NEED TO NORMALIZE THE SIZE OF THE RAM DISK TO FIT
|
||||
; ONE OF THE STANDARD ROM DISK IMAGES
|
||||
;
|
||||
#IF (RAMD_BNKS < 4)
|
||||
RAMD_BNKS .SET 0 ; 0KB RAM DISK
|
||||
#ENDIF
|
||||
#IF ((RAMD_BNKS >= 4) & (RAMD_BNKS < 8))
|
||||
RAMD_BNKS .SET 4 ; 128KB RAM DISK
|
||||
#ENDIF
|
||||
#IF ((RAMD_BNKS >= 8) & (RAMD_BNKS < 12))
|
||||
RAMD_BNKS .SET 8 ; 256KB RAM DISK
|
||||
#ENDIF
|
||||
#IF ((RAMD_BNKS >= 12) & (RAMD_BNKS < 28))
|
||||
RAMD_BNKS .SET 12 ; 384KB RAM DISK
|
||||
#ENDIF
|
||||
#IF (RAMD_BNKS >= 28)
|
||||
RAMD_BNKS .SET 28 ; 896KB RAM DISK
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((!MDRAM) | (RAMD_BNKS <= 0))
|
||||
RAMD_BNKS .SET 0
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((!MDROM) | (ROMD_BNKS <= 0))
|
||||
ROMD_BNKS .SET 0
|
||||
#ENDIF
|
||||
;
|
||||
#IF (ROMSIZE > 0)
|
||||
;
|
||||
; NORMAL SYSTEM WITH ROM & RAM
|
||||
@@ -708,11 +792,9 @@ BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x01
|
||||
BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK 0x02
|
||||
BID_IMG2 .EQU BID_ROM0 + 3 ; RESERVED 0x03
|
||||
BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK 0x04
|
||||
BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK 0x0F
|
||||
;
|
||||
BID_BIOS .EQU BID_RAM0 ; HBIOS BANK 0x80
|
||||
BID_BIOS .EQU BID_RAM0 + 0 ; HBIOS BANK 0x80
|
||||
BID_RAMD0 .EQU BID_RAM0 + 1 ; FIRST RAM DRIVE BANK 0x81
|
||||
BID_RAMDN .EQU BID_RAMN - 4 ; LAST RAM DRIVE BANK 0x8B
|
||||
BID_APP0 .EQU BID_RAMD0 + RAMD_BNKS ; FIRST APP BANK 0x89
|
||||
BID_BUF .EQU BID_RAMN - 3 ; OS BUFFERS (CP/M3) 0x8C
|
||||
BID_AUX .EQU BID_RAMN - 2 ; AUX BANK (CP/M 3, BPBIOS, ETC.) 0x8D
|
||||
BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) 0x8E
|
||||
@@ -728,7 +810,7 @@ BID_IMG0 .EQU BID_RAM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x81
|
||||
BID_IMG1 .EQU BID_RAM0 + 2 ; SECOND IMAGES BANK 0x82
|
||||
BID_IMG2 .EQU BID_RAM0 + 3 ; RESERVED 0x83
|
||||
BID_RAMD0 .EQU BID_RAM0 + 4 ; FIRST RAM DRIVE BANK 0x84
|
||||
BID_RAMDN .EQU BID_RAMN - 4 ; LAST RAM DRIVE BANK 0x8B
|
||||
BID_APP0 .EQU BID_RAMD0 + RAMD_BNKS ; FIRST APP BANK 0x89
|
||||
BID_BUF .EQU BID_RAMN - 3 ; OS BUFFERS (CP/M3) 0x8C
|
||||
BID_AUX .EQU BID_RAMN - 2 ; AUX BANK (CP/M 3, BPBIOS, ETC.) 0x8D
|
||||
BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) 0x8E
|
||||
@@ -736,47 +818,44 @@ BID_COM .EQU BID_RAMN - 0 ; COMMON BANK, UPPER 32K 0x8F
|
||||
;
|
||||
BID_BIOS .EQU BID_BOOT ; HBIOS BANK 0x80
|
||||
BID_ROMD0 .EQU 0 ; NO ROM DRIVE
|
||||
BID_ROMDN .EQU $FF ; NO ROM DRIVE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (BIOS == BIOS_WBW)
|
||||
APP_BNKS .SET BID_BUF - BID_APP0
|
||||
;
|
||||
#IF (!MDRAM)
|
||||
BID_RAMD0 .SET $FF ; RAM DRIVE DISABLED
|
||||
BID_RAMDN .SET 0 ; RAM DRIVE DISABLED
|
||||
#ENDIF
|
||||
BID_RAMDN .EQU BID_RAMD0 + RAMD_BNKS - 1 ; LAST RAM DRIVE BANK
|
||||
BID_ROMDN .EQU BID_ROMD0 + ROMD_BNKS - 1 ; LAST ROM DRIVE BANK
|
||||
BID_APPN .EQU BID_APP0 + APP_BNKS - 1 ; LAST APP BANK
|
||||
;
|
||||
#IF (!MDROM)
|
||||
BID_ROMD0 .SET $FF ; ROM DRIVE DISABLED
|
||||
BID_ROMDN .SET 0 ; ROM DRIVE DISABLED
|
||||
#ENDIF
|
||||
;
|
||||
ROMD_BNKS .EQU (BID_ROMDN - BID_ROMD0 + 1)
|
||||
RAMD_BNKS .EQU (BID_RAMDN - BID_RAMD0 + 1)
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF FALSE
|
||||
.ECHO "--- RAM/ROM CAPACITY ---\n"
|
||||
.ECHO "BID_ROM0: " \ .ECHO BID_ROM0 \ .ECHO "\n"
|
||||
.ECHO "BID_ROMN: " \ .ECHO BID_ROMN \ .ECHO "\n"
|
||||
.ECHO "BID_RAM0: " \ .ECHO BID_RAM0 \ .ECHO "\n"
|
||||
.ECHO "BID_RAMN: " \ .ECHO BID_RAMN \ .ECHO "\n"
|
||||
.ECHO "--- BANK LAYOUT ---\n"
|
||||
.ECHO "BID_BOOT: " \ .ECHO BID_BOOT \ .ECHO "\n"
|
||||
.ECHO "BID_IMG0: " \ .ECHO BID_IMG0 \ .ECHO "\n"
|
||||
.ECHO "BID_IMG1: " \ .ECHO BID_IMG1 \ .ECHO "\n"
|
||||
.ECHO "BID_IMG2: " \ .ECHO BID_IMG2 \ .ECHO "\n"
|
||||
#IF TRUE
|
||||
.ECHO "------------- CAPACITY -----------------\n"
|
||||
.ECHO "ROMBANKS: " \ .ECHO ROMBANKS \ .ECHO "\n"
|
||||
.ECHO "RAMBANKS: " \ .ECHO RAMBANKS \ .ECHO "\n"
|
||||
.ECHO "ROMD_BNKS: " \ .ECHO ROMD_BNKS \ .ECHO "\n"
|
||||
.ECHO "RAMD_BNKS: " \ .ECHO RAMD_BNKS \ .ECHO "\n"
|
||||
.ECHO "APP_BNKS: " \ .ECHO APP_BNKS \ .ECHO "\n"
|
||||
.ECHO "----------- MEMORY LAYOUT --------------\n"
|
||||
.ECHO "BID_ROM0: " \ .ECHO BID_ROM0 \ .ECHO "\n"
|
||||
.ECHO "BID_ROMN: " \ .ECHO BID_ROMN \ .ECHO "\n"
|
||||
.ECHO "BID_RAM0: " \ .ECHO BID_RAM0 \ .ECHO "\n"
|
||||
.ECHO "BID_RAMN: " \ .ECHO BID_RAMN \ .ECHO "\n"
|
||||
.ECHO "------------- BANK LAYOUT --------------\n"
|
||||
.ECHO "BID_BOOT: " \ .ECHO BID_BOOT \ .ECHO "\n"
|
||||
.ECHO "BID_IMG0: " \ .ECHO BID_IMG0 \ .ECHO "\n"
|
||||
.ECHO "BID_IMG1: " \ .ECHO BID_IMG1 \ .ECHO "\n"
|
||||
.ECHO "BID_IMG2: " \ .ECHO BID_IMG2 \ .ECHO "\n"
|
||||
.ECHO "BID_ROMD0: " \ .ECHO BID_ROMD0 \ .ECHO "\n"
|
||||
.ECHO "BID_ROMDN: " \ .ECHO BID_ROMDN \ .ECHO "\n"
|
||||
.ECHO "BID_BIOS: " \ .ECHO BID_BIOS \ .ECHO "\n"
|
||||
.ECHO "BID_BIOS: " \ .ECHO BID_BIOS \ .ECHO "\n"
|
||||
.ECHO "BID_RAMD0: " \ .ECHO BID_RAMD0 \ .ECHO "\n"
|
||||
.ECHO "BID_RAMDN: " \ .ECHO BID_RAMDN \ .ECHO "\n"
|
||||
.ECHO "BID_BUF: " \ .ECHO BID_BUF \ .ECHO "\n"
|
||||
.ECHO "BID_AUX: " \ .ECHO BID_AUX \ .ECHO "\n"
|
||||
.ECHO "BID_USR: " \ .ECHO BID_USR \ .ECHO "\n"
|
||||
.ECHO "BID_COM: " \ .ECHO BID_COM \ .ECHO "\n"
|
||||
.ECHO "BID_APP0: " \ .ECHO BID_APP0 \ .ECHO "\n"
|
||||
.ECHO "BID_APPN: " \ .ECHO BID_APPN \ .ECHO "\n"
|
||||
.ECHO "BID_BUF: " \ .ECHO BID_BUF \ .ECHO "\n"
|
||||
.ECHO "BID_AUX: " \ .ECHO BID_AUX \ .ECHO "\n"
|
||||
.ECHO "BID_USR: " \ .ECHO BID_USR \ .ECHO "\n"
|
||||
.ECHO "BID_COM: " \ .ECHO BID_COM \ .ECHO "\n"
|
||||
.ECHO "----------------------------------------\n"
|
||||
#ENDIF
|
||||
;
|
||||
; MEMORY LAYOUT
|
||||
|
||||
@@ -16,6 +16,22 @@
|
||||
;
|
||||
;
|
||||
;======================================================================
|
||||
; TERMINAL DRIVER - PRE-CONSOLE INITIALIZATION
|
||||
;======================================================================
|
||||
;
|
||||
; GIVE EMULATION MODULES A CHANCE TO RESET THEMSELVES AT STARTUP
|
||||
;
|
||||
TERM_PREINIT:
|
||||
#IF (TERMENABLE)
|
||||
XOR A ; ZERO TO ACCUM
|
||||
LD (TERM_DEVCNT),A ; INITIALIZE DEVCNT
|
||||
CALL TTY_PREINIT ; DO TTY PREINIT
|
||||
CALL ANSI_PREINIT ; DO ANSI PREINIT
|
||||
#ENDIF
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; DONE
|
||||
;
|
||||
;======================================================================
|
||||
; TERMINAL DRIVER - ATTACH
|
||||
;======================================================================
|
||||
;
|
||||
@@ -31,6 +47,8 @@
|
||||
; DE: VDA DRIVER'S DISPATCH ADDRESS
|
||||
; HL: VDA DRIVER'S INSTANCE DATA
|
||||
;
|
||||
#IF (TERMENABLE)
|
||||
;
|
||||
TERM_ATTACH:
|
||||
;
|
||||
LD A,(TERM_DEVCNT) ; GET NEXT DEVICE NUMBER TO USE
|
||||
@@ -40,12 +58,12 @@ TERM_ATTACH:
|
||||
; SETUP EMULATOR MODULE FUNC TBL ADDRESS BASED ON DESIRED EMULATION
|
||||
; EMULATOR PASSES BACK IT'S FUNC TBL ADDRESS IN DE
|
||||
OR $FF ; PRESET FAILURE
|
||||
#IF (VDAEMU == EMUTYP_TTY)
|
||||
#IF (VDAEMU == EMUTYP_TTY)
|
||||
CALL TTY_INIT ; INIT TTY, DE := TTY_FNTBL
|
||||
#ENDIF
|
||||
#IF (VDAEMU == EMUTYP_ANSI)
|
||||
#ENDIF
|
||||
#IF (VDAEMU == EMUTYP_ANSI)
|
||||
CALL ANSI_INIT ; INIT ANSI, DE := ANSI_FNTBL
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
POP HL ; RECOVER VDA INSTANCE DATA PTR
|
||||
RET NZ ; BAIL OUT ON ERROR
|
||||
;
|
||||
@@ -74,5 +92,7 @@ TERM_DEVCNT .DB 0 ; TERMINAL DEVICE COUNT
|
||||
; EMULATION MODULES
|
||||
;======================================================================
|
||||
;
|
||||
#INCLUDE "tty.asm"
|
||||
#INCLUDE "ansi.asm"
|
||||
#INCLUDE "tty.asm"
|
||||
#INCLUDE "ansi.asm"
|
||||
;
|
||||
#ENDIF
|
||||
@@ -140,6 +140,14 @@ TMS_COLS .EQU 40
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
;
|
||||
#IF (TMSMODE == TMSMODE_N8)
|
||||
PPKENABLE .SET TRUE ; INCLUDE PPK KEYBOARD SUPPORT
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC))
|
||||
PPKENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT
|
||||
#ENDIF
|
||||
;
|
||||
; TMS_IODELAY IS USED TO ADD RECOVERY TIME TO TMS9918/V9958 ACCESSES
|
||||
; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!!
|
||||
;
|
||||
|
||||
@@ -6,6 +6,14 @@
|
||||
; TODO:
|
||||
; - SOME FUNCTIONS ARE NOT IMPLEMENTED!!!
|
||||
;
|
||||
; PRE-CONSOLE INITIALIZATION
|
||||
;
|
||||
TTY_PREINIT:
|
||||
OR $FF ; RESET THE VDA UNIT
|
||||
LD (TTY_VDAUNIT),A ; ... TO INITIAL VALUE
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; INITIALIZATION OF EMULATION MODULE CALLED BY PARENT VDA DRIVER
|
||||
; ON ENTRY:
|
||||
; C: CIO UNIT NUMBER OF CALLING VDA DRIVER
|
||||
|
||||
@@ -45,6 +45,7 @@ VDU_CSTY .EQU VDU_BLOK ; DEFAULT CURSOR STYLE
|
||||
VDU_BLNK .EQU VDU_NOBL ; DEFAULT BLINK RATE
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
PPKENABLE .SET TRUE ; INCLUDE PPK KEYBOARD SUPPORT
|
||||
;
|
||||
#IF (VDUSIZ=V80X24)
|
||||
DLINES .EQU 24
|
||||
|
||||
@@ -90,6 +90,7 @@ VGA_R11 .EQU VGA_SCANL-1
|
||||
#DEFINE DEFREGS REGS_VGA
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
KBDENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT
|
||||
;
|
||||
; DRIVER UTILIZES THE MULTIPLE DISPLAY WINDOW FEATURE OF THE CRTC TO ACCOMPLISH
|
||||
; FULL SCREEN SCROLLING WITHOUT THE NEED TO MOVE DISPLAY RAM BYTES.
|
||||
|
||||
@@ -25,6 +25,7 @@ VRC_COLS .EQU 64
|
||||
#DEFINE VRC_FONT FONTVGARC
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
KBDENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT
|
||||
;
|
||||
.ECHO "VRC: IO="
|
||||
.ECHO VRC_BASE
|
||||
|
||||
@@ -51,8 +51,10 @@ done to create a minimal ready-to-run setup for RomWBW:
|
||||
- Extract VT100 TCAP from Z3TCAP.LBR and saved it as TCAP.Z3T.
|
||||
- Created PROFILE.SUB to launch NZCOM at startup.
|
||||
- Created empty STARTZCM.COM.
|
||||
- TCSELECT.COM was removed because a later version is provided
|
||||
- Original TCSELECT.COM was removed and replaced with a newer version
|
||||
from the Z3 files.
|
||||
- TCAP.LBR and Z3TCAP.TCP were removed and replaced with
|
||||
Z3TCAP.LBR from new TCSELECT distribution.
|
||||
- Z3LOC.COM and LBREXT.COM were removed because more recent
|
||||
versions are provided from Common files.
|
||||
- Replaced ZRDOS with ZSDOS in NZCOM.LBR. The standalone
|
||||
@@ -318,4 +320,4 @@ in this user area for more information.
|
||||
N.B., at a minimum, some of the files in this user area must be copied
|
||||
to user area 0 for CP/NET to work properly.
|
||||
|
||||
-- WBW 3:20 PM 8/27/2021
|
||||
-- WBW 11:19 AM 1/22/2024
|
||||
Binary file not shown.
Binary file not shown.
@@ -271,9 +271,9 @@ diskdef interak
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 256KB ROM (128KB reserved, 128KB ROM Disk)
|
||||
# RomWBW 128KB ROM Disk
|
||||
|
||||
diskdef wbw_rom256
|
||||
diskdef wbw_rom128
|
||||
seclen 512
|
||||
tracks 4
|
||||
sectrk 64
|
||||
@@ -284,35 +284,9 @@ diskdef wbw_rom256
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 512KB ROM (128KB reserved, 384KB ROM Disk)
|
||||
# RomWBW 256KB ROM Disk
|
||||
|
||||
diskdef wbw_rom512
|
||||
seclen 512
|
||||
tracks 12
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 1024KB ROM (128KB reserved, 896KB ROM Disk)
|
||||
|
||||
diskdef wbw_rom1024
|
||||
seclen 512
|
||||
tracks 28
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 512KB RAM (256KB reserved, 256KB RAM Disk)
|
||||
|
||||
diskdef wbw_ram512
|
||||
diskdef wbw_rom256
|
||||
seclen 512
|
||||
tracks 8
|
||||
sectrk 64
|
||||
@@ -323,11 +297,24 @@ diskdef wbw_ram512
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 1024KB RAM (256KB reserved, 768KB RAM Disk)
|
||||
# RomWBW 384KB ROM Disk
|
||||
|
||||
diskdef wbw_ram1024
|
||||
diskdef wbw_rom384
|
||||
seclen 512
|
||||
tracks 24
|
||||
tracks 12
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
skew 0
|
||||
boottrk 0
|
||||
os 2.2
|
||||
end
|
||||
|
||||
# RomWBW 896KB ROM Disk
|
||||
|
||||
diskdef wbw_rom896
|
||||
seclen 512
|
||||
tracks 28
|
||||
sectrk 64
|
||||
blocksize 2048
|
||||
maxdir 256
|
||||
|
||||
@@ -15,11 +15,11 @@ CON
|
||||
cols = 80 ' screen columns
|
||||
rows = 30 ' screen rows
|
||||
chars = rows * cols ' screen characters
|
||||
termRows = 25 ' rows in terminal area
|
||||
termRows = rows - 1 ' rows in terminal area
|
||||
termChars = termRows * cols ' characters in terminal area
|
||||
termLastRow = termChars - cols ' buffer pos of first char in last term row
|
||||
statArea = termChars ' starting position of status area
|
||||
statRows = rows - TermRows ' status area rows
|
||||
statRows = 1 ' status area rows
|
||||
blank = $20
|
||||
|
||||
spkVol = 75
|
||||
@@ -46,6 +46,7 @@ VAR
|
||||
long vgaBasePin
|
||||
word curAttr ' active attribute value
|
||||
word bold, underscore, blink, reverse, fg, bg
|
||||
word alt ' alt char set active
|
||||
|
||||
|
||||
DAT
|
||||
@@ -81,6 +82,7 @@ PUB start(BasePin) | i, char
|
||||
reverse := 0
|
||||
fg := 0
|
||||
bg := 0
|
||||
alt := 0
|
||||
setMode(0) ' reset attributes
|
||||
|
||||
PUB vidOn
|
||||
@@ -174,6 +176,10 @@ PRI clsTerm
|
||||
|
||||
PRI outc(c)
|
||||
|
||||
if (alt == 1)
|
||||
if ((c => $5F) and (c < $7F))
|
||||
c := c - $5F
|
||||
|
||||
screen[pos++] := (curAttr | c)
|
||||
lastc := c
|
||||
|
||||
@@ -400,11 +406,11 @@ PRI ansi(c) | x, defVal
|
||||
x += cols
|
||||
|
||||
"K":
|
||||
if arg0 == -1
|
||||
if ((arg0 == -1) or (arg0 == 0))
|
||||
clEOL(pos)
|
||||
elseif arg0 == 1
|
||||
elseif (arg0 == 1)
|
||||
clBOL(pos)
|
||||
else
|
||||
elseif (arg0 == 2)
|
||||
clEOL(pos - (pos // cols))
|
||||
|
||||
"L":
|
||||
@@ -563,6 +569,11 @@ PUB processChar(c)
|
||||
return
|
||||
|
||||
5: ' Set character set (not implemented)
|
||||
if (c == "0")
|
||||
alt := 1
|
||||
if (c == "B")
|
||||
alt := 0
|
||||
|
||||
state := 0
|
||||
return
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
************************************
|
||||
* ParPortProp for RomWBW *
|
||||
* Interface to RBC ParPortProp *
|
||||
* Version 0.97 *
|
||||
* May 9, 2020 *
|
||||
* Version 0.98 *
|
||||
* January 20, 2024 *
|
||||
************************************
|
||||
|
||||
Wayne Warthen
|
||||
@@ -30,24 +30,24 @@
|
||||
|
||||
2018-03-11 WBW: Implement character attributes
|
||||
2020-05-09 WBW: Switch monitor refresh to 60Hz
|
||||
2024-01-20 WBW: Add graphics char selection to AnsiTerm
|
||||
|
||||
}}
|
||||
|
||||
CON
|
||||
VERSION = (((0 << 8) + 97) << 16) + 0
|
||||
VERSION = (((0 << 8) + 98) << 16) + 0
|
||||
|
||||
_CLKMODE = XTAL1 + PLL16X
|
||||
_XINFREQ = 5_000_000
|
||||
|
||||
|
||||
'SLEEP = 60 * 5 ' Screen saver timeout in seconds
|
||||
SLEEP = 0 ' Zero for no screen saver
|
||||
|
||||
VGA_BASE = 16 ' VGA Video pins 16-23 (??)
|
||||
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
|
||||
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS)
|
||||
|
||||
STAT_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
STAT_ATTR = %01110000_00000000 ' Status area screen attribute
|
||||
|
||||
STAT_ATTR = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
|
||||
PPI_CMD = $0100 ' pin 8, PC0, active ???
|
||||
PPI_STB = $0200 ' pin 9, PC4, active low
|
||||
@@ -143,19 +143,16 @@ PUB main | tmp
|
||||
dsp.cls
|
||||
MsgNewLine
|
||||
|
||||
dsp.VidOn
|
||||
dsp.vidOn
|
||||
|
||||
statRows := (dsp.statInfo >> 8) & $FF
|
||||
statCols := dsp.statInfo & $FF
|
||||
|
||||
dsp.statFill(0, 0, STAT_ATTR, $20, statRows * statCols)
|
||||
dsp.statFill(0, 0, STAT_ATTR1, $20, statCols)
|
||||
|
||||
dsp.statStr(0, 1, STAT_ATTR1, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR1, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR1, @strVer)
|
||||
|
||||
'dsp.statStr(2, (statCols - 20) / 2, STAT_ATTR, string("<<< Message Area >>>"))
|
||||
dsp.statStr(0, 1, STAT_ATTR, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR, @strVer)
|
||||
|
||||
MsgStr(string("Initializing ParPortProp..."))
|
||||
|
||||
@@ -221,7 +218,7 @@ PUB main | tmp
|
||||
else
|
||||
MsgStr(string(" OK"))
|
||||
MsgNewLine
|
||||
|
||||
|
||||
dsp.beep
|
||||
|
||||
MsgStr(string("ParPortProp Ready!"))
|
||||
@@ -610,7 +607,7 @@ PRI Activity
|
||||
|
||||
DAT
|
||||
|
||||
strVer byte "F/W v0.97",0
|
||||
strVer byte "F/W v0.98",0
|
||||
strHW byte "ParPortProp",0
|
||||
strROM byte "RomWBW",0
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
*******************************
|
||||
* PropIO for RomWBW *
|
||||
* Interface to RBC PropIO *
|
||||
* Version 0.97 *
|
||||
* May 9, 2020 *
|
||||
*******************************
|
||||
* Version 0.98 *
|
||||
* January 20, 2024 *
|
||||
*********************************
|
||||
|
||||
Wayne Warthen
|
||||
wwarthen@gmail.com
|
||||
@@ -35,11 +35,12 @@
|
||||
2015-11-15 WBW: Added SD card capacity reporting
|
||||
2018-03-11 WBW: Implement character attributes
|
||||
2020-05-09 WBW: Switch monitor refresh to 60Hz
|
||||
2024-01-20 WBW: Add graphics char selection to AnsiTerm
|
||||
|
||||
}}
|
||||
|
||||
CON
|
||||
VERSION = (((0 << 8) + 97) << 16) + 0
|
||||
VERSION = (((0 << 8) + 98) << 16) + 0
|
||||
|
||||
_CLKMODE = XTAL1 + PLL16X
|
||||
_XINFREQ = 5_000_000
|
||||
@@ -50,9 +51,8 @@ CON
|
||||
VGA_BASE = 16 ' VGA Video pins 16-23 (??)
|
||||
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
|
||||
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS)
|
||||
|
||||
STAT_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
STAT_ATTR = %01110000_00000000 ' Status area screen attribute
|
||||
|
||||
STAT_ATTR = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
|
||||
DSKCMD_NOP = $00
|
||||
DSKCMD_STATUS = $01
|
||||
@@ -78,10 +78,7 @@ CON
|
||||
|
||||
TRMST_ACTMASK = (TRMST_KBDACT | TRMST_DSPACT) ' bit mask for kbd or dsp active
|
||||
|
||||
|
||||
|
||||
OBJ
|
||||
'dsp : "VGA_1024" ' VGA Terminal Driver
|
||||
dsp : "AnsiTerm" ' VGA Terminal Driver
|
||||
kbd : "Keyboard" ' PS/2 Keyboard Driver
|
||||
sdc : "safe_spi" ' SD Card Driver
|
||||
@@ -101,7 +98,7 @@ VAR
|
||||
long TimerCount
|
||||
long DiskResult
|
||||
long CardType
|
||||
|
||||
|
||||
byte statRows
|
||||
byte statCols
|
||||
|
||||
@@ -122,20 +119,17 @@ PUB main
|
||||
dsp.cls
|
||||
MsgNewLine
|
||||
|
||||
dsp.VidOn
|
||||
dsp.vidOn
|
||||
|
||||
statRows := (dsp.statInfo >> 8) & $FF
|
||||
statCols := dsp.statInfo & $FF
|
||||
|
||||
dsp.statFill(0, 0, STAT_ATTR, $20, statRows * statCols)
|
||||
dsp.statFill(0, 0, STAT_ATTR1, $20, statCols)
|
||||
|
||||
dsp.statStr(0, 1, STAT_ATTR1, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR1, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR1, @strVer)
|
||||
dsp.statStr(0, 1, STAT_ATTR, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR, @strVer)
|
||||
|
||||
'dsp.statStr(2, (statCols - 20) / 2, STAT_ATTR, string("<<< Message Area >>>"))
|
||||
|
||||
MsgStr(string("Initializing PropIO..."))
|
||||
|
||||
TermStatKbdAdr := @TermStatKbd
|
||||
@@ -185,10 +179,12 @@ PUB main
|
||||
else
|
||||
MsgStr(string(" OK"))
|
||||
MsgNewLine
|
||||
|
||||
dsp.beep
|
||||
|
||||
MsgStr(string("PropIO Ready!"))
|
||||
MsgNewLine
|
||||
|
||||
|
||||
repeat
|
||||
if (DiskStat & DSKST_ACT)
|
||||
ProcessDiskCmd
|
||||
@@ -315,13 +311,13 @@ PRI Timer
|
||||
waitcnt(clkfreq * 1 + cnt)
|
||||
if (TimerCount > 0)
|
||||
if (TimerCount == 1)
|
||||
dsp.VidOff
|
||||
dsp.vidOff
|
||||
TimerCount--
|
||||
|
||||
PRI Activity
|
||||
if (SLEEP > 0)
|
||||
if (TimerCount == 0)
|
||||
dsp.VidOn
|
||||
dsp.vidOn
|
||||
TimerCount := SLEEP
|
||||
|
||||
{
|
||||
@@ -338,18 +334,18 @@ PRI DumpBuffer(Buffer) | i, j
|
||||
|
||||
DAT
|
||||
|
||||
strVer byte "F/W v0.97",0
|
||||
strVer byte "F/W v0.98",0
|
||||
strHW byte "PropIO",0
|
||||
strROM byte "RomWBW",0
|
||||
|
||||
{{ Ports
|
||||
|
||||
|
||||
+------/WAIT
|
||||
|+-----/RD
|
||||
+------ CLR
|
||||
|+----- /RD
|
||||
||+---- A1
|
||||
|||+--- A0
|
||||
||||+--/CS
|
||||
||||+-- /CS
|
||||
|||||
|
||||
|||||
|
||||
P15..P0 --> xxxxxxxx_xxxxxxxx
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
*********************************
|
||||
* PropIO 2 for RomWBW *
|
||||
* Interface to RBC PropIO 2 *
|
||||
* Version 0.97 *
|
||||
* May 9, 2020 *
|
||||
* Version 0.98 *
|
||||
* January 20, 2024 *
|
||||
*********************************
|
||||
|
||||
Wayne Warthen
|
||||
@@ -35,11 +35,12 @@
|
||||
2015-11-15 WBW: Added SD card capacity reporting
|
||||
2018-03-11 WBW: Implement character attributes
|
||||
2020-05-09 WBW: Switch monitor refresh to 60Hz
|
||||
2024-01-20 WBW: Add graphics char selection to AnsiTerm
|
||||
|
||||
}}
|
||||
|
||||
CON
|
||||
VERSION = (((0 << 8) + 97) << 16) + 0
|
||||
VERSION = (((0 << 8) + 98) << 16) + 0
|
||||
|
||||
_CLKMODE = XTAL1 + PLL16X
|
||||
_XINFREQ = 5_000_000
|
||||
@@ -51,8 +52,7 @@ CON
|
||||
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
|
||||
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS)
|
||||
|
||||
STAT_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
STAT_ATTR = %01110000_00000000 ' Status area screen attribute
|
||||
STAT_ATTR = %00110000_00000000 ' Status area screen attribute (first line)
|
||||
|
||||
DSKCMD_NOP = $00
|
||||
DSKCMD_STATUS = $01
|
||||
@@ -79,7 +79,6 @@ CON
|
||||
TRMST_ACTMASK = (TRMST_KBDACT | TRMST_DSPACT) ' bit mask for kbd or dsp active
|
||||
|
||||
OBJ
|
||||
'dsp : "VGA_1024" ' VGA Terminal Driver
|
||||
dsp : "AnsiTerm" ' VGA Terminal Driver
|
||||
kbd : "Keyboard" ' PS/2 Keyboard Driver
|
||||
sdc : "safe_spi" ' SD Card Driver
|
||||
@@ -126,14 +125,11 @@ PUB main
|
||||
statCols := dsp.statInfo & $FF
|
||||
|
||||
dsp.statFill(0, 0, STAT_ATTR, $20, statRows * statCols)
|
||||
dsp.statFill(0, 0, STAT_ATTR1, $20, statCols)
|
||||
|
||||
dsp.statStr(0, 1, STAT_ATTR1, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR1, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR1, @strVer)
|
||||
dsp.statStr(0, 1, STAT_ATTR, @strROM)
|
||||
dsp.statStr(0, (statCols - strsize(@strHW)) / 2, STAT_ATTR, @strHW)
|
||||
dsp.statStr(0, (statCols - strsize(@strVer) - 1), STAT_ATTR, @strVer)
|
||||
|
||||
'dsp.statStr(2, (statCols - 20) / 2, STAT_ATTR, string("<<< Message Area >>>"))
|
||||
|
||||
MsgStr(string("Initializing PropIO..."))
|
||||
|
||||
TermStatKbdAdr := @TermStatKbd
|
||||
@@ -188,7 +184,7 @@ PUB main
|
||||
|
||||
MsgStr(string("PropIO Ready!"))
|
||||
MsgNewLine
|
||||
|
||||
|
||||
repeat
|
||||
if (DiskStat & DSKST_ACT)
|
||||
ProcessDiskCmd
|
||||
@@ -338,7 +334,7 @@ PRI DumpBuffer(Buffer) | i, j
|
||||
|
||||
DAT
|
||||
|
||||
strVer byte "F/W v0.97",0
|
||||
strVer byte "F/W v0.98",0
|
||||
strHW byte "PropIO v2",0
|
||||
strROM byte "RomWBW",0
|
||||
|
||||
|
||||
@@ -1,702 +0,0 @@
|
||||
'' VGA_1024.spin
|
||||
''
|
||||
'' MODIFIED BY VINCE BRIEL FOR POCKETERM FEATURES
|
||||
'' MODIIFED BY JEFF LEDGER / AKA OLDBITCOLLECTOR
|
||||
''
|
||||
|
||||
CON
|
||||
cols = 80 '128 ' number of screen columns
|
||||
lcols = cols / 4 ' number of long in columns
|
||||
rows = 40 '64 ' number of screen rows
|
||||
chars = rows*cols ' number of screen characters
|
||||
esc = $CB ' keyboard esc char
|
||||
rowsnow = 36 ' adjusted for split screen effect
|
||||
maxChars = rowsnow*cols ' adjusted value for split screen effect
|
||||
lastChar = maxChars / 4 ' last screen position in longs adjusted for split
|
||||
lastLine = (rowsnow - 1) * cols ' character position of last row
|
||||
cols1 = 81 ' adjusted value for 80th character
|
||||
TURQUOISE = $29
|
||||
|
||||
OBJ
|
||||
vga : "vga_Hires_Text"
|
||||
|
||||
VAR
|
||||
byte screen[chars] ' screen character buffer
|
||||
byte tmpl[cols] ' temporary line buffer
|
||||
word colors[rows] ' color specs for each screen row (see ColorPtr description above)
|
||||
byte cursor[6] ' cursor info array (see CursorPtr description above)
|
||||
long sync, loc, xloc, yloc ' sync used by VGA routine, others are local screen pointers
|
||||
long kbdreq ' global val of kbdflag
|
||||
long BR[8]
|
||||
long Brate
|
||||
byte inverse
|
||||
byte invs
|
||||
byte state ' Current state of state machine
|
||||
word pos ' Current Position on the screen
|
||||
word oldpos ' Previous location of cursor before update
|
||||
word regionTop, regionBot ' Scroll region top/bottom
|
||||
long arg0 ' First argument of escape sequence
|
||||
long arg1 ' Second argument of escape sequence
|
||||
byte lastc ' Last displayed char
|
||||
word statpos
|
||||
long vgabasepin
|
||||
|
||||
PUB start(BasePin) | i, char
|
||||
vgabasepin := BasePin
|
||||
|
||||
''init screen colors to gold on blue
|
||||
repeat i from 0 to rows - 1
|
||||
colors[i] := $08F0 '$2804 (if you want cyan on blue)
|
||||
|
||||
''init cursor attributes
|
||||
cursor[2] := %110 ' init cursor to underscore with slow blink
|
||||
BR[0]:=300
|
||||
BR[1]:=1200
|
||||
BR[2]:=2400
|
||||
BR[3]:=4800
|
||||
BR[4]:=9600
|
||||
BR[5]:=19200
|
||||
BR[6]:=38400
|
||||
BR[7]:=57600
|
||||
BR[8]:=115200
|
||||
xloc := cursor[0] := 0
|
||||
yloc := cursor[1] := 0
|
||||
loc := xloc + yloc*cols
|
||||
|
||||
pos := 0
|
||||
regionTop := 0
|
||||
regionBot := 35 * cols
|
||||
state := 0
|
||||
statpos := 37 * cols
|
||||
|
||||
PUB vidon
|
||||
if (!vga.start(vgabasepin, @screen, @colors, @cursor, @sync))
|
||||
return false
|
||||
|
||||
'waitcnt(clkfreq * 1 + cnt) 'wait 1 second for cogs to start
|
||||
|
||||
|
||||
PUB vidoff
|
||||
vga.stop
|
||||
|
||||
PUB inv(c)
|
||||
inverse:=c
|
||||
|
||||
PUB color(colorVal) | i
|
||||
repeat i from 0 to rows - 1
|
||||
colors[i] := $0000 | colorVal
|
||||
|
||||
PUB cursorset(c) | i
|
||||
i:=%000
|
||||
if c == 1
|
||||
i:= %001
|
||||
if c == 2
|
||||
i:= %010
|
||||
if c == 3
|
||||
i:= %011
|
||||
if c == 4
|
||||
i:= %101
|
||||
if c == 5
|
||||
i:= %110
|
||||
if c == 6
|
||||
i:= %111
|
||||
if c == 7
|
||||
i:= %000
|
||||
cursor[2] := i
|
||||
|
||||
PUB bin(value, digits)
|
||||
|
||||
'' Print a binary number, specify number of digits
|
||||
|
||||
repeat while digits > 32
|
||||
outc("0")
|
||||
digits--
|
||||
|
||||
value <<= 32 - digits
|
||||
|
||||
repeat digits
|
||||
outc((value <-= 1) & 1 + "0")
|
||||
|
||||
|
||||
PUB clrbtm(ColorVal) | i
|
||||
repeat i from 36 to rows - 1 'was 35
|
||||
colors[i] := $0000 + ColorVal
|
||||
|
||||
PUB cls1(VerStr) | i
|
||||
|
||||
longfill(@screen[0], $20202020, chars / 4)
|
||||
|
||||
clrbtm(TURQUOISE)
|
||||
|
||||
inverse := 1
|
||||
statprint(36, 0, VerStr)
|
||||
inverse := 0
|
||||
|
||||
repeat i from 37 to (rows - 1)
|
||||
statprint(i,0, string(" "))
|
||||
|
||||
|
||||
{{
|
||||
x :=xloc
|
||||
y := yloc
|
||||
invs := inverse
|
||||
''clrbtm(TURQUOISE)
|
||||
longfill(@screen, $20202020, chars/4)
|
||||
xloc := 0
|
||||
yloc :=0
|
||||
loc := xloc + yloc*cols
|
||||
repeat 80
|
||||
outc(32)
|
||||
xloc := 0
|
||||
yloc :=36
|
||||
loc := xloc + yloc*cols
|
||||
inverse := 1
|
||||
str(string(" "))
|
||||
inverse := 0
|
||||
str(string("Baud Rate: "))
|
||||
i:= BR[6]
|
||||
dec(i)
|
||||
str(string(" "))
|
||||
xloc := 18
|
||||
loc := xloc + yloc*cols
|
||||
str(string("Color "))
|
||||
str(string("PC Port: "))
|
||||
if pcport == 1
|
||||
str(string("OFF "))
|
||||
if pcport == 0
|
||||
str(string("ON "))
|
||||
str(string(" Force 7 bit: "))
|
||||
if ascii == 0
|
||||
str(string("NO "))
|
||||
if ascii == 1
|
||||
str(string("YES "))
|
||||
str(string(" Cursor CR W/LF: "))
|
||||
if CR == 1
|
||||
str(string("YES"))
|
||||
if CR == 0
|
||||
str(string("NO "))
|
||||
outc(13)
|
||||
outc(10)
|
||||
|
||||
inverse:=1
|
||||
xloc := 6
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F1"))
|
||||
xloc := 19
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F2"))
|
||||
xloc := 30
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F3"))
|
||||
xloc := 46
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F4"))
|
||||
xloc := 58
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F5"))
|
||||
xloc := 70
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F6"))
|
||||
inverse := invs
|
||||
xloc := cursor[0] := x 'right & left was 0
|
||||
yloc := cursor[1] := y 'from top was 1
|
||||
loc := xloc + yloc*cols
|
||||
}}
|
||||
|
||||
PUB clsupdate(c,screencolor,PCPORT,ascii,CR) | i,x,y,locold
|
||||
|
||||
invs := inverse
|
||||
locold := loc
|
||||
x := xloc
|
||||
y := yloc
|
||||
''(TURQUOISE)
|
||||
xloc := 0
|
||||
yloc :=36
|
||||
loc := xloc + yloc*cols
|
||||
inverse := 1
|
||||
str(string(" "))
|
||||
inverse := 0
|
||||
xloc := 0
|
||||
yloc :=37
|
||||
loc := xloc + yloc*cols
|
||||
str(string("Baud Rate: "))
|
||||
i:= BR[6]
|
||||
dec(i)
|
||||
str(string(" "))
|
||||
xloc := 18
|
||||
loc := xloc + yloc*cols
|
||||
|
||||
str(string("Color "))
|
||||
str(string("PC Port: "))
|
||||
if pcport == 1
|
||||
str(string("OFF "))
|
||||
if pcport == 0
|
||||
str(string("ON "))
|
||||
str(string(" Force 7 bit: "))
|
||||
if ascii == 0
|
||||
str(string("NO "))
|
||||
if ascii == 1
|
||||
str(string("YES "))
|
||||
str(string(" Cursor CR W/LF: "))
|
||||
if CR == 1
|
||||
str(string("YES"))
|
||||
if CR == 0
|
||||
str(string("NO "))
|
||||
xloc := 0
|
||||
yloc :=38
|
||||
loc := xloc + yloc*cols
|
||||
inverse:=1
|
||||
xloc := 6
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F1"))
|
||||
xloc := 19
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F2"))
|
||||
xloc := 30
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F3"))
|
||||
xloc := 46
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F4"))
|
||||
xloc := 58
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F5"))
|
||||
xloc := 70
|
||||
loc := xloc + yloc*cols
|
||||
str(string("F6"))
|
||||
inverse := invs
|
||||
xloc := cursor[0] := x
|
||||
yloc := cursor[1] := y
|
||||
' loc := xloc + yloc*cols
|
||||
loc := locold
|
||||
|
||||
PUB dec(value) | i
|
||||
|
||||
'' Print a decimal number
|
||||
|
||||
if value < 0
|
||||
-value
|
||||
outc("-")
|
||||
|
||||
i := 1_000_000_000
|
||||
|
||||
repeat 10
|
||||
if value => i
|
||||
outc(value/i + "0")
|
||||
value //= i
|
||||
result~~
|
||||
elseif result or i == 1
|
||||
outc("0")
|
||||
i /= 10
|
||||
|
||||
PUB hex(value, digits)
|
||||
|
||||
'' Print a hexadecimal number, specify number of digits
|
||||
|
||||
repeat while digits > 8
|
||||
outc("0")
|
||||
digits--
|
||||
|
||||
value <<= (8 - digits) << 2
|
||||
|
||||
repeat digits
|
||||
outc(lookupz((value <-= 4) & $f : "0".."9", "A".."F"))
|
||||
|
||||
|
||||
PUB str(string_ptr)
|
||||
|
||||
'' Print a zero terminated string
|
||||
|
||||
repeat strsize(string_ptr)
|
||||
process_char(byte[string_ptr++])
|
||||
|
||||
PUB statprint(r, c, str1) | x, ptr
|
||||
|
||||
ptr := r * cols + c
|
||||
repeat x from 0 to STRSIZE(str1) - 1
|
||||
putc(ptr++, BYTE[str1 + x])
|
||||
|
||||
PUB statnum(r, c, num1) | i, ptr
|
||||
|
||||
ptr := r * cols + c
|
||||
|
||||
if num1 < 0
|
||||
-num1
|
||||
putc(ptr++,"-")
|
||||
|
||||
i := 1_000_000_000
|
||||
|
||||
repeat 10
|
||||
if num1 => i
|
||||
putc(ptr++, (num1/i +"0"))
|
||||
num1 //= i
|
||||
result~~
|
||||
elseif result or i == 1
|
||||
putc(ptr++, "0")
|
||||
i /= 10
|
||||
|
||||
PUB putc(position, c)
|
||||
if inverse
|
||||
c |= $80
|
||||
screen[position] := c
|
||||
|
||||
PUB cls
|
||||
longfill (@screen, $20202020, lastChar)
|
||||
|
||||
PUB fullcls
|
||||
longfill(@screen, $20202020, 800)
|
||||
|
||||
PUB setInverse(val)
|
||||
inverse := val
|
||||
|
||||
PUB setInv(c)
|
||||
if c == 7
|
||||
setInverse(1)
|
||||
else
|
||||
setInverse(0)
|
||||
|
||||
PUB clEOL(position) | count
|
||||
count := cols - (position // cols)
|
||||
bytefill(@screen + position, $20, count)
|
||||
|
||||
PUB clBOL(position) | count
|
||||
count := position // cols
|
||||
bytefill(@screen + position - count, $20, count)
|
||||
|
||||
PUB delLine(position) | src, count
|
||||
position -= position // cols
|
||||
|
||||
src := position + cols
|
||||
|
||||
count := (maxChars - src) / 4
|
||||
|
||||
if count > 0
|
||||
longmove(@screen + position, @screen + src, count)
|
||||
|
||||
longfill(@screen + lastLine, $20202020, lcols)
|
||||
|
||||
PUB clEOS(position)
|
||||
cleol(position)
|
||||
position += cols - (position // cols)
|
||||
repeat while position < maxChars
|
||||
longfill(@screen + position, $20202020, lcols)
|
||||
pos += cols
|
||||
|
||||
PUB setCursorPos(position)
|
||||
cursor[0] := position // cols
|
||||
cursor[1] := position / cols
|
||||
|
||||
PUB insLine(position) | base, nxt
|
||||
base := position - (position // cols)
|
||||
position := lastLine
|
||||
repeat while position > base
|
||||
nxt := position - cols
|
||||
longmove(@screen + position, @screen + nxt, lcols)
|
||||
position := nxt
|
||||
clEOL(base)
|
||||
|
||||
PUB insChar(position) | count
|
||||
count := (cols - (position // cols)) - 1
|
||||
bytemove(@tmpl, @screen + position, count)
|
||||
screen[position] := " "
|
||||
bytemove(@screen + position + 1, @tmpl, count)
|
||||
|
||||
PUB delChar(position) | count
|
||||
count := (cols - (position // cols)) - 1
|
||||
bytemove(@screen + position, @screen + position + 1, count)
|
||||
screen[position + count] := " "
|
||||
|
||||
PRI inRegion : answer
|
||||
answer := (pos => regionTop) AND (pos < regionBot)
|
||||
|
||||
PRI scrollUp
|
||||
delLine(regionTop)
|
||||
if regionBot < maxChars
|
||||
insLine(regionBot)
|
||||
|
||||
PRI scrollDown
|
||||
if regionBot < maxChars
|
||||
delLine(regionBot)
|
||||
insLine(regionTop)
|
||||
|
||||
PRI ansi(c) | x, defVal
|
||||
|
||||
state := 0
|
||||
|
||||
if (c <> "r") AND (c <> "J") AND (c <> "m") AND (c <> "K")
|
||||
if arg0 == -1
|
||||
arg0 := 1
|
||||
if arg1 == -1
|
||||
arg1 := 1
|
||||
|
||||
case c
|
||||
"@":
|
||||
repeat while arg0-- > 0
|
||||
insChar(pos)
|
||||
|
||||
"b":
|
||||
repeat while arg0-- > 0
|
||||
outc(lastc)
|
||||
|
||||
"d":
|
||||
if (arg0 < 1) OR (arg0 > rows)
|
||||
arg0 := rows
|
||||
pos := ((arg0 - 1) * cols) + (pos // cols)
|
||||
|
||||
"m":
|
||||
setInv(arg0)
|
||||
if arg1 <> -1
|
||||
setInv(arg1)
|
||||
|
||||
"r":
|
||||
if arg0 < 1
|
||||
arg0 := 1
|
||||
elseif arg0 > cols
|
||||
arg0 := cols
|
||||
if arg1 < 1
|
||||
arg1 := 1
|
||||
elseif arg1 > cols
|
||||
arg1 := cols
|
||||
if arg1 < arg0
|
||||
arg1 := arg0
|
||||
|
||||
regionTop := (arg0 - 1) * cols
|
||||
regionBot := arg1 * cols
|
||||
pos := 0
|
||||
|
||||
"A":
|
||||
repeat while arg0-- > 0
|
||||
pos -= cols
|
||||
if pos < 0
|
||||
pos += cols
|
||||
return
|
||||
|
||||
"B":
|
||||
repeat while arg0-- > 0
|
||||
pos += cols
|
||||
if pos => maxChars
|
||||
pos -= cols
|
||||
return
|
||||
|
||||
"C":
|
||||
repeat while arg0-- > 0
|
||||
pos += 1
|
||||
if pos => maxChars
|
||||
pos -= 1
|
||||
return
|
||||
|
||||
"D":
|
||||
repeat while arg0-- > 0
|
||||
pos -= 1
|
||||
if pos < 0
|
||||
pos := 0
|
||||
return
|
||||
|
||||
"G":
|
||||
if (arg0 < 1) OR (arg0 > cols)
|
||||
arg0 := cols
|
||||
pos := (pos - (pos // cols)) + (arg0 - 1)
|
||||
|
||||
"H", "f":
|
||||
if arg0 =< 0
|
||||
arg0 := 1
|
||||
if arg1 =< 0
|
||||
arg1 := 1
|
||||
pos := (cols * (arg0 - 1)) + (arg1 - 1)
|
||||
if pos < 0
|
||||
pos := 0
|
||||
if pos => maxChars
|
||||
pos := maxChars - 1
|
||||
|
||||
"J":
|
||||
if arg0 == 1
|
||||
clBOL(pos)
|
||||
x := pos - cols
|
||||
x -= x // cols
|
||||
repeat while x => 0
|
||||
clEOL(x)
|
||||
x -= cols
|
||||
return
|
||||
|
||||
if arg0 == 2
|
||||
pos := 0
|
||||
|
||||
clEOL(pos)
|
||||
x := pos + cols
|
||||
x -= (x // cols)
|
||||
repeat while x < maxChars
|
||||
clEOL(x)
|
||||
x += cols
|
||||
|
||||
"K":
|
||||
if arg0 == -1
|
||||
clEOL(pos)
|
||||
elseif arg0 == 1
|
||||
clBOL(pos)
|
||||
else
|
||||
clEOL(pos - (pos // cols))
|
||||
|
||||
"L":
|
||||
if inRegion
|
||||
repeat while arg0-- > 0
|
||||
if regionBot < maxChars
|
||||
delLine(regionBot)
|
||||
insLine(pos)
|
||||
|
||||
"M":
|
||||
if inRegion
|
||||
repeat while arg0-- > 0
|
||||
delLine(pos)
|
||||
if regionBot < maxChars
|
||||
insLine(regionBot)
|
||||
|
||||
"P":
|
||||
repeat while arg0--
|
||||
delChar(pos)
|
||||
|
||||
PRI outc(c)
|
||||
|
||||
putc(pos++, lastc := c)
|
||||
if pos == regionBot
|
||||
scrollUp
|
||||
pos -= cols
|
||||
elseif pos == maxChars
|
||||
pos := lastLine
|
||||
|
||||
PUB process_char(c)
|
||||
|
||||
case state
|
||||
|
||||
0:
|
||||
if c > 127
|
||||
c := $20
|
||||
|
||||
if c => $20
|
||||
outc(c)
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
if c == $1B
|
||||
state := 1
|
||||
return
|
||||
|
||||
if c == $0D
|
||||
pos := pos - (pos // cols)
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
if c == $0A
|
||||
if inRegion
|
||||
pos += cols
|
||||
if pos => regionBot
|
||||
scrollUp
|
||||
pos -= cols
|
||||
else
|
||||
pos += cols
|
||||
if pos => maxChars
|
||||
pos -= cols
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
if c == 9
|
||||
pos += (8 - (pos // 8))
|
||||
|
||||
if pos => maxChars
|
||||
pos := lastLine
|
||||
delLine(0)
|
||||
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
if c == 8
|
||||
if pos > 0
|
||||
pos -= 1
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
1:
|
||||
case c
|
||||
"[":
|
||||
arg0 := arg1 := -1
|
||||
state := 2
|
||||
return
|
||||
|
||||
"P":
|
||||
pos += cols
|
||||
if pos => maxChars
|
||||
pos -= cols
|
||||
|
||||
"K":
|
||||
if pos > 0
|
||||
pos -= 1
|
||||
|
||||
"H":
|
||||
pos -= cols
|
||||
if pos < 0
|
||||
pos += cols
|
||||
|
||||
"D":
|
||||
if inRegion
|
||||
scrollUp
|
||||
|
||||
"M":
|
||||
if inRegion
|
||||
scrollDown
|
||||
|
||||
"G":
|
||||
pos := 0
|
||||
|
||||
"(":
|
||||
state := 5
|
||||
return
|
||||
|
||||
state := 0
|
||||
return
|
||||
|
||||
2:
|
||||
if (c => "0") AND (c =< "9")
|
||||
if arg0 == -1
|
||||
arg0 := c - "0"
|
||||
else
|
||||
arg0 := (arg0 * 10) + (c - "0")
|
||||
return
|
||||
|
||||
if c == ";"
|
||||
state := 3
|
||||
return
|
||||
|
||||
ansi(c)
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
3:
|
||||
if (c => "0") AND (c =< "9")
|
||||
if arg1 == -1
|
||||
arg1 := c - "0"
|
||||
else
|
||||
arg1 := (arg1 * 10) + (c - "0")
|
||||
return
|
||||
|
||||
if c == ";"
|
||||
state := 4
|
||||
return
|
||||
|
||||
ansi(c)
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
4:
|
||||
if (c => "0") AND (c =< "9")
|
||||
return
|
||||
|
||||
if c == ";"
|
||||
return
|
||||
ansi(c)
|
||||
setCursorPos(pos)
|
||||
return
|
||||
|
||||
5:
|
||||
state := 0
|
||||
return
|
||||
|
||||
return
|
||||
@@ -21,7 +21,7 @@
|
||||
CON
|
||||
|
||||
{
|
||||
' 640 x 480 @ 69Hz settings: 80 x 30 characters
|
||||
' 640 x 480 @ 69Hz settings:
|
||||
|
||||
hp = 640 ' horizontal pixels
|
||||
vp = 480 ' vertical pixels
|
||||
@@ -37,19 +37,19 @@ CON
|
||||
}
|
||||
|
||||
'{
|
||||
' 640 x 480 @ 60Hz settings: 80 x 40 characters
|
||||
' 640 x 480 @ 60Hz settings:
|
||||
|
||||
hp = 640 'horizontal pixels
|
||||
vp = 480 'vertical pixels
|
||||
hf = 16 'horizontal front porch pixels
|
||||
hs = 96 'horizontal sync pixels
|
||||
hb = 48 'horizontal back porch pixels
|
||||
vf = 10 'vertical front porch lines
|
||||
vs = 2 'vertical sync lines
|
||||
vb = 33 'vertical back porch lines
|
||||
hn = 1 'horizontal normal sync state (0|1)
|
||||
vn = 1 'vertical normal sync state (0|1)
|
||||
pr = 25 'pixel rate in MHz at 80MHz system clock (5MHz granularity)
|
||||
hp = 640 'horizontal pixels
|
||||
vp = 480 'vertical pixels
|
||||
hf = 16 'horizontal front porch pixels
|
||||
hs = 96 'horizontal sync pixels
|
||||
hb = 48 'horizontal back porch pixels
|
||||
vf = 10 'vertical front porch lines
|
||||
vs = 2 'vertical sync lines
|
||||
vb = 33 'vertical back porch lines
|
||||
hn = 1 'horizontal normal sync state (0|1)
|
||||
vn = 1 'vertical normal sync state (0|1)
|
||||
pr = 25 'pixel rate in MHz at 80MHz system clock (5MHz granularity)
|
||||
'}
|
||||
|
||||
|
||||
@@ -70,9 +70,9 @@ PUB start(BasePin, ScreenPtr, CursorPtr, SyncPtr) : okay | i, j
|
||||
''
|
||||
'' ScreenPtr = Pointer to 80x30 words containing Latin-1 codes and colors for
|
||||
'' each of the 80x30 screen characters. The lower byte of the word
|
||||
'' contains the Latin-1 code to display. The upper byte contains
|
||||
'' contains the Latin-1 code to display. The upper byte contains
|
||||
'' the foreground colour in bits 11..8 and the background colour in
|
||||
'' bits 15..12.
|
||||
'' bits 15..12. Remember bytes of a word are stored little endian.
|
||||
''
|
||||
'' screen word example: %00011111_01000001 = "A", white on blue
|
||||
''
|
||||
@@ -466,141 +466,144 @@ fours res 1
|
||||
|
||||
fit $1f0
|
||||
|
||||
' 8 x 12 font - characters 0..127
|
||||
' 8 x 16 font - characters 0..255
|
||||
'
|
||||
' Each long holds four scan lines of a single character. The longs are arranged into
|
||||
' groups of 128 which represent all characters (0..127). There are four groups which
|
||||
' each contain a vertical part of all characters. They are ordered top, middle, and
|
||||
' bottom.
|
||||
' groups of 256 which represent all characters (0..255). There are four groups which
|
||||
' each contain a vertical part of all characters. They are ordered top, middle top,
|
||||
' middle bottom and bottom. Bytes in each long are stored little endian.
|
||||
|
||||
font long
|
||||
long $0082ba00,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000
|
||||
long $0082ba00,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000 'top
|
||||
long $00000000,$6e660000,$66660000,$18181818,$00000000,$00000000,$18181818,$18181818
|
||||
long $0000ffff,$00000000,$00000000,$00000000,$00000000,$18181818,$18181818,$18181818
|
||||
long $0000ffff,$00000000,$00000000,$00000000,$00000000,$18181818,$18181818,$18181818 '10
|
||||
long $00000000,$18181818,$60000000,$06000000,$00000000,$00000000,$38000000,$00000000
|
||||
long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000
|
||||
long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000 '20
|
||||
long $30000000,$0c000000,$00000000,$00000000,$00000000,$00000000,$00000000,$60000000
|
||||
long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000
|
||||
long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000 '30
|
||||
long $3c000000,$3c000000,$00000000,$00000000,$60000000,$00000000,$06000000,$3c000000
|
||||
long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000
|
||||
long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000 '40
|
||||
long $66000000,$7e000000,$60000000,$46000000,$06000000,$42000000,$66000000,$3c000000
|
||||
long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000
|
||||
long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000 '50
|
||||
long $42000000,$66000000,$7e000000,$3c000000,$06000000,$3c000000,$18000000,$00000000
|
||||
long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000
|
||||
long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000 '60
|
||||
long $06000000,$18000000,$60000000,$06000000,$1c000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '70
|
||||
long $00000000,$00000000,$00000000,$38000000,$18000000,$1c000000,$4c000000,$aa55aa55
|
||||
long $00000000,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000
|
||||
long $00000000,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000 '80
|
||||
long $00000000,$6e660000,$66660000,$24242424,$00000000,$00000000,$24242424,$24242424
|
||||
long $00ff00ff,$ff000000,$00000000,$00000000,$00000000,$24242424,$24242424,$24242424
|
||||
long $00ff00ff,$ff000000,$00000000,$00000000,$00000000,$24242424,$24242424,$24242424 '90
|
||||
long $00000000,$24242424,$60000000,$06000000,$00000000,$00000000,$38000000,$00000000
|
||||
long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000
|
||||
long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000 'A0
|
||||
long $30000000,$0c000000,$00000000,$00000000,$00000000,$00000000,$00000000,$60000000
|
||||
long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000
|
||||
long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000 'B0
|
||||
long $3c000000,$3c000000,$00000000,$00000000,$60000000,$00000000,$06000000,$3c000000
|
||||
long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000
|
||||
long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000 'C0
|
||||
long $66000000,$7e000000,$60000000,$46000000,$06000000,$42000000,$66000000,$3c000000
|
||||
long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000
|
||||
long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000 'D0
|
||||
long $42000000,$66000000,$7e000000,$3c000000,$06000000,$3c000000,$18000000,$00000000
|
||||
long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000
|
||||
long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000 'E0
|
||||
long $06000000,$18000000,$60000000,$06000000,$1c000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 'F0
|
||||
long $00000000,$00000000,$00000000,$38000000,$18000000,$1c000000,$4c000000,$aa55aa55
|
||||
long $82008282,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666
|
||||
|
||||
long $82008282,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666 'mid top
|
||||
long $187e1818,$0066767e,$00183c24,$1f181818,$1f000000,$f8000000,$f8181818,$ff181818
|
||||
long $00000000,$0000ffff,$00000000,$00000000,$00000000,$f8181818,$1f181818,$ff181818
|
||||
long $00000000,$0000ffff,$ff000000,$00000000,$00000000,$f8181818,$1f181818,$ff181818 '10
|
||||
long $ff000000,$18181818,$0c060c30,$3060300c,$667e0000,$187e3030,$3e0c0c6c,$18180000
|
||||
long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818
|
||||
long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818 '20
|
||||
long $0c0c1818,$30301818,$7e182400,$7e181800,$00000000,$00000000,$00000000,$18303060
|
||||
long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060
|
||||
long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060 '30
|
||||
long $3c666666,$7c666666,$183c1800,$183c1800,$060c1830,$007e0000,$6030180c,$38606666
|
||||
long $6a7a6262,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666
|
||||
long $6a7a6262,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666 '40
|
||||
long $7e666666,$18181818,$60606060,$0e1e3666,$06060606,$667e7e66,$7e6e6e66,$66666666
|
||||
long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666
|
||||
long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666 '50
|
||||
long $183c2466,$183c3c66,$18306060,$0c0c0c0c,$180c0c06,$30303030,$0042663c,$00000000
|
||||
long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000
|
||||
long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000 '60
|
||||
long $663e0606,$181c0018,$60600060,$36660606,$18181818,$fe6a0000,$663e0000,$663c0000
|
||||
long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000
|
||||
long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000 '70
|
||||
long $66660000,$66660000,$607e0000,$0c180c0c,$18181818,$30183030,$0000327e,$aa55aa55
|
||||
long $00000000,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666
|
||||
long $00000000,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666 '80
|
||||
long $187e1818,$0066767e,$00183c24,$20272424,$203f0000,$04fc0000,$04e42424,$00e72424
|
||||
long $00000000,$0000ff00,$ff000000,$00000000,$00000000,$04e42424,$20272424,$00e72424
|
||||
long $00000000,$0000ff00,$ff000000,$00000000,$00000000,$04e42424,$20272424,$00e72424 '90
|
||||
long $00ff0000,$24242424,$0c060c30,$3060300c,$667e0000,$187e3030,$3e0c0c6c,$18180000
|
||||
long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818
|
||||
long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818 'A0
|
||||
long $0c0c1818,$30301818,$7e182400,$7e181800,$00000000,$00000000,$00000000,$18303060
|
||||
long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060
|
||||
long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060 'B0
|
||||
long $3c666666,$7c666666,$183c1800,$183c1800,$060c1830,$007e0000,$6030180c,$38606666
|
||||
long $76766666,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666
|
||||
long $76766666,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666 'C0
|
||||
long $7e666666,$18181818,$60606060,$0e1e3666,$06060606,$667e7e66,$7e6e6e66,$66666666
|
||||
long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666
|
||||
long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666 'D0
|
||||
long $183c2466,$183c3c66,$18306060,$0c0c0c0c,$180c0c06,$30303030,$0042663c,$00000000
|
||||
long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000
|
||||
long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000 'E0
|
||||
long $663e0606,$181c0018,$60600060,$36660606,$18181818,$fe6a0000,$663e0000,$663c0000
|
||||
long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000
|
||||
long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000 'F0
|
||||
long $66660000,$66660000,$607e0000,$0c180c0c,$18181818,$30183030,$0000327e,$aa55aa55
|
||||
long $82820082,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000
|
||||
|
||||
long $82820082,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000 'mid bottom
|
||||
long $007e0018,$18181818,$30303078,$0000001f,$1818181f,$181818f8,$000000f8,$181818ff
|
||||
long $00000000,$00000000,$0000ffff,$ff000000,$00000000,$181818f8,$1818181f,$000000ff
|
||||
long $00000000,$00000000,$000000ff,$ff000000,$00000000,$181818f8,$1818181f,$000000ff '10
|
||||
long $181818ff,$18181818,$7e006030,$7e00060c,$66666666,$0c0c7e18,$3a6c0c0c,$00000000
|
||||
long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000
|
||||
long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000 '20
|
||||
long $3018180c,$0c181830,$0024187e,$0018187e,$18383800,$0000007e,$3c180000,$06060c0c
|
||||
long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818
|
||||
long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818 '30
|
||||
long $3c666666,$3c666060,$3c180000,$18383800,$6030180c,$00007e00,$060c1830,$18180018
|
||||
long $3c62027a,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666
|
||||
long $3c62027a,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666 '40
|
||||
long $66666666,$7e181818,$3c666060,$4666361e,$7e060606,$66666666,$66667676,$3c666666
|
||||
long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e
|
||||
long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e '50
|
||||
long $4266243c,$18181818,$7e06060c,$3c0c0c0c,$60603030,$3c303030,$00000000,$fe000000
|
||||
long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66
|
||||
long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66 '60
|
||||
long $66666666,$7e181818,$60606060,$66361e1e,$7e181818,$c6c6d6d6,$66666666,$3c666666
|
||||
long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66
|
||||
long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66 '70
|
||||
long $66663c3c,$607c6666,$7e060c30,$380c0c18,$18181818,$1c303018,$00000000,$aa55aa55
|
||||
long $00000000,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000
|
||||
long $00000000,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000 '90
|
||||
long $007e0018,$18181818,$30303078,$00003f20,$24242720,$2424e404,$0000fc04,$2424e700
|
||||
long $00000000,$00000000,$0000ff00,$00ff0000,$00000000,$2424e404,$24242720,$0000ff00
|
||||
long $00000000,$00000000,$0000ff00,$00ff0000,$00000000,$2424e404,$24242720,$0000ff00 '90
|
||||
long $2424e700,$24242424,$7e006030,$7e00060c,$66666666,$0c0c7e18,$3a6c0c0c,$00000000
|
||||
long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000
|
||||
long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000 'A0
|
||||
long $3018180c,$0c181830,$0024187e,$0018187e,$18383800,$0000007e,$3c180000,$06060c0c
|
||||
long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818
|
||||
long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818 'B0
|
||||
long $3c666666,$3c666060,$3c180000,$18383800,$6030180c,$00007e00,$060c1830,$18180018
|
||||
long $3c660676,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666
|
||||
long $3c660676,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666 'C0
|
||||
long $66666666,$7e181818,$3c666060,$4666361e,$7e060606,$66666666,$66667676,$3c666666
|
||||
long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e
|
||||
long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e 'D0
|
||||
long $4266243c,$18181818,$7e06060c,$3c0c0c0c,$60603030,$3c303030,$00000000,$fe000000
|
||||
long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66
|
||||
long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66 'E0
|
||||
long $66666666,$7e181818,$60606060,$66361e1e,$7e181818,$c6c6d6d6,$66666666,$3c666666
|
||||
long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66
|
||||
long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66 'F0
|
||||
long $66663c3c,$607c6666,$7e060c30,$380c0c18,$18181818,$1c303018,$00000000,$aa55aa55
|
||||
long $00ba8200,$00000000,$00002a55,$00000030,$00000018,$00000058,$00000018,$00000000
|
||||
|
||||
long $00ba8200,$00000000,$00002a55,$00000030,$00000018,$00000058,$00000018,$00000000 'bottom
|
||||
long $00000000,$00000078,$00000030,$00000000,$18181818,$18181818,$00000000,$18181818
|
||||
long $00000000,$00000000,$00000000,$000000ff,$ffff0000,$18181818,$18181818,$00000000
|
||||
long $00000000,$00000000,$00000000,$000000ff,$ffff0000,$18181818,$18181818,$00000000 '10
|
||||
long $18181818,$18181818,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '20
|
||||
long $00000000,$00000000,$00000000,$00000000,$0000000c,$00000000,$00000018,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '30
|
||||
long $00000000,$00000000,$00000018,$0000000c,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '40
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000000,$00000060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '50
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$000000fe
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00003c66
|
||||
long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00003c66 '60
|
||||
long $00000000,$00000000,$00003c66,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000606,$00006060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
||||
long $00000606,$00006060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000 '70
|
||||
long $00000000,$00003c66,$00000000,$00000000,$00000000,$00000000,$00000000,$aa55aa55
|
||||
long $ff000000,$ff000000,$ff002a55,$ff000030,$ff000018,$ff000058,$ff000018,$ff000000
|
||||
long $ff000000,$ff000000,$ff002a55,$ff000030,$ff000018,$ff000058,$ff000018,$ff000000 '90
|
||||
long $ff000000,$ff000078,$ff000030,$00000000,$24242424,$24242424,$00000000,$24242424
|
||||
long $00000000,$00000000,$00000000,$000000ff,$ff00ff00,$24242424,$24242424,$00000000
|
||||
long $00000000,$00000000,$00000000,$000000ff,$ff00ff00,$24242424,$24242424,$00000000 '90
|
||||
long $24242424,$24242424,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000 'A0
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff00000c,$ff000000,$ff000018,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000 'B0
|
||||
long $ff000000,$ff000000,$ff000018,$ff00000c,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000 'C0
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000000,$ff000060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000 'D0
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff0000fe
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff003c66
|
||||
long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff003c66 'E0
|
||||
long $ff000000,$ff000000,$ff003c66,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000606,$ff006060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
||||
long $ff000606,$ff006060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000 'F0
|
||||
long $ff000000,$ff003c66,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff55aa55
|
||||
|
||||
|
||||
|
||||
@@ -24,27 +24,26 @@ set RomApps2=fdu format survey sysgen talk timer cpuspd
|
||||
|
||||
set RomApps=
|
||||
|
||||
copy NUL rom128_wbw.dat || exit /b
|
||||
copy NUL rom128_una.dat || exit /b
|
||||
copy NUL rom0_wbw.dat || exit /b
|
||||
copy NUL rom0_una.dat || exit /b
|
||||
|
||||
:: MakeDisk <OutputFile> <ImageSize> <Format> <Directory> <Bios>
|
||||
|
||||
set RomApps=%RomApps1%
|
||||
|
||||
call :MakeDisk rom256_wbw wbw_rom256 ROM_256KB 0x20000 wbw || exit /b
|
||||
call :MakeDisk rom256_una wbw_rom256 ROM_256KB 0x20000 una || exit /b
|
||||
call :MakeDisk rom128_wbw wbw_rom128 ROM_128KB 0x20000 wbw || exit /b
|
||||
call :MakeDisk rom128_una wbw_rom128 ROM_128KB 0x20000 una || exit /b
|
||||
|
||||
set RomApps=%RomApps1% %RomApps2%
|
||||
|
||||
call :MakeDisk rom512_wbw wbw_rom512 ROM_512KB 0x60000 wbw || exit /b
|
||||
call :MakeDisk rom512_una wbw_rom512 ROM_512KB 0x60000 una || exit /b
|
||||
call :MakeDisk rom256_wbw wbw_rom256 ROM_256KB 0x40000 wbw || exit /b
|
||||
call :MakeDisk rom256_una wbw_rom256 ROM_256KB 0x40000 una || exit /b
|
||||
|
||||
call :MakeDisk rom1024_wbw wbw_rom1024 ROM_1024KB 0xE0000 wbw || exit /b
|
||||
call :MakeDisk rom1024_una wbw_rom1024 ROM_1024KB 0xE0000 una || exit /b
|
||||
call :MakeDisk rom384_wbw wbw_rom384 ROM_384KB 0x60000 wbw || exit /b
|
||||
call :MakeDisk rom384_una wbw_rom384 ROM_384KB 0x60000 una || exit /b
|
||||
|
||||
call :MakeDisk ram512_wbw wbw_ram512 RAM_512KB 0x40000 wbw || exit /b
|
||||
|
||||
call :MakeDisk ram1024_wbw wbw_ram1024 RAM_1024KB 0xC0000 wbw || exit /b
|
||||
call :MakeDisk rom896_wbw wbw_rom896 ROM_896KB 0xE0000 wbw || exit /b
|
||||
call :MakeDisk rom896_una wbw_rom896 ROM_896KB 0xE0000 una || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
OBJECTS = rom128_wbw.dat rom128_una.dat rom256_wbw.dat rom256_una.dat rom512_wbw.dat rom512_una.dat rom1024_wbw.dat rom1024_una.dat ram512_wbw.dat ram1024_wbw.dat
|
||||
OBJECTS = rom0_wbw.dat rom0_una.dat rom128_wbw.dat rom128_una.dat rom256_wbw.dat rom256_una.dat rom384_wbw.dat rom384_una.dat rom896_wbw.dat rom896_una.dat
|
||||
OTHERS=*.dat
|
||||
|
||||
TOOLS = ../../Tools
|
||||
@@ -9,36 +9,28 @@ include $(TOOLS)/Makefile.inc
|
||||
ROMAPPS1 := assign mode rtc syscopy xm
|
||||
ROMAPPS2 := fdu format survey sysgen talk timer cpuspd
|
||||
|
||||
# rom256_%.dat: ROMSIZ=256
|
||||
# rom512_%.dat: ROMSIZ=512
|
||||
# rom1024_%.dat: ROMSIZ=1024
|
||||
|
||||
rom128_%.dat: DISKDEF=wbw_rom128
|
||||
rom256_%.dat: DISKDEF=wbw_rom256
|
||||
rom512_%.dat: DISKDEF=wbw_rom512
|
||||
rom1024_%.dat: DISKDEF=wbw_rom1024
|
||||
ram512_%.dat: DISKDEF=wbw_ram512
|
||||
ram1024_%.dat: DISKDEF=wbw_ram1024
|
||||
rom384_%.dat: DISKDEF=wbw_rom384
|
||||
rom896_%.dat: DISKDEF=wbw_rom896
|
||||
|
||||
rom128_%.dat: DIR=ROM_128KB
|
||||
rom256_%.dat: DIR=ROM_256KB
|
||||
rom512_%.dat: DIR=ROM_512KB
|
||||
rom1024_%.dat: DIR=ROM_1024KB
|
||||
ram512_%.dat: DIR=RAM_512KB
|
||||
ram1024_%.dat: DIR=RAM_1024KB
|
||||
rom384_%.dat: DIR=ROM_384KB
|
||||
rom896_%.dat: DIR=ROM_896KB
|
||||
|
||||
rom256_%.dat: IMGSIZ=0x20000
|
||||
rom512_%.dat: IMGSIZ=0x60000
|
||||
rom1024_%.dat: IMGSIZ=0xE0000
|
||||
ram512_%.dat: IMGSIZ=0x40000
|
||||
ram1024_%.dat: IMGSIZ=0xC0000
|
||||
rom128_%.dat: IMGSIZ=0x20000
|
||||
rom256_%.dat: IMGSIZ=0x40000
|
||||
rom384_%.dat: IMGSIZ=0x60000
|
||||
rom896_%.dat: IMGSIZ=0xE0000
|
||||
|
||||
rom256_%.dat: ROMAPPS=$(ROMAPPS1)
|
||||
rom512_%.dat rom1024_%.dat: ROMAPPS=$(ROMAPPS1) $(ROMAPPS2)
|
||||
ram512_%.dat ram1024_%.dat: ROMAPPS=$(ROMAPPS1) $(ROMAPPS2)
|
||||
rom128_%.dat: ROMAPPS=$(ROMAPPS1)
|
||||
rom256_%.dat rom384_%.dat rom896_%.dat: ROMAPPS=$(ROMAPPS1) $(ROMAPPS2)
|
||||
|
||||
%_wbw.dat: BIOS=wbw
|
||||
%_una.dat: BIOS=una
|
||||
|
||||
rom128_%.dat:
|
||||
rom0_%.dat:
|
||||
touch $@
|
||||
|
||||
%.dat:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,43 +0,0 @@
|
||||
11 Dec 88
|
||||
|
||||
Some changes have been made to COPY since the manual was written.
|
||||
Comparison of dates with Existence testing ON has been changed to
|
||||
use the Creation date when no Modified date exists, and print
|
||||
"Undated" when neither exists, yet both source and destination
|
||||
disks support file date stamping. Additionally, the /X option
|
||||
has been re-defined, and a new /R option has been added to
|
||||
Version 1.4. Please replace Paragraph 4.1.2.9 on page 55 of your
|
||||
ZSDOS manual with the following two paragraphs describing the new
|
||||
options.
|
||||
|
||||
|
||||
4.1.2.9.1 ERASE SOURCE FILE AFTER COPY.
|
||||
|
||||
When you want to "move" a file from one area to another, the "X"
|
||||
option may be used. This option causes a file or group of files
|
||||
to be copied in the manner described by the default or specified
|
||||
options, but after the copy and optional verify, the source file
|
||||
or files are erased. You will be notified that the file has been
|
||||
erased by the status "(X)" being printed on your console. To
|
||||
minimize the possibility of deleting a good file when errors
|
||||
exist in the copy, the Verify option should always be active,
|
||||
either by default, or specified. When Verify is active, any
|
||||
errors detected will disable the "X" option for that file so that
|
||||
a good source file will not be deleted. The "X" option has no
|
||||
configurable value, and is always assumed to be "Off" requiring
|
||||
the option in the command line list to be effective.
|
||||
|
||||
|
||||
4.1.2.9.2 COPY ONLY FILES WHICH EXIST (REPLACE).
|
||||
|
||||
Occasionally, you may wish to update selected files to a destina-
|
||||
tion in a simpler manner than naming each file, or using the
|
||||
Inspect option. The "R" (Replace) option, when active, tells
|
||||
COPY to transfer only files which exist on the destination direc-
|
||||
tory. If the Archive option (A) is added in conjunction with the
|
||||
Replace option, only files which have not been archived, AND
|
||||
already exist on the destination will be archived. It should be
|
||||
noted that the No Replacement (N) option is incompatible with
|
||||
both the Replace and Archive options, and is disabled when either
|
||||
"R" or "A" are active.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,564 +0,0 @@
|
||||
|
||||
DDTZ v2.7
|
||||
by C.B. Falconer
|
||||
edited by George A. Havach
|
||||
|
||||
Introduction:
|
||||
============
|
||||
DDTZ v2.7 is a complete replacement for DDT, Digital Research's
|
||||
famous Dynamic Debugging Tool, with improved functionality, bug
|
||||
extermination, and full Z80 support. In general, DDTZ is fully
|
||||
compatible with the original utility, but it has extra and
|
||||
extended commands and many fewer quirks. All Z80-specific
|
||||
instructions can be (dis)assembled, though in Intel rather then
|
||||
Zilog format. Furthermore, DDTZ will correctly trace ('T' and 'U'
|
||||
commands) both 8080 and Z80 instructions, depending on which CPU
|
||||
is operating. On startup, the program announces which CPU it is
|
||||
running on.
|
||||
|
||||
DDTZ v2.7 now handles the 64180 added opcodes. It does NOT test
|
||||
for a 64180 CPU, since this cannot be done without executing
|
||||
illegal Z80 instructions, which in turn will crash some
|
||||
simulators. However v2.7 does not execute any 64180 instructions
|
||||
internally, only in the subject program.
|
||||
|
||||
This issue supplies the "M" version assembled, to avoid errors
|
||||
when switching between MSDOS and CPM systems. The command table
|
||||
is updated accordingly. Most CPM users are also MSDOS users, but
|
||||
not vice-versa.
|
||||
|
||||
The program is invoked by typing
|
||||
|
||||
ddtz<ret>
|
||||
or
|
||||
ddtz [d:]filespec<ret>
|
||||
|
||||
In the second form, DDTZ will load the specified file into
|
||||
memory starting at 0100H, unless it's a .HEX file that sets its
|
||||
own load address. Besides reporting the NEXT free address and
|
||||
the PC (program counter) after a successful load, DDTZ also shows
|
||||
the number of memory pages needed for a SAVE. Instead of having
|
||||
to write all this down, just use the 'X' command at any time to
|
||||
redisplay these three values for the current application.
|
||||
|
||||
NOTE: loading more code above the NEXT pointer revises these
|
||||
values.
|
||||
|
||||
As in DDT, when a program is loaded above the area holding the
|
||||
'A' and 'U' (and now 'W') command code, these commands are
|
||||
disabled, and the extra memory is released to the user. Thus,
|
||||
DDTZ can occupy as little as 3K total memory space. Unlike DDT,
|
||||
however, DDTZ will not overwrite itself or the system on program
|
||||
loads (except .HEX files).
|
||||
|
||||
At initialization, the stack pointer (SP) points to a return to
|
||||
DDTZ, just like for the CCP. Thus, programs that normally return
|
||||
to the CCP will be returned to DDTZ. The 'B' command
|
||||
reinitializes this condition.
|
||||
|
||||
|
||||
The intercept vector copies the BDOS version number, etc., so
|
||||
an object program does not know that DDTZ is running (except
|
||||
for BIOS-BDOS vector size). Thus, programs that check the version
|
||||
number should execute correctly under DDTZ.
|
||||
|
||||
All input parameters can now be entered in any of three formats:
|
||||
|
||||
(1) hexadecimal (as in DDT),
|
||||
(2) decimal, by adding a leading '#' character,
|
||||
(3) ASCII, by enclosing between either single or double
|
||||
quotes; either one or two characters are allowed.
|
||||
|
||||
Leading blanks in command lines and parameters are absorbed.
|
||||
Either a comma or a (single) space is a valid delimiter.
|
||||
Either uppercase or lowercase input is accepted.
|
||||
|
||||
The default command (for anything not otherwise recognizable)
|
||||
is 'H'. This allows convenient calculation, along with the other
|
||||
features described below. So, to convert a number, just enter
|
||||
it!
|
||||
|
||||
As in DDT, the prompt character is '-', and the only error
|
||||
message is the query ('?'), which generally kicks you back to
|
||||
command mode.
|
||||
|
||||
New Commands (Over DDT):
|
||||
=======================
|
||||
|
||||
NOTE: letters in parenthesis, e.g. "(U)", show the equivalent
|
||||
command for DDTZM version (compatible with MSDOS debug).
|
||||
|
||||
@ Sets or shows (with no parameter) the internally stored
|
||||
"base" value. Also used with the 'S' and 'D' commands as
|
||||
an optional parameter (though without the '@') to display
|
||||
memory from an arbitrary base marker (offset). When set to
|
||||
zero (the default), it does not affect any screen displays.
|
||||
|
||||
B B)egin: resets the USER stack pointer to its initial value,
|
||||
such that any program that exits by an RET will return to
|
||||
DDTZ. DDTZ provides a default stack space of
|
||||
approximately 24 bytes for user programs.
|
||||
|
||||
C C)ompare first_address,last_address,against_address: shows
|
||||
all the byte differences between two memory areas, in the
|
||||
format
|
||||
|
||||
XXXX aa YYYY bb
|
||||
|
||||
where XXXX and YYYY are the comparative memory addresses,
|
||||
and aa and bb are the corresponding byte values. Can be
|
||||
used to verify the identity of two files by first
|
||||
loading them into different memory areas with the 'R'
|
||||
command (see below).
|
||||
|
||||
|
||||
W Write: stores the modified memory area to disk under the
|
||||
(K) filename specified by the 'I' command, overwriting the
|
||||
original file from which it was loaded (the user is queried
|
||||
before doing so). By default, the image of memory from
|
||||
0100H through the "NEXT" value -1 is saved. "K first_addr,
|
||||
last_address" overrides this and allows writing ANY memory
|
||||
area to a file. Almost a necessity for CPM 3.0 (no SAVE!).
|
||||
K)eep on DDTZ
|
||||
|
||||
X eXamine: redisplays the "NEXT PC SAVE" report at any time.
|
||||
(Q) Q)uery size on DDTZ.
|
||||
|
||||
S S)earch first_address, last_addr, value: searches the
|
||||
(W) specified memory area for the value (a 16-bit word, not a
|
||||
byte) and shows the locations of all such. Very useful for
|
||||
finding CALL's or JMP's to a particular address, etc.
|
||||
W)here on DDTZ
|
||||
|
||||
Y Y)our_option parm1,parm2,address: executes an arbitrary
|
||||
routine at the specified address, with the BC and DE
|
||||
registers set to parm1 and parm2, respectively.
|
||||
|
||||
Z Displays (but does not alter) the Z80's alternate register
|
||||
set, including the index registers (disabled if running on
|
||||
an 8080). On Z80's, automatically included as the last
|
||||
part of the display by the 'X' command.
|
||||
|
||||
|
||||
Based (Offset) Displays:
|
||||
=======================
|
||||
|
||||
The 'D' and 'E' commands can use a stored base value (offset),
|
||||
as set by the '@' command. The current @ value may be
|
||||
overridden for a single execution of these commands by adding the
|
||||
base as an extra parameter in the command line. The effect is
|
||||
to add this value to the first/last address and display
|
||||
accordingly. The address listing on the left becomes XXXX:YYYY,
|
||||
where XXXX is the offset address and YYYY is the actual memory
|
||||
address being displayed. For example, if you have a data area
|
||||
located at 42B7H and wish to preserve easy access, just enter
|
||||
"@42b7". Now, "d0,3f" will dump memory starting at 4237H.
|
||||
|
||||
|
||||
Further Changes from DDT:
|
||||
========================
|
||||
|
||||
A A)ssemble now accepts the full Z80 as well as 8080
|
||||
instruction set, although it expects them in Intel rather
|
||||
than Zilog format (see notes below under the 'L'
|
||||
command). When in doubt, see the mnemnonic list below.
|
||||
|
||||
D D)isplay or D)ump will accept an optional third parameter
|
||||
to set the base value for a single execution only. Format
|
||||
has been cleaned up.
|
||||
|
||||
H H)ex_arithmetic on two values also shows their
|
||||
difference in decimal. With only one value, converts to
|
||||
hexadecimal, decimal, and ASCII (low-order byte only).
|
||||
|
||||
|
||||
N N)ame now allows drive specification (d:...) and sets up
|
||||
(I) the complete command line, including both FCB's (at
|
||||
addresses 005CH and 006CH). The tail (stored at 0081H up)
|
||||
is NOT upshifted.
|
||||
I)nput on DDTZ
|
||||
|
||||
U U)nassemble now displays the raw hexcode, especially handy
|
||||
(L) when examining non-code areas. Intel (8080 style) mnemonics
|
||||
are used, so some disassembled instructions may look
|
||||
strange. E.g., the Z80's 'IN B,(C)' and 'OUT (C),B' become
|
||||
'INP B' and 'OUTP B', respectively; 'LD (nnnn),BC' becomes
|
||||
'SBCD nnnn', 'ADD IX, BC' becomes 'DADX B', and 'JP (IX)'
|
||||
becomes 'PCIX'.
|
||||
L)ist on DDTZ
|
||||
|
||||
L L)oad now permits loading a file into memory with an
|
||||
(R) offset, which is added to the default load address of
|
||||
0100H. When reading in a .HEX file with a preset bias,
|
||||
the 'R' command will not transfer control to an invalid
|
||||
execution point. Another execution of the 'R' command will
|
||||
reread the input file, e.g.:
|
||||
|
||||
n blah<ret>
|
||||
l<ret>
|
||||
...modify the code and generally mess about...
|
||||
l<ret>
|
||||
|
||||
The original file is reloaded, and the modifications are
|
||||
removed.
|
||||
R)ead on DDTZ
|
||||
|
||||
E E)nter, like D)isplay, now accepts an optional second
|
||||
(S) parameter to set the base value for a single execution
|
||||
only.
|
||||
S)ubstitute or S)et on DDTZ
|
||||
|
||||
T T)rap/trace on termination now shows the complete CPU
|
||||
state. Traps and traces no longer lock up when a user RST
|
||||
7 instruction is executed. Tracing of BDOS/BIOS calls is
|
||||
heavily trun cated, avoiding clutter and preventing system
|
||||
crashes.
|
||||
|
||||
NOTE: Most of the UNDOCUMENTED Z80 op-codes are handled. Others
|
||||
can crash the system.
|
||||
|
||||
R R)egisters also shows what two-byte values the HL and SP
|
||||
(X) registers are actually pointing to. On Z80's, displays the
|
||||
alternate register set.
|
||||
eX)amine on DDTZ
|
||||
|
||||
NOTE: Any use of the 'W' or 'L' command resets the system DMA
|
||||
transfer address to the standard default value of 0080H.
|
||||
|
||||
|
||||
; This is the output of DDTZ when disassembling OPTYPE.TRY
|
||||
NOP LDA 06A4 MOV M,H
|
||||
LXI B,06A4 DCX SP MOV M,L
|
||||
STAX B INR A HLT
|
||||
INX B DCR A MOV M,A
|
||||
INR B MVI A,20 MOV A,B
|
||||
DCR B CMC MOV A,C
|
||||
MVI B,20 MOV B,B MOV A,D
|
||||
RLC MOV B,C MOV A,E
|
||||
EXAF MOV B,D MOV A,H
|
||||
DAD B MOV B,E MOV A,L
|
||||
LDAX B MOV B,H MOV A,M
|
||||
DCX B MOV B,L MOV A,A
|
||||
INR C MOV B,M ADD B
|
||||
DCR C MOV B,A ADD C
|
||||
MVI C,20 MOV C,B ADD D
|
||||
RRC MOV C,C ADD E
|
||||
DJNZ 0134 MOV C,D ADD H
|
||||
LXI D,06A4 MOV C,E ADD L
|
||||
STAX D MOV C,H ADD M
|
||||
INX D MOV C,L ADD A
|
||||
INR D MOV C,M ADC B
|
||||
DCR D MOV C,A ADC C
|
||||
MVI D,20 MOV D,B ADC D
|
||||
RAL MOV D,C ADC E
|
||||
JR 0134 MOV D,D ADC H
|
||||
DAD D MOV D,E ADC L
|
||||
LDAX D MOV D,H ADC M
|
||||
DCX D MOV D,L ADC A
|
||||
INR E MOV D,M SUB B
|
||||
DCR E MOV D,A SUB C
|
||||
MVI E,20 MOV E,B SUB D
|
||||
RAR MOV E,C SUB E
|
||||
JRNZ 0134 MOV E,D SUB H
|
||||
LXI H,06A4 MOV E,E SUB L
|
||||
SHLD 06A4 MOV E,H SUB M
|
||||
INX H MOV E,L SUB A
|
||||
INR H MOV E,M SBB B
|
||||
DCR H MOV E,A SBB C
|
||||
MVI H,20 MOV H,B SBB D
|
||||
DAA MOV H,C SBB E
|
||||
JRZ 0134 MOV H,D SBB H
|
||||
DAD H MOV H,E SBB L
|
||||
LHLD 06A4 MOV H,H SBB M
|
||||
DCX H MOV H,L SBB A
|
||||
INR L MOV H,M ANA B
|
||||
DCR L MOV H,A ANA C
|
||||
MVI L,20 MOV L,B ANA D
|
||||
CMA MOV L,C ANA E
|
||||
JRNC 0134 MOV L,D ANA H
|
||||
LXI SP,06A4 MOV L,E ANA L
|
||||
STA 06A4 MOV L,H ANA M
|
||||
INX SP MOV L,L ANA A
|
||||
INR M MOV L,M XRA B
|
||||
DCR M MOV L,A XRA C
|
||||
MVI M,20 MOV M,B XRA D
|
||||
STC MOV M,C XRA E
|
||||
JRC 0134 MOV M,D XRA H
|
||||
DAD SP MOV M,E XRA L
|
||||
|
||||
|
||||
XRA M JPE 06A4 SLAR M
|
||||
XRA A XCHG SLAR A
|
||||
ORA B CPE 06A4 SRAR B
|
||||
ORA C XRI 20 SRAR C
|
||||
ORA D RST 5 SRAR D
|
||||
ORA E RP SRAR E
|
||||
ORA H POP PSW SRAR H
|
||||
ORA L JP 06A4 SRAR L
|
||||
ORA M DI SRAR M
|
||||
ORA A CP 06A4 SRAR A
|
||||
CMP B PUSH PSW SLLR B
|
||||
CMP C ORI 20 SLLR C
|
||||
CMP D RST 6 SLLR D
|
||||
CMP E RM SLLR E
|
||||
CMP H SPHL SLLR H
|
||||
CMP L JM 06A4 SLLR L
|
||||
CMP M EI SLLR M
|
||||
CMP A CM 06A4 SLLR A
|
||||
RNZ CPI 20 SRLR B
|
||||
POP B RST 7 SRLR C
|
||||
JNZ 06A4 RLCR B SRLR D
|
||||
JMP 06A4 RLCR C SRLR E
|
||||
CNZ 06A4 RLCR D SRLR H
|
||||
PUSH B RLCR E SRLR L
|
||||
ADI 20 RLCR H SRLR M
|
||||
RST 0 RLCR L SRLR A
|
||||
RZ RLCR M BIT 0,B
|
||||
RET RLCR A BIT 0,C
|
||||
JZ 06A4 RRCR B BIT 0,D
|
||||
CZ 06A4 RRCR C BIT 0,E
|
||||
CALL 06A4 RRCR D BIT 0,H
|
||||
ACI 20 RRCR E BIT 0,L
|
||||
RST 1 RRCR H BIT 0,M
|
||||
RNC RRCR L BIT 0,A
|
||||
POP D RRCR M BIT 1,B
|
||||
JNC 06A4 RRCR A BIT 1,C
|
||||
OUT 20 RALR B BIT 1,D
|
||||
CNC 06A4 RALR C BIT 1,E
|
||||
PUSH D RALR D BIT 1,H
|
||||
SUI 20 RALR E BIT 1,L
|
||||
RST 2 RALR H BIT 1,M
|
||||
RC RALR L BIT 1,A
|
||||
EXX RALR M BIT 2,B
|
||||
JC 06A4 RALR A BIT 2,C
|
||||
IN 20 RARR B BIT 2,D
|
||||
CC 06A4 RARR C BIT 2,E
|
||||
SBI 20 RARR D BIT 2,H
|
||||
RST 3 RARR E BIT 2,L
|
||||
RPO RARR H BIT 2,M
|
||||
POP H RARR L BIT 2,A
|
||||
JPO 06A4 RARR M BIT 3,B
|
||||
XTHL RARR A BIT 3,C
|
||||
CPO 06A4 SLAR B BIT 3,D
|
||||
PUSH H SLAR C BIT 3,E
|
||||
ANI 20 SLAR D BIT 3,H
|
||||
RST 4 SLAR E BIT 3,L
|
||||
RPE SLAR H BIT 3,M
|
||||
PCHL SLAR L BIT 3,A
|
||||
|
||||
|
||||
BIT 4,B RES 3,D SET 2,H
|
||||
BIT 4,C RES 3,E SET 2,L
|
||||
BIT 4,D RES 3,H SET 2,M
|
||||
BIT 4,E RES 3,L SET 2,A
|
||||
BIT 4,H RES 3,M SET 3,B
|
||||
BIT 4,L RES 3,A SET 3,C
|
||||
BIT 4,M RES 4,B SET 3,D
|
||||
BIT 4,A RES 4,C SET 3,E
|
||||
BIT 5,B RES 4,D SET 3,H
|
||||
BIT 5,C RES 4,E SET 3,L
|
||||
BIT 5,D RES 4,H SET 3,M
|
||||
BIT 5,E RES 4,L SET 3,A
|
||||
BIT 5,H RES 4,M SET 4,B
|
||||
BIT 5,L RES 4,A SET 4,C
|
||||
BIT 5,M RES 5,B SET 4,D
|
||||
BIT 5,A RES 5,C SET 4,E
|
||||
BIT 6,B RES 5,D SET 4,H
|
||||
BIT 6,C RES 5,E SET 4,L
|
||||
BIT 6,D RES 5,H SET 4,M
|
||||
BIT 6,E RES 5,L SET 4,A
|
||||
BIT 6,H RES 5,M SET 5,B
|
||||
BIT 6,L RES 5,A SET 5,C
|
||||
BIT 6,M RES 6,B SET 5,D
|
||||
BIT 6,A RES 6,C SET 5,E
|
||||
BIT 7,B RES 6,D SET 5,H
|
||||
BIT 7,C RES 6,E SET 5,L
|
||||
BIT 7,D RES 6,H SET 5,M
|
||||
BIT 7,E RES 6,L SET 5,A
|
||||
BIT 7,H RES 6,M SET 6,B
|
||||
BIT 7,L RES 6,A SET 6,C
|
||||
BIT 7,M RES 7,B SET 6,D
|
||||
BIT 7,A RES 7,C SET 6,E
|
||||
RES 0,B RES 7,D SET 6,H
|
||||
RES 0,C RES 7,E SET 6,L
|
||||
RES 0,D RES 7,H SET 6,M
|
||||
RES 0,E RES 7,L SET 6,A
|
||||
RES 0,H RES 7,M SET 7,B
|
||||
RES 0,L RES 7,A SET 7,C
|
||||
RES 0,M SET 0,B SET 7,D
|
||||
RES 0,A SET 0,C SET 7,E
|
||||
RES 1,B SET 0,D SET 7,H
|
||||
RES 1,C SET 0,E SET 7,L
|
||||
RES 1,D SET 0,H SET 7,M
|
||||
RES 1,E SET 0,L SET 7,A
|
||||
RES 1,H SET 0,M DADX B
|
||||
RES 1,L SET 0,A DADX D
|
||||
RES 1,M SET 1,B LXI X,06A4
|
||||
RES 1,A SET 1,C SIXD 06A4
|
||||
RES 2,B SET 1,D INX X
|
||||
RES 2,C SET 1,E DADX X
|
||||
RES 2,D SET 1,H LIXD 06A4
|
||||
RES 2,E SET 1,L DCX X
|
||||
RES 2,H SET 1,M INR [X+05]
|
||||
RES 2,L SET 1,A DCR [X+05]
|
||||
RES 2,M SET 2,B MVI [X+05],20
|
||||
RES 2,A SET 2,C DADX SP
|
||||
RES 3,B SET 2,D MOV B,[X+05]
|
||||
RES 3,C SET 2,E MOV C,[X+05]
|
||||
|
||||
|
||||
MOV D,[X+05] DSBC B DADY B
|
||||
MOV E,[X+05] SBCD 06A4 DADY D
|
||||
MOV H,[X+05] NEG LXI Y,06A4
|
||||
MOV L,[X+05] RETN SIYD 06A4
|
||||
MOV [X+05],B IM0 INX Y
|
||||
MOV [X+05],C LDIA DADY Y
|
||||
MOV [X+05],D INP C LIYD 06A4
|
||||
MOV [X+05],E OUTP C DCX Y
|
||||
MOV [X+05],H DADC B INR [Y+05]
|
||||
MOV [X+05],L LBCD 06A4 DCR [Y+05]
|
||||
MOV [X+05],A RETI MVI [Y+05],2
|
||||
MOV A,[X+05] LDRA DADY SP
|
||||
ADD [X+05] INP D MOV B,[Y+05]
|
||||
ADC [X+05] OUTP D MOV C,[Y+05]
|
||||
SUB [X+05] DSBC D MOV D,[Y+05]
|
||||
SBB [X+05] SDED 06A4 MOV E,[Y+05]
|
||||
ANA [X+05] IM1 MOV H,[Y+05]
|
||||
XRA [X+05] LDAI MOV L,[Y+05]
|
||||
ORA [X+05] INP E MOV [Y+05],B
|
||||
CMP [X+05] OUTP E MOV [Y+05],C
|
||||
POP X DADC D MOV [Y+05],D
|
||||
XTIX LDED 06A4 MOV [Y+05],E
|
||||
PUSH X IM2 MOV [Y+05],H
|
||||
PCIX LDAR MOV [Y+05],L
|
||||
SPIX INP H MOV [Y+05],A
|
||||
RLCR [X+05] OUTP H MOV A,[Y+05]
|
||||
RRCR [X+05] DSBC H ADD [Y+05]
|
||||
RALR [X+05] shld 06A4 ADC [Y+05]
|
||||
RARR [X+05] RRD SUB [Y+05]
|
||||
SLAR [X+05] INP L SBB [Y+05]
|
||||
SRAR [X+05] OUTP L ANA [Y+05]
|
||||
SRLR [X+05] DADC H XRA [Y+05]
|
||||
BIT 0,[X+05] lhld 06A4 ORA [Y+05]
|
||||
BIT 1,[X+05] RLD CMP [Y+05]
|
||||
BIT 2,[X+05] INP M POP Y
|
||||
BIT 3,[X+05] OUTP M XTIY
|
||||
BIT 4,[X+05] DSBC SP PUSH Y
|
||||
BIT 5,[X+05] SSPD 06A4 PCIY
|
||||
BIT 6,[X+05] INP A SPIY
|
||||
BIT 7,[X+05] OUTP A RLCR [Y+05]
|
||||
RES 0,[X+05] DADC SP RRCR [Y+05]
|
||||
RES 1,[X+05] LSPD 06A4 RALR [Y+05]
|
||||
RES 2,[X+05] LDI RARR [Y+05]
|
||||
RES 3,[X+05] CCI SLAR [Y+05]
|
||||
RES 4,[X+05] INI SRAR [Y+05]
|
||||
RES 5,[X+05] OTI SRLR [Y+05]
|
||||
RES 6,[X+05] LDD BIT 0,[Y+05]
|
||||
RES 7,[X+05] CCD BIT 1,[Y+05]
|
||||
SET 0,[X+05] IND BIT 2,[Y+05]
|
||||
SET 1,[X+05] OTD BIT 3,[Y+05]
|
||||
SET 2,[X+05] LDIR BIT 4,[Y+05]
|
||||
SET 3,[X+05] CCIR BIT 5,[Y+05]
|
||||
SET 4,[X+05] INIR BIT 6,[Y+05]
|
||||
SET 5,[X+05] OTIR BIT 7,[Y+05]
|
||||
SET 6,[X+05] LDDR RES 0,[Y+05]
|
||||
SET 7,[X+05] CCDR RES 1,[Y+05]
|
||||
INP B INDR RES 2,[Y+05]
|
||||
OUTP B OTDR RES 3,[Y+05]
|
||||
|
||||
|
||||
RES 4,[Y+05] SET 0,[Y+05] SET 4,[Y+05]
|
||||
RES 5,[Y+05] SET 1,[Y+05] SET 5,[Y+05]
|
||||
RES 6,[Y+05] SET 2,[Y+05] SET 6,[Y+05]
|
||||
RES 7,[Y+05] SET 3,[Y+05] SET 7,[Y+05]
|
||||
|
||||
; These are the result of disassembling 64180OPS.TRY
|
||||
; These opcodes are available ONLY on the 64180 CPU
|
||||
; DDTZ will both assemble and disassemble these.
|
||||
IN0 B,20 TST E MLT B
|
||||
OUT0 20,B IN0 H,20 MLT D
|
||||
TST B OUT0 20,H TSTI 20
|
||||
IN0 C,20 TST H MLT H
|
||||
OUT0 20,C IN0 L,20 TSIO 20
|
||||
TST C OUT0 20,L SLP
|
||||
IN0 D,20 TST L MLT SP
|
||||
OUT0 20,D TST M OTIM
|
||||
TST D IN0 A,20 OTDM
|
||||
IN0 E,20 OUT0 20,A OIMR
|
||||
OUT0 20,E TST A ODMR
|
||||
|
||||
; The following are UNDOCUMENTED z80 opcodes from XTDOPS.TRY.
|
||||
; DDTZ will disassemble these, but will not assemble them.
|
||||
; They use xh/xl (or yh/yl) as separate byte registers.
|
||||
; Use these at your own risk.
|
||||
INRX H ACXR H MOVY H,B
|
||||
DCRX H ACXR L MOVY H,C
|
||||
MVIX H,20 SUXR H MOVY H,D
|
||||
INRX L SUXR L MOVY H,E
|
||||
DCRX L SBXR H MOVY H,A
|
||||
MVIX L,20 SBXR L MOVY L,B
|
||||
MOVX B,H NDXR H MOVY L,C
|
||||
MOVX B,L NDXR L MOVY L,D
|
||||
MOVX C,H XRXR H MOVY L,E
|
||||
MOVX C,L XRXR L MOVY L,A
|
||||
MOVX D,H ORXR H MOVY A,H
|
||||
MOVX D,L ORXR L MOVY A,L
|
||||
MOVX E,H CPXR H ADYR H
|
||||
MOVX E,L CPXR L ADYR L
|
||||
MOVX H,B INRY H ACYR H
|
||||
MOVX H,C DCRY H ACYR L
|
||||
MOVX H,D MVIY H,20 SUYR H
|
||||
MOVX H,E INRY L SUYR L
|
||||
MOVX H,A DCRY L SBYR H
|
||||
MOVX L,B MVIY L,20 SBYR L
|
||||
MOVX L,C MOVY B,H NDYR H
|
||||
MOVX L,D MOVY B,L NDYR L
|
||||
MOVX L,E MOVY C,H XRYR H
|
||||
MOVX L,A MOVY C,L XRYR L
|
||||
MOVX A,H MOVY D,H ORYR H
|
||||
MOVX A,L MOVY D,L ORYR L
|
||||
ADXR H MOVY E,H CPYR H
|
||||
ADXR L MOVY E,L CPYR L
|
||||
|
||||
|
||||
Command Summary:
|
||||
===============
|
||||
|
||||
DDTZM command DDTZ command
|
||||
============= ============
|
||||
@ (base)
|
||||
A)ssemble first_address A
|
||||
B)egin {i.e., initialize stack and return} B
|
||||
C)ompare first_address,last_address,against_address C
|
||||
D)ump first_address[,last_address[,base]] D
|
||||
E)nter_in_memory first_address[,base] S)ubstitute
|
||||
F)ill first_address,last_address,value F
|
||||
G)o_to [address][,trap1[,trap2]] G
|
||||
H)ex_arithmetic value1(,value2) H
|
||||
L)oad_file (offset) R)ead
|
||||
M)ove first_address,last_address,destination M
|
||||
N)nput FCBs_command_line I)nput
|
||||
Q)uit (not avail)
|
||||
R)egister examine/change [register|flag] X)amine
|
||||
S)earch first_address,last_address,word W)hereis
|
||||
T)race_execution [count] T
|
||||
Untrace_execution [count] (i.e. do count instr) U)ntrace
|
||||
U)nassemble_code first_address[,last_address] L)ist code
|
||||
W)rite [first_address,last_address] K)eep
|
||||
X)amine {i.e. display memory parameters for application} Q)uery
|
||||
Y)our_option BC:=parm1,DE:=parm2,call_address Y
|
||||
Z)80_register_display Z
|
||||
|
||||
|
||||
If you find this program useful, contributions will be gratefully
|
||||
accepted and will encourage further development and release of
|
||||
useful CPM programs. My practice is to include source.
|
||||
|
||||
C.B. Falconer
|
||||
680 Hartford Turnpike,
|
||||
Hamden, Conn. 06517 (203) 281-1438
|
||||
|
||||
DDTZ and its associated documentation and other files are
|
||||
copyright (c) 1980-1988 by C.B. Falconer. They may be freely
|
||||
copied and used for non-commercial purposes ONLY.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,264 +0,0 @@
|
||||
|
||||
FILEATTR
|
||||
Version 1.6
|
||||
|
||||
Gene Pizzetta
|
||||
January 18, 1992
|
||||
A ZSDOS utility, copyright (c) 1988 by Carson Wilson.
|
||||
|
||||
|
||||
FILEATTR (FA) is a utility that allows rapid settin, resetting,
|
||||
or displaying of file attributes under ZSDOS, ZRDOS, and CP/M
|
||||
2.2. Several additional features are available under ZCPR3,
|
||||
including error flag setting, error handler invocation, an
|
||||
enhanced display, and better error detection.
|
||||
|
||||
FA will not run under CP/M 3.0 or Z3PLUS.
|
||||
|
||||
USAGE:
|
||||
|
||||
FILEATTR {dir:}{afn} {{/}options}
|
||||
|
||||
If a DIR or DU specification is not given, the current directory
|
||||
is assumed (under vanilla CP/M only the drive is significant).
|
||||
If no ambiguous or unambiguous filename is given, all files
|
||||
("*.*") are matched.
|
||||
|
||||
If no attribute options are given, FILEATTR merely displays the
|
||||
current state of each file's attributes. Files are displayed in
|
||||
the order that they appear in the directory.
|
||||
|
||||
Once operation begins, FA cannot be aborted by the user. If a ^C
|
||||
is entered at the keyboard, all screen output stops, but file
|
||||
attribute operations continue to completion. If that was not the
|
||||
case, attributes might be set on some entries for a file and not
|
||||
on others. Nevertheless, suppressing screen output speeds things
|
||||
up a bit.
|
||||
|
||||
OPTIONS: A leading slash is required unless the option list is
|
||||
the second parameter on the command line. Options may be
|
||||
separated by spaces, commas, or nothing at all.
|
||||
|
||||
ATTRIBUTE OPTIONS: These options set (turn on) corresponding
|
||||
attributes on files matching the file specification. Attributes
|
||||
not specified by an attribute option remain unchanged.
|
||||
|
||||
If the option is preceded by a minus ("-") or by an "N", the
|
||||
corresponding attribute is reset (turned off).
|
||||
|
||||
1 F1. This is a user attribute which has no predefined
|
||||
meaning.
|
||||
|
||||
P Public (f2). Under ZSDOS, when this attribute is set,
|
||||
a file is available from any user area of the disk on
|
||||
which it resides. A file cannot be made public if
|
||||
another file with the same name exists in any other
|
||||
user area on that drive. In that case FA will issue an
|
||||
error message and leave the attribute off.
|
||||
|
||||
D Inhibit access datestamp (f3). Under ZSDOS, when this
|
||||
attribute is set, the file's access datestamp will not
|
||||
be updated, which may speed file access slightly. If
|
||||
the attribute is turned off, normal access datestamping
|
||||
resumes.
|
||||
|
||||
4 F4. This is a user attribute which has no predefined
|
||||
meaning.
|
||||
|
||||
W Wheel protect (f8). Under ZSDOS, when this attribute
|
||||
is set, the file becomes read-only when the wheel byte
|
||||
is off and cannot be erased. If the wheel byte is on,
|
||||
the file can be erased normally.
|
||||
|
||||
R Read only (t1). When this attribute is set, the file
|
||||
cannot be erased or modified by most programs.
|
||||
|
||||
S System (t2). When this attribute is set, the file
|
||||
becomes a "hidden" file that will not be found by most
|
||||
directory programs or by most well-behaved utilities
|
||||
that accept ambiguous filenames. (FA must find system
|
||||
files, of course.)
|
||||
|
||||
A Archive (t3). When this attribute is set, it signals
|
||||
some archival programs that the file has not been
|
||||
modified since it was last backed up. If a file is
|
||||
modified, ZSDOS and ZRDOS turn this attribute off.
|
||||
CP/M does not fully support this attribute, however.
|
||||
|
||||
OTHER OPTIONS: These options affect only the screen display.
|
||||
|
||||
Q Quiet mode. Console output is suppressed unless there
|
||||
is an error. All other operations are performed
|
||||
normally.
|
||||
|
||||
X Screen paging off. With this option, screen paging is
|
||||
turned off. The screen can still be paused by pressing
|
||||
any key except ^C.
|
||||
|
||||
ERRORS: Under ZCPR3, errors will cause FA to set the program
|
||||
error flag and to invoke the error handler. The error flag will
|
||||
be set to the following values:
|
||||
2 invalid directory specification
|
||||
4 miscellaneous (conflicting file, no files on disk)
|
||||
10 no matching files found (no error handler)
|
||||
18 Disk read-only
|
||||
19 Invalid option
|
||||
|
||||
For error code 10 (no matching files found), the error flag is
|
||||
set, but the error handler is not called.
|
||||
|
||||
In addition, under ZCPR 3.3 and above, an invalid directory
|
||||
specification will abort FA to the error handler, but no message
|
||||
is printed.
|
||||
|
||||
The following error messages may be seen:
|
||||
|
||||
Conflicting entry, can't set public attribute
|
||||
If there are files with the same name in other user areas of
|
||||
the disk, the public attribute cannot be set.
|
||||
|
||||
No files on disk
|
||||
The disk directory is empty.
|
||||
|
||||
Bad Option: /o
|
||||
The command line option shown is unknown to FILEATTR.
|
||||
|
||||
Drive R/O
|
||||
The drive is set to read-only by the operating system and
|
||||
attributes cannot be changed.
|
||||
|
||||
CP/M version 2.x required
|
||||
FILEATTR will not run on this system.
|
||||
|
||||
BIOS write error near directory sector n
|
||||
An error occurred at or near the given directory sector,
|
||||
which is expressed as a decimal offset from the beginning of
|
||||
the directory.
|
||||
|
||||
BIOS set track detected - FA aborting
|
||||
A background program is attempting to modify the current
|
||||
track setting. The background program must be removeed
|
||||
before running FA again.
|
||||
|
||||
Not Wheel
|
||||
Under ZCPR3 the wheel byte must be set before FILEATTR can
|
||||
be run.
|
||||
|
||||
CONFIGURATION: While no installation is necessary, all options
|
||||
can be set as defaults, if you prefer, using ZCNFG. The
|
||||
configuration options are fully explained on the ZCNFG help
|
||||
screens.
|
||||
|
||||
It is best not to change the name of the configuration file. Its
|
||||
special name assures that ZCNFG will always find the correct CFG
|
||||
file, even if the name of FA has been changed or if more than one
|
||||
version of FA is online.
|
||||
|
||||
HISTORY:
|
||||
|
||||
Version 1.6 -- April 14, 1991 -- Gene Pizzetta
|
||||
Now displays target DU and directory name in summary. Fixed
|
||||
bug that caused "GO" to be displayed as program name, if it
|
||||
was re-invoked with the GO command.
|
||||
|
||||
Version 1.5 -- March 27, 1991 -- Gene Pizzetta
|
||||
Now calls CP/M version checking routine (it was there, but
|
||||
it wasn't called). Changed error codes: 10, no matching
|
||||
files found. "No files on disk" error now gets
|
||||
miscellaneous error code (4). Error 10 does not invoke
|
||||
error handler. Not released.
|
||||
|
||||
Version 1.4 -- March 20, 1991 -- Gene Pizzetta, Howard Goldstein
|
||||
Code to check module data byte (S2) was replaced by Howard
|
||||
Goldstein's elegant solution which uses a "true" extent
|
||||
number: ((data_mod * 32) + extent). Entering a ^C no
|
||||
longer really aborts FILEATTR; instead FA immediately prints
|
||||
"Wait..." on the screen, turns off paging, turns on quiet
|
||||
mode, sets the results flag, and finishes what it was doing.
|
||||
All this is to prevent unexpected results when only some of
|
||||
a file's directory entries are changed. All errors
|
||||
including a conflicting file found during a PUBLIC request,
|
||||
now set the program error flag and invoke the error handler
|
||||
so an active SUBMIT or ZEX script can be aborted. The error
|
||||
flag will have the following values: 2, invalid directory;
|
||||
10, no files on disk; 18, disk is read-only; 19, invalid
|
||||
option; 4, all other errors. If no matching files are
|
||||
found, the program error flag will be set to FFh, but the
|
||||
error handler will not be invoked. A few other code changes
|
||||
were made, including a check for CP/M-Plus, under which
|
||||
FILEATTR will not work. Not released.
|
||||
|
||||
Version 1.3 -- February 22, 1991 -- Gene Pizzetta
|
||||
Corrected bug that caused faulty operation on large files:
|
||||
The module data byte (S2) byte was not being checked, so
|
||||
such files appeared 2 or more times in the directory display
|
||||
and the public routine was often not finding conflicting
|
||||
files. Added configuration byte and command line option (X)
|
||||
for screen paging (paging is suppressed in quiet mode).
|
||||
Made quiet mode responsive to ZCPR quiet flag and changed Q
|
||||
command line option to toggle. Usage screen reflects
|
||||
current effect of X and Q toggles. Attribute configuration
|
||||
area changed to be compatible with ZCNFG TOGL3 routine.
|
||||
Actions of D and ND options reversed so they work the same
|
||||
as the others. Added configuration byte for printing
|
||||
summary line even in quiet mode, as suggested by Howard
|
||||
Goldstein. Removed blank lines from screen display,
|
||||
allowing three more filenames to be shown. Removed tabs
|
||||
from usage screen so PRINT and PSTR are not needed.
|
||||
Eliminated leading zero from user number display. Now
|
||||
prints "file" instead of "files" in summary when only 1
|
||||
matching file is found. Ditto for attribute(s) altered.
|
||||
|
||||
Version 1.2 -- November 30, 1988 -- Carson Wilson
|
||||
Fixed bug of no program name display when FILEATTR's name
|
||||
was 8 characters long.
|
||||
|
||||
Version 1.1 -- October 30, 1988 -- Carson Wilson
|
||||
Now wildcards the command forms "FA d: /options" and "FA d:
|
||||
options."
|
||||
|
||||
Version 1.0 -- September 26, 1988 -- Carson Wilson
|
||||
If a filespec is given, no leading slash is required before
|
||||
the options. Link with version 4 libraries. Removed /X
|
||||
option--ZSDOS 10T always closes the first extent when a file
|
||||
is written to. Changed summary to read "files matched".
|
||||
|
||||
Version 0.9 -- July 7, 1988 -- Carson Wilson
|
||||
Increased length of search FCB (AMBFIL) by one byte. Set up
|
||||
AMBFIL as '?' + 35 binary 0's. ZRDOS and CP/M zero the
|
||||
drive byte (FCB+0) during search next calls, so reinitialize
|
||||
it to '?' before rescanning the directory. PROGID now
|
||||
prints stored name on GO/JUMP.
|
||||
|
||||
Version 0.8 -- June 26, 1988 -- Carson Wilson
|
||||
Use SYSLIB PRINT for help display. VPRINT does not expand
|
||||
tabs. Now traps disk track changes at the BIOS level.
|
||||
Allows '-' as well as 'N' for "negate option." Auto-
|
||||
wildcards FCB1 for attribute set as well as display.
|
||||
|
||||
Version 0.7 -- May 24, 1988 -- Carson Wilson
|
||||
Cosmetic changes to help, display. Made public routines
|
||||
faster by 1/2 directory scan average. Consolidated file
|
||||
attribute setting/resetting routines for efficiency and
|
||||
clarity.
|
||||
|
||||
Version 0.6 -- May 14, 1988 -- Carson Wilson
|
||||
Changed "Publ" to "Publc" and "Priv" to "Privt". Added Q
|
||||
and X options, made options installable. Added test for bad
|
||||
ZCPR directory & chain to error handler.
|
||||
|
||||
Version 0.5 -- May 4, 1988 -- Carson Wilson
|
||||
Fixed bug at CHKRO inherited from MAKE.ASM. Uses Bridger
|
||||
Mitchell's FRESET to reset disks. Uses ZCPR invocation name
|
||||
in signon, help, etc. Added F4 attribute. Now includes all
|
||||
valid ZSDOS attributes. Help now fully "smart" under ZCPR.
|
||||
Reworked VID3.Z80 and VID4.Z80 from VLIB11 and moved them
|
||||
into FA.Z80 (see end of file). Put STNDOUT mode ON by
|
||||
default at beginning of each attribute display sequence for
|
||||
faster ZCPR displays.
|
||||
|
||||
Version 0.4 -- April 27, 1988 -- Carson Wilson
|
||||
Tests for matching files at other user areas before setting
|
||||
the public attribit.
|
||||
|
||||
Version 0.3 -- April 26, 1988 -- Carson Wilson
|
||||
@@ -1,6 +0,0 @@
|
||||
An update and bug-fix of FILEATTR (FA), a ZSDOS utility that
|
||||
allows rapid setting, resetting, or displaying of file attributes
|
||||
under ZSDOS, ZRDOS, and CP/M 2.2. Several additional features
|
||||
are available under ZCPR3, including error flag setting, error
|
||||
handler invocation, and an enhanced display. Version 1.6A adds
|
||||
documentation; otherwise, same as 1.6.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user