Compare commits
2 Commits
6bff03a48b
...
581c6d015c
Author | SHA1 | Date | |
---|---|---|---|
|
581c6d015c | ||
|
a2136e604d |
5
blk/003
5
blk/003
@ -10,8 +10,7 @@ the dictionary (B30) for a word reference.
|
|||||||
|
|
||||||
Contents
|
Contents
|
||||||
|
|
||||||
4 Number literals 6 Compilation vs meta-comp.
|
5 Number literals 6 Compilation vs meta-comp.
|
||||||
8 Interpreter I/O 11 Signed-ness
|
8 Interpreter I/O 11 Signed-ness
|
||||||
14 Addressed devices 17 DOES>
|
14 Addressed devices 17 DOES>
|
||||||
18 Disk blocks 21 How blocks are organized
|
18 Disk blocks (cont.)
|
||||||
22 Addressed devices
|
|
||||||
|
12
blk/004
12
blk/004
@ -1,11 +1 @@
|
|||||||
Number literals
|
21 How blocks are organized 22 Addressed devices
|
||||||
|
|
||||||
Traditional Forth often use HEX/DEC switches to go from decimal
|
|
||||||
to hexadecimal parsing. Collapse OS parses literals in a way
|
|
||||||
that is closer to C.
|
|
||||||
|
|
||||||
Straight numbers are decimals, numbers starting with "0x"
|
|
||||||
are hexadecimals (example "0x12ef"), "0b" prefixes indicate
|
|
||||||
binary (example "0b1010"), char literals are single characters
|
|
||||||
surrounded by ' (example 'X'). Char literals can't be used for
|
|
||||||
whitespaces.
|
|
||||||
|
12
blk/005
Normal file
12
blk/005
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Number literals
|
||||||
|
|
||||||
|
Traditional Forth often use HEX/DEC switches to go from decimal
|
||||||
|
to hexadecimal parsing. Collapse OS parses literals in a way
|
||||||
|
that is closer to C.
|
||||||
|
|
||||||
|
Straight numbers are decimals, numbers starting with "0x"
|
||||||
|
are hexadecimals (example "0x12ef"), "0b" prefixes indicate
|
||||||
|
binary (example "0b1010"), char literals are single characters
|
||||||
|
surrounded by ' (example 'X'). Char literals can't be used for
|
||||||
|
whitespaces.
|
||||||
|
|
@ -34,19 +34,13 @@ I don't think you need a schematic. It's really simple.
|
|||||||
|
|
||||||
### Building the binary
|
### Building the binary
|
||||||
|
|
||||||
You build the binary by modifying the base recipe's `xcomp` unit. This binary
|
The binary from the base recipe has almost all it needs to write to EEPROM. The
|
||||||
is missing 2 things: Addressed devices and the AT28 Driver.
|
only thing it needs is the AT28 driver from B590. You could add it to the
|
||||||
|
`xcomp` unit and rebuild, but the driver is so tiny, you're probably better off
|
||||||
|
loading it at runtime.
|
||||||
|
|
||||||
Addressed devices are at B140. If you read that block, you'll see that it tells
|
If your system has mass storage, it's as easy as a LOAD. If it doesn't, you
|
||||||
you to load block 142. Open the `xcomp` unit and locate the ACIA driver loading
|
can use `/tools/exec` to send `blk/591` to the RC2014.
|
||||||
line. Insert your new load line after that one.
|
|
||||||
|
|
||||||
Do the same thing with the AT28 driver (B590)
|
|
||||||
|
|
||||||
You also have to modify the initialization sequence at the end of the `xcomp`
|
|
||||||
unit to include `ADEV$`.
|
|
||||||
|
|
||||||
Build again, write `os.com` to EEPROM.
|
|
||||||
|
|
||||||
## Writing contents to the AT28
|
## Writing contents to the AT28
|
||||||
|
|
||||||
@ -58,7 +52,7 @@ run this from your modern computer:
|
|||||||
./upload <tty device> a000 <filename>
|
./upload <tty device> a000 <filename>
|
||||||
|
|
||||||
Then, activate `AT28!` with `' AT28! A!* !` and then run
|
Then, activate `AT28!` with `' AT28! A!* !` and then run
|
||||||
`0xa000 0x2000 <size-of-bin> AMOVE`. `AT28!` checks every myte for integrity,
|
`0xa000 0x2000 <size-of-bin> AMOVE`. `AT28!` checks every byte for integrity,
|
||||||
so it there's no error, you should be fine. Your content is now on the EEPROM!
|
so it there's no error, you should be fine. Your content is now on the EEPROM!
|
||||||
|
|
||||||
Why not upload content directly to `0x2000` after having activated `AT28!`?
|
Why not upload content directly to `0x2000` after having activated `AT28!`?
|
||||||
|
Loading…
Reference in New Issue
Block a user