mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-29 08:55:10 +00:00
tiny_gr: update to be more robust
This commit is contained in:
parent
cd024402ae
commit
b6518e69ab
@ -9,13 +9,13 @@ all: tiny_gr8.dsk
|
|||||||
tiny_gr8.dsk: HELLO TINY_GR
|
tiny_gr8.dsk: HELLO TINY_GR
|
||||||
cp $(EMPTYDISK) tiny_gr8.dsk
|
cp $(EMPTYDISK) tiny_gr8.dsk
|
||||||
$(DOS33) -y tiny_gr8.dsk SAVE A HELLO
|
$(DOS33) -y tiny_gr8.dsk SAVE A HELLO
|
||||||
$(DOS33) -y tiny_gr8.dsk BSAVE -a 0xB8 TINY_GR
|
$(DOS33) -y tiny_gr8.dsk BSAVE -a 0xB9 TINY_GR
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
submit: text8.zip
|
submit: tiny_gr8.zip
|
||||||
|
|
||||||
text8.zip: TINY_GR tiny_gr.s file_id.diz tiny_gr8.dsk
|
tiny_gr8.zip: TINY_GR tiny_gr.s file_id.diz tiny_gr8.dsk
|
||||||
mkdir -p lovebyte2021_tiny_gr8
|
mkdir -p lovebyte2021_tiny_gr8
|
||||||
cp TINY_GR ./lovebyte2021_tiny_gr8
|
cp TINY_GR ./lovebyte2021_tiny_gr8
|
||||||
cp tiny_gr.s ./lovebyte2021_tiny_gr8
|
cp tiny_gr.s ./lovebyte2021_tiny_gr8
|
||||||
@ -35,7 +35,7 @@ HELLO: hello.bas
|
|||||||
###
|
###
|
||||||
|
|
||||||
TINY_GR: tiny_gr.o
|
TINY_GR: tiny_gr.o
|
||||||
ld65 -o TINY_GR tiny_gr.o -C ./apple2_b8.inc
|
ld65 -o TINY_GR tiny_gr.o -C ./apple2_b9.inc
|
||||||
|
|
||||||
tiny_gr.o: tiny_gr.s
|
tiny_gr.o: tiny_gr.s
|
||||||
ca65 -o tiny_gr.o tiny_gr.s -l tiny_gr.lst
|
ca65 -o tiny_gr.o tiny_gr.s -l tiny_gr.lst
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $00, size = $1A, type = rw;
|
ZP: start = $00, size = $1A, type = rw;
|
||||||
RAM: start = $b8, size = $8E00, file = %O;
|
RAM: start = $b9, size = $8E00, file = %O;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEGMENTS {
|
SEGMENTS {
|
@ -1,5 +1,17 @@
|
|||||||
Tiny Text
|
Tiny GR 8
|
||||||
-
|
-
|
||||||
Textmode Hex Scroller
|
8-byte Intro for Apple II, Lovebyte 2022
|
||||||
8-byte Intro for Apple II, Lovebyte 2021
|
|
||||||
by Deater / dSr
|
by Deater / dSr
|
||||||
|
|
||||||
|
You can't do much 6502 assembly in 8 bytes.
|
||||||
|
This code takes advantage of the fact that on boot, Applesoft BASIC
|
||||||
|
puts a short routine CHRGET in RAM at address $B1-$C8 that parses
|
||||||
|
tokens. We can drop our code in the middle of there and re-use
|
||||||
|
some of the branching infrastructure.
|
||||||
|
|
||||||
|
What this code does is just read out memory, starting at $7800 and
|
||||||
|
printing it to the screen, with lo-res mode enabled. This makes
|
||||||
|
a pattern that depends on the default power up of the DRAM (white and black
|
||||||
|
bars for many Apple II models). At the end it crashes through DOS3.3
|
||||||
|
(the colored pattern) and then into the MMIO (soft-switch) area
|
||||||
|
which leads to a switch to hi-res, some brief sound, then a crash.
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
5 HOME
|
5 HOME
|
||||||
10 PRINT "TINY TEXT -- AN 8 BYTE APPLE II INTRO"
|
10 PRINT " TINY GR -- AN 8 BYTE APPLE II INTRO"
|
||||||
15 PRINT " BY DEATER / DSR"
|
15 PRINT " BY DEATER / DSR"
|
||||||
20 PRINT CHR$(4)"CATALOG"
|
20 PRINT CHR$(4)"CATALOG"
|
||||||
25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN TINY_TEXT'"
|
25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN TINY_GR'"
|
||||||
30 GET A$
|
30 GET A$
|
||||||
35 PRINT
|
35 PRINT
|
||||||
40 PRINT CHR$(4)"BRUN TINY_TEXT"
|
40 PRINT "]BRUN TINY_GR"
|
||||||
|
50 PRINT CHR$(4)"BRUN TINY_GR"
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
; trying to make small graphics in 8 bytes for Apple II
|
; trying to make small graphics in 8 bytes for Apple II
|
||||||
|
|
||||||
|
; drops into the middle of the CHRGET get next token routine
|
||||||
|
; that the Applesoft interpreter copies to $B1 - $C8 on boot
|
||||||
|
|
||||||
; zero page locations
|
; zero page locations
|
||||||
|
|
||||||
@ -15,7 +17,30 @@ COUT1 = $FDF0 ; output A to screen
|
|||||||
|
|
||||||
tiny_gr:
|
tiny_gr:
|
||||||
|
|
||||||
|
;chrget B1: E6 B8 inc txtptrl
|
||||||
|
; B3: D0 02 bne chrgot
|
||||||
|
; B5: E6 B9 inc txtptrh
|
||||||
|
;chrgot B7: AD 00 08 lda $800 txtprtrl/txtptrh
|
||||||
|
; BA: C9 3A cmp #$3A
|
||||||
|
; BC: B0 0A bcs end
|
||||||
|
; BE: C9 20 cmp #$20
|
||||||
|
; C0: F0 EF beq chrget
|
||||||
|
; C2: 38 sec
|
||||||
|
; C3: E9 30 sbc #$30
|
||||||
|
; C5: 38 sec
|
||||||
|
; C6: E9 D0 sbc #$D0
|
||||||
|
; C8: 60 rts
|
||||||
|
|
||||||
|
; we drop this at B9
|
||||||
|
|
||||||
|
;chrget B1: E6 B8 inc txtptrl
|
||||||
|
; B3: D0 02 bne chrgot
|
||||||
|
; B5: E6 B9 inc txtptrh
|
||||||
|
;chrgot B7: AD 00 08 lda $800
|
||||||
tiny_loop:
|
tiny_loop:
|
||||||
lda #$20
|
; lda $7800
|
||||||
bit $C050
|
.byte $78 ; sei ; B9
|
||||||
jsr COUT
|
bit $C050 ; BA BB BC set LORES
|
||||||
|
jsr COUT1 ; BD BE BF output A to stdout, with scroll
|
||||||
|
.byte $50 ; bvc (bra we hope) ; C0
|
||||||
|
; chrget
|
||||||
|
Loading…
Reference in New Issue
Block a user