Initial commit
This commit is contained in:
commit
f560e63a50
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.tap
|
||||||
|
*bin
|
||||||
|
*bincs
|
||||||
|
ac
|
33
Makefile
Normal file
33
Makefile
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
program.tap: program.asm headerbincs body.tap
|
||||||
|
pasmo program.asm program.tap
|
||||||
|
|
||||||
|
headerbincs: headerbin ac
|
||||||
|
cp headerbin headerbincs
|
||||||
|
./ac headerbincs
|
||||||
|
|
||||||
|
headerbin: header.tap
|
||||||
|
dd if=header.tap of=headerbin bs=1 count=18
|
||||||
|
|
||||||
|
header.tap: header.asm body.tap
|
||||||
|
pasmo header.asm header.tap
|
||||||
|
|
||||||
|
body.tap: body.asm bodybincs
|
||||||
|
pasmo body.asm body.tap
|
||||||
|
|
||||||
|
bodybincs: bodybin ac
|
||||||
|
cp bodybin bodybincs
|
||||||
|
./ac bodybincs
|
||||||
|
|
||||||
|
bodybin: remload.asm
|
||||||
|
pasmo remload.asm bodybin
|
||||||
|
|
||||||
|
ac: append_checksum.c
|
||||||
|
cc append_checksum.c -o ac
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.tap
|
||||||
|
rm -f *bin
|
||||||
|
rm -f *bincs
|
||||||
|
rm -f ac
|
||||||
|
|
||||||
|
.PHONY: clean
|
26
append_checksum.c
Normal file
26
append_checksum.c
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
unsigned char tally = 0;
|
||||||
|
unsigned char next = 0;
|
||||||
|
if (argc!=2) return -1;
|
||||||
|
|
||||||
|
fd = open(argv[1], O_RDWR|O_APPEND);
|
||||||
|
if (fd<0) return -2;
|
||||||
|
|
||||||
|
while (read(fd, &next, 1)) {
|
||||||
|
//printf("Tally: %X, next byte: %X\n", tally, next);
|
||||||
|
tally ^= next;
|
||||||
|
};
|
||||||
|
|
||||||
|
printf("Final tally: %X\n", tally);
|
||||||
|
|
||||||
|
write(fd, &tally, 1);
|
||||||
|
|
||||||
|
close(fd);
|
||||||
|
return 0;
|
||||||
|
}
|
7
body.asm
Normal file
7
body.asm
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
bodylength:
|
||||||
|
dw bodyend - bodycontent
|
||||||
|
|
||||||
|
bodycontent:
|
||||||
|
INCBIN bodybincs
|
||||||
|
|
||||||
|
bodyend:
|
24
header.asm
Normal file
24
header.asm
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
headerflag:
|
||||||
|
db 0
|
||||||
|
|
||||||
|
blocktype:
|
||||||
|
db 0 ;basic program
|
||||||
|
|
||||||
|
filename:
|
||||||
|
db "LOADER "
|
||||||
|
|
||||||
|
payloadlength:
|
||||||
|
dw endbodytap - bodytap - 4
|
||||||
|
|
||||||
|
autorunlinenumber:
|
||||||
|
dw 0
|
||||||
|
|
||||||
|
variablearea:
|
||||||
|
dw endbodytap - bodytap - 4
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
db 0
|
||||||
|
|
||||||
|
bodytap:
|
||||||
|
INCBIN body.tap
|
||||||
|
endbodytap:
|
5
program.asm
Normal file
5
program.asm
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
headlength:
|
||||||
|
dw 19
|
||||||
|
|
||||||
|
INCBIN headerbincs
|
||||||
|
INCBIN body.tap
|
61
remload.asm
Normal file
61
remload.asm
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
org #5cca
|
||||||
|
|
||||||
|
bodyformat:
|
||||||
|
db #ff
|
||||||
|
linenumber:
|
||||||
|
db #00 ;MSB
|
||||||
|
db #00 ;LSB
|
||||||
|
|
||||||
|
linelength:
|
||||||
|
dw eol - border ;will need calculated and adjusted post hoc. Length of text including ENTER
|
||||||
|
border:
|
||||||
|
db #e7, '0' ;BORDER 0
|
||||||
|
db #0e ;number
|
||||||
|
db 0,0 ;mantissa
|
||||||
|
dw 0 ;number
|
||||||
|
db 0
|
||||||
|
db ':'
|
||||||
|
|
||||||
|
paper:
|
||||||
|
db #da, '0' ;PAPER 0
|
||||||
|
db #0e
|
||||||
|
db 0,0
|
||||||
|
dw 0
|
||||||
|
db 0
|
||||||
|
db ':'
|
||||||
|
|
||||||
|
ink:
|
||||||
|
db #d9, '7' ;INK 7
|
||||||
|
db #0e
|
||||||
|
db 0,0
|
||||||
|
dw 7
|
||||||
|
db 0
|
||||||
|
db ':'
|
||||||
|
|
||||||
|
clear:
|
||||||
|
db #fd, "59999" ;CLEAR 59999 - presumably code will be loaded somewhere?
|
||||||
|
db #0e
|
||||||
|
db 0,0
|
||||||
|
dw 59999
|
||||||
|
db 0
|
||||||
|
db ':'
|
||||||
|
|
||||||
|
printusr:
|
||||||
|
db #f5, #c0 ;PRINT USR
|
||||||
|
db "0" ;don't know if actual value is important
|
||||||
|
db #0e
|
||||||
|
db 0,0
|
||||||
|
dw code ;actual call to REM statement code
|
||||||
|
db 0
|
||||||
|
db ':'
|
||||||
|
|
||||||
|
remcode:
|
||||||
|
db #ea ;REM
|
||||||
|
|
||||||
|
code:
|
||||||
|
ld bc, 42 ;your code goes here
|
||||||
|
ret
|
||||||
|
|
||||||
|
enter:
|
||||||
|
db #0d
|
||||||
|
eol:
|
Loading…
Reference in New Issue
Block a user