Browse Source

Merge pull request #237 from b1ackmai1er/dev

Create ROM Applications.md
pull/246/head
Wayne Warthen 4 years ago
committed by GitHub
parent
commit
72eddcf699
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 185
      Source/Doc/ROM Applications.md

185
Source/Doc/ROM Applications.md

@ -0,0 +1,185 @@
!include(Common.inc)
!def(document)(ROM Applications)
---
title: !product !document
author: !author (mailto:!authmail)
date: !date
institution: !orgname
documentclass: article
toc: true
toc-depth: 1
classoption:
- oneside
papersize: letter
geometry:
- top=1.5in
- bottom=1.5in
- left=1.5in
- right=1.5in
# - showframe
linestretch: 1.25
colorlinks: true
fontfamily: helvet
fontsize: 12pt
header-includes:
- |
```{=latex}
\renewcommand*{\familydefault}{\sfdefault}
```
---
`\clearpage % new page after TOC`{=latex}
# Summary
RomWBW includes a small selection of built in utilities and
programming languages.
`\clearpage`{=latex}
#ROMWBW Monitor
The Monitor program is a low level utility that can be used
for testing and programming. It allows programs to be entered,
memory to be examined, and input/output devices to be read or
written to.
It's key advantage is that is available at boot up.
A quick guide to using the Monitor program follows:
##? - Displays a summary of available commands.
`Monitor Commands (all values in hex):`
`B - Boot system`
`D xxxx yyyy - Dump memory from xxxx to yyyy`
`F xxxx yyyy zz - Fill memory from xxxx to yyyy with zz`
`H - Halt system`
`I xxxx - Input from port xxxx`
`K - Keyboard echo`
`L - Load Intel hex data`
`M xxxx yyyy zzzz - Move memory block xxxx-yyyy to zzzz`
`O xxxx yy - Output value yy to port xxxx`
`P xxxx - Program RAM at address xxxx`
`R xxxx - Run code at address xxxx`
`S xx - Set bank to xx`
`X - Exit monitor`
##Cold Boot
B - Performs a cold boot of the ROMWBW system. A complete
reinitialization of the system is performed and the system
returns to the Boot Loader prompt.
##Dump Memory
D xxxx yyyy - Dump memory from hex location xxxx to yyyy
on the screen as lines of 16 hexadecimal bytes with their
ASCII equivalents (if within a set range, else a '.' is
printed). A good tool to see where code is located, check
for version id, obtain details for chip configurations and
execution paths.
Examples: D 100 1FF
0100: 10 0B 01 5A 33 45 4E 56 01 00 00 2A 06 00 F9 11 ...Z3ENV...*..ù.
0110: DE 38 37 ED 52 4D 44 0B 6B 62 13 36 00 ED B0 21 Þ87íRMD.kb.6.í°!
0120: 7D 32 E5 21 80 00 4E 23 06 00 09 36 00 21 81 00 }2å!..N#...6.!..
0130: E5 CD 6C 1F C1 C1 E5 2A C9 8C E5 CD 45 05 E5 CD åÍl.ÁÁå*É.åÍE.åÍ
0140: 59 1F C3 00 00 C3 AE 01 C3 51 04 C3 4C 02 C3 57 Y.Ã..î.ÃQ.ÃL.ÃW
0150: 02 C3 64 02 C3 75 02 C3 88 02 C3 B2 03 C3 0D 04 .Ãd.Ãu.Ã..ò.Ã..
0160: C3 19 04 C3 22 04 C3 2A 04 C3 35 04 C3 40 04 C3 Ã..Ã".Ã*.Ã5.Ã@.Ã
0170: 48 04 C3 50 04 C3 50 04 C3 50 04 C3 8F 02 C3 93 H.ÃP.ÃP.ÃP.Ã..Ã.
0180: 02 C3 94 02 C3 95 02 C3 85 04 C3 C7 04 C3 D1 01 .Ã..Ã..Ã..ÃÇ.ÃÑ.
0190: C3 48 02 C3 E7 04 C3 56 03 C3 D0 01 C3 D0 01 C3 ÃH.Ãç.ÃV.ÃÐ.ÃÐ.Ã
01A0: D0 01 C3 D0 01 C3 D0 01 C3 D0 01 01 02 01 CD 6B Ð.ÃÐ.ÃÐ.ÃÐ....Ík
01B0: 04 54 68 69 73 20 66 75 6E 63 74 69 6F 6E 20 6E .This function n
01C0: 6F 74 20 73 75 70 70 6F 72 74 65 64 2E 0D 0A 00 ot supported....
01D0: C9 3E FF 32 3C 00 3A 5D 00 FE 20 28 14 D6 30 32 É>ÿ2<.:].þ (.Ö02
01E0: AB 01 32 AD 01 3A 5E 00 FE 20 28 05 D6 30 32 AC «.2­.:^.þ (.Ö02¬
01F0: 01 C5 01 F0 F8 CF E5 26 00 0E 0A CD 39 02 7D 3C .Å.ðøÏå&...Í9.}<
##Fill Memory
F xxxx yyyy zz - Fill memory from hex xxxx to yyyy with
a single value of zz over the full range. The Dump command
can be used to confirm that the Fill completed as expected. A
good way to zero out memory areas before writing machine data
for debug purposes.
## Halt System
H - Halt system. A Z80 HALT instruction is executed. The
system remains in the halt state until the system is
physically rebooted. Interrupts will not restart the
system. On systems that support a HALT status LED, the
LED will be illuminated.
## Input from port
I xxxx - Input data from port xxxx and display to the screen.
This command is used to read values from hardware I/O ports
and display the contents in hexadecimal.
## Keyboard Echo
K - Echo any key-presses from the terminal. Press 'ESC' key
to quit. This facility provides that any key stroke sent to
the computer will be echoed back to the terminal. File down
loads will be echoed as well while this facility is ‘on’.
## Load Hex format file into memory
L - Load a Intel Hex format file via the terminal program.
The terminal emulator program should be configured to
give a delay at the end of each line to allow the monitor
enough time to parse the line and move the data to memory.
Keep in mind that this will be a transient unless the
system support backed memory. Saving to memory drive is
not supported.
## Move memory
M xxxx yyyy zzzz - Move hex memory block xxxx to yyyy to
memory starting at hex location zzzz. Care should be taken
to insure that there is enough memory at the destination so
that code does not get over-written or memory wrapped around.
## Output to port
O xxxx yy - Output data byte xx to port xxxx. This command is
used to send hexadecimal values to hardware I/O ports to
verify their operation and is the companion to the I operation.
Use clip leaded LEDs to confirm the data written.
## Program memory location
P xxxx - Program memory location xxxx. This routine will
allow you to program a hexidecimal into memory starting
at location xxxx. Press 'Enter' on a blank line to
return to the Monitor prompt.
##NOTES:
The Monitor allows access to all memory locations. ROM and
Flash memory cannot be written to. Memory outside the normal
address range can be accessed using the B command. Page 0
(first 256 bytes) is critical for the HBIOS operation.
Changing banks may make this inforrmation inaccessible.
The RTC utility on the CP/M ROM disk provides facilities
to manipulate the Real Time Clock non-volatile Memory.
Use the C or Z option from the Boot Loader to load CP/M
and then run RTC to see the options list.
#FORTH
#BASIC
#TastyBASIC
#Play a Game
#Network Boot
#ZModem Flash Update
Loading…
Cancel
Save