mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-26 15:28:05 +11:00
Compare commits
2 Commits
fc67b88720
...
b046aba7f9
Author | SHA1 | Date | |
---|---|---|---|
|
b046aba7f9 | ||
|
1b2c4b519e |
1
blk/393
1
blk/393
@ -1,4 +1,5 @@
|
||||
: RAM+ [ RAMSTART LITN ] + ;
|
||||
: BIN+ [ BIN( @ LITN ] + ;
|
||||
: (parse*) 0x0a RAM+ ;
|
||||
: HERE 0x04 RAM+ ;
|
||||
: CURRENT* 0x51 RAM+ ;
|
||||
|
24
emul/run.fs
24
emul/run.fs
@ -1,24 +0,0 @@
|
||||
: EFS@
|
||||
256 /MOD 3 PC! 3 PC!
|
||||
1024 0 DO
|
||||
4 PC@
|
||||
BLK( I + C!
|
||||
LOOP
|
||||
;
|
||||
: EFS!
|
||||
256 /MOD 3 PC! 3 PC!
|
||||
1024 0 DO
|
||||
BLK( I + C@ 4 PC!
|
||||
LOOP
|
||||
;
|
||||
|
||||
: INIT
|
||||
CURRENT @ HERE !
|
||||
BLK$
|
||||
['] EFS@ BLK@* !
|
||||
['] EFS! BLK!* !
|
||||
RDLN$
|
||||
LIT< _sys [entry]
|
||||
." Collapse OS" CRLF
|
||||
INTERPRET
|
||||
;
|
BIN
emul/stage0.bin
BIN
emul/stage0.bin
Binary file not shown.
@ -25,4 +25,4 @@
|
||||
|
||||
(entry) _
|
||||
H@ 256 /MOD 2 PC! 2 PC!
|
||||
H@ 0x08 ! ( update LATEST )
|
||||
H@ 0x08 BIN+ ! ( update LATEST )
|
||||
|
@ -1,2 +0,0 @@
|
||||
(entry) _
|
||||
H@ 256 /MOD 2 PC! 2 PC!
|
@ -63,10 +63,10 @@ my knowledge. As far as I know, the COMM program doesn't allow this.
|
||||
What are we going to do? We're going to punch in a binary program to handle that
|
||||
kind of reception! You're gonna feel real badass about it too...
|
||||
|
||||
## Building the binary
|
||||
## Building the stage 1
|
||||
|
||||
You can start the process by building the binary. Running `make` in this folder
|
||||
will yield a `os.bin` file. You'll need it later.
|
||||
You can start the process by building the stage 1 binary. Running `make` in
|
||||
this folder will yield a `stage1.bin` file. You'll need it later.
|
||||
|
||||
## Testing serial communication
|
||||
|
||||
@ -167,7 +167,7 @@ filename to send. Before you send the binary, make it go through
|
||||
`tools/ttysafe` first (which just takes input from stdin and spits tty-safe
|
||||
content to stdout):
|
||||
|
||||
./ttysafe < os.bin > os.ttysafe
|
||||
./ttysafe < stage1.bin > stage1.ttysafe
|
||||
|
||||
On OpenBSD, the invocation can look like:
|
||||
|
||||
@ -198,12 +198,30 @@ session on the other, type a few characters, and try `pingpong` again.
|
||||
|
||||
## Running Collapse OS
|
||||
|
||||
If everything went well, you can run Collapse OS with `g3000<space>`. You'll
|
||||
If everything went well, you can run Collapse OS with `g3000<return>`. You'll
|
||||
get a usable Collapse OS prompt!
|
||||
|
||||
Like with the `recv` program, nothing stops you from dumping that binary to a
|
||||
floppy.
|
||||
|
||||
## Saving to disk
|
||||
|
||||
You could save your sent content as-is by following the instructions you had
|
||||
for the `RECV` program, but that would mean that your executable would boostrap
|
||||
itself every time it starts, which takes multiple seconds. You're better off
|
||||
saving a compiled version of Collapse OS, something you already have once you
|
||||
see the "ok" after running `g3000<return>`.
|
||||
|
||||
Before you do that, however, you need to update your `LATEST` field, something
|
||||
you can do with `CURRENT @ 0x08 BIN+ !`. You also need to know where your
|
||||
binary stops, something you'll get with `H@ .X`.
|
||||
|
||||
Then, you can go back to TRSDOS with the BREAK key followed by `o<return>` and
|
||||
proceed with writing the proper memory area to disk.
|
||||
|
||||
TODO: make this work. this doesn't actually work. Saving it before compilation
|
||||
works though.
|
||||
|
||||
## Configuration
|
||||
|
||||
In addition to the generic basic shell, this build of Collapse OS has support
|
||||
|
@ -1,5 +1,5 @@
|
||||
0x6000 CONSTANT RAMSTART
|
||||
0xf000 CONSTANT RS_ADDR
|
||||
RS_ADDR 0x80 - CONSTANT RAMSTART
|
||||
212 LOAD ( z80 assembler )
|
||||
262 LOAD ( xcomp )
|
||||
: CODE XCODE ;
|
||||
@ -17,6 +17,7 @@ H@ 256 /MOD 2 PC! 2 PC!
|
||||
(entry) _
|
||||
( Update LATEST )
|
||||
PC ORG @ 8 + !
|
||||
," CURRENT @ HERE ! "
|
||||
422 463 XPACKR ( core cmp print parse readln fmt )
|
||||
," : _ RDLN$ (ok) ; _ "
|
||||
," : INIT CURRENT @ HERE ! RDLN$ (ok) INTERPRET ; INIT "
|
||||
H@ 256 /MOD 2 PC! 2 PC!
|
||||
|
Loading…
Reference in New Issue
Block a user