i regret my decisions
This commit is contained in:
parent
eea8ef5513
commit
d14c260889
14 changed files with 2 additions and 170 deletions
BIN
6.out
BIN
6.out
Binary file not shown.
BIN
a.out
BIN
a.out
Binary file not shown.
BIN
cpu.6
BIN
cpu.6
Binary file not shown.
3
fns.h
3
fns.h
|
@ -8,6 +8,3 @@ extern u8int pop8(void);
|
||||||
extern u16int pop16(void);
|
extern u16int pop16(void);
|
||||||
extern u8int fetch8(void);
|
extern u8int fetch8(void);
|
||||||
extern u16int fetch16(void);
|
extern u16int fetch16(void);
|
||||||
|
|
||||||
extern void in(void*);
|
|
||||||
extern void out(void*);
|
|
||||||
|
|
BIN
in.6
BIN
in.6
Binary file not shown.
22
in.c
22
in.c
|
@ -1,22 +0,0 @@
|
||||||
#include <u.h>
|
|
||||||
#include <libc.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include "dat.h"
|
|
||||||
#include "fns.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
in(void*)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
|
|
||||||
for(;;){
|
|
||||||
if(memread(0x7005) == 1){
|
|
||||||
memwrite(0x7004, 1);
|
|
||||||
read(0, &c, 1);
|
|
||||||
c = toupper(c);
|
|
||||||
memwrite(0x7003, c);
|
|
||||||
memwrite(0x7004, 0);
|
|
||||||
memwrite(0x7005, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
BIN
main.6
BIN
main.6
Binary file not shown.
5
main.c
5
main.c
|
@ -1,6 +1,5 @@
|
||||||
#include <u.h>
|
#include <u.h>
|
||||||
#include <libc.h>
|
#include <libc.h>
|
||||||
#include <thread.h>
|
|
||||||
#include "dat.h"
|
#include "dat.h"
|
||||||
#include "fns.h"
|
#include "fns.h"
|
||||||
|
|
||||||
|
@ -36,7 +35,7 @@ openprog(char *f)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
threadmain(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
vlong t, t2, t3;
|
vlong t, t2, t3;
|
||||||
|
@ -65,8 +64,6 @@ threadmain(int argc, char **argv)
|
||||||
rP = 0x34;
|
rP = 0x34;
|
||||||
pc = 0xFFFC;
|
pc = 0xFFFC;
|
||||||
pc = fetch16();
|
pc = fetch16();
|
||||||
threadcreate(in, nil, mainstacksize);
|
|
||||||
threadcreate(out, nil, mainstacksize);
|
|
||||||
for(;;){
|
for(;;){
|
||||||
c = step();
|
c = step();
|
||||||
while(c >= 0){
|
while(c >= 0){
|
||||||
|
|
BIN
mem.6
BIN
mem.6
Binary file not shown.
2
mkfile
2
mkfile
|
@ -3,7 +3,7 @@
|
||||||
BIN=/$objtype/bin
|
BIN=/$objtype/bin
|
||||||
|
|
||||||
TARG=scemu
|
TARG=scemu
|
||||||
OFILES=main.$O cpu.$O mem.$O in.$O out.$O
|
OFILES=main.$O cpu.$O mem.$O
|
||||||
UPDATE=mkfile prog.s ${OFILES:%.$O=%.c}
|
UPDATE=mkfile prog.s ${OFILES:%.$O=%.c}
|
||||||
|
|
||||||
default:V: $O.out
|
default:V: $O.out
|
||||||
|
|
BIN
out.6
BIN
out.6
Binary file not shown.
19
out.c
19
out.c
|
@ -1,19 +0,0 @@
|
||||||
#include <u.h>
|
|
||||||
#include <libc.h>
|
|
||||||
#include "dat.h"
|
|
||||||
#include "fns.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
out(void*)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
if(memread(0x7002) == 1){ /* ready to be fiddled */
|
|
||||||
memwrite(0x7001, 1); /* we are busy */
|
|
||||||
c = memread(0x7000);
|
|
||||||
print("%c", c);
|
|
||||||
memwrite(0x7002, 0);
|
|
||||||
memwrite(0x7001, 0);
|
|
||||||
}
|
|
||||||
}
|
|
24
test.s
24
test.s
|
@ -1,24 +0,0 @@
|
||||||
.org $8000
|
|
||||||
reset:
|
|
||||||
lda #$01
|
|
||||||
sta $7005
|
|
||||||
loop:
|
|
||||||
lda $7004
|
|
||||||
bne loop
|
|
||||||
lda $7003
|
|
||||||
sta $7000
|
|
||||||
lda #$01
|
|
||||||
sta $7002
|
|
||||||
waiting:
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
lda $7001
|
|
||||||
bne waiting
|
|
||||||
.byte $ff
|
|
||||||
|
|
||||||
.org $fffa
|
|
||||||
.word $8000
|
|
||||||
.word $8000
|
|
||||||
.word $8000
|
|
97
wozmon.s
97
wozmon.s
|
@ -1,97 +0,0 @@
|
||||||
xaml = $24
|
|
||||||
xamh = $25
|
|
||||||
l = $28
|
|
||||||
h = $29
|
|
||||||
ysav = $2a
|
|
||||||
mode = $2b
|
|
||||||
asav = $2c
|
|
||||||
curchar = $2d
|
|
||||||
|
|
||||||
.org $fe00
|
|
||||||
reset:
|
|
||||||
cld
|
|
||||||
cli
|
|
||||||
lda #$03
|
|
||||||
notcr:
|
|
||||||
cmp #$03 ; is etx, subst. for esc
|
|
||||||
beq escape
|
|
||||||
iny
|
|
||||||
bpl nextchar
|
|
||||||
escape:
|
|
||||||
lda #$5c
|
|
||||||
jsr echo
|
|
||||||
getline:
|
|
||||||
lda #$0a
|
|
||||||
jsr echo
|
|
||||||
setstor:
|
|
||||||
asl
|
|
||||||
setmode:
|
|
||||||
sta mode
|
|
||||||
blskip:
|
|
||||||
nextchar:
|
|
||||||
ldy #1
|
|
||||||
sty $7005
|
|
||||||
nextcharl:
|
|
||||||
lda $7004 ; have next char?
|
|
||||||
beq nextcharl
|
|
||||||
lda $7003
|
|
||||||
sta curchar
|
|
||||||
cmp #$2e ; .
|
|
||||||
bcc blskip
|
|
||||||
beq setmode
|
|
||||||
cmp #$3a ; :
|
|
||||||
beq setstor
|
|
||||||
cmp #$52 ; R
|
|
||||||
beq run
|
|
||||||
stx l
|
|
||||||
stx h
|
|
||||||
sty ysav
|
|
||||||
nexthex:
|
|
||||||
lda curchar
|
|
||||||
eor #$b0
|
|
||||||
cmp #$0a
|
|
||||||
bcc dig
|
|
||||||
adc #$b9
|
|
||||||
cmp #$fa
|
|
||||||
bcc nothex
|
|
||||||
dig:
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
ldx #$04
|
|
||||||
hexshift:
|
|
||||||
asl
|
|
||||||
rol l
|
|
||||||
rol h
|
|
||||||
dex
|
|
||||||
bne hexshift
|
|
||||||
bne nexthex
|
|
||||||
nothex:
|
|
||||||
cpy ysav
|
|
||||||
beq escape
|
|
||||||
bit mode
|
|
||||||
jmp nextchar
|
|
||||||
run:
|
|
||||||
jmp (xaml)
|
|
||||||
echo:
|
|
||||||
sta asav
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
lda asav
|
|
||||||
tax
|
|
||||||
echol:
|
|
||||||
lda $7001
|
|
||||||
cmp #$01
|
|
||||||
beq echol
|
|
||||||
stx $7000
|
|
||||||
lda #$01
|
|
||||||
sta $7002
|
|
||||||
pla
|
|
||||||
tax
|
|
||||||
rts
|
|
||||||
|
|
||||||
.org $fffa
|
|
||||||
.word $f000
|
|
||||||
.word reset
|
|
||||||
.word $0000
|
|
Loading…
Add table
Reference in a new issue