mirror of
https://github.com/mach-kernel/mrbuffer.git
synced 2024-12-17 15:29:21 +00:00
fix backspace behavior, click speaker!
This commit is contained in:
parent
31ae6bfcb5
commit
de2c56450c
@ -28,6 +28,8 @@ There are two scripts here which will get all the tools needed to assemble the g
|
|||||||
|
|
||||||
The `assemble` script runs the source through Merlin32, then changes the ProDOS file kind to `S16`, an executable format that is used for GS/OS applications. `_FileInformation.txt` is what `cadius` uses to manage the ProDOS metadata for each record (since obviously this information can't be mapped to your computer's filesystem).
|
The `assemble` script runs the source through Merlin32, then changes the ProDOS file kind to `S16`, an executable format that is used for GS/OS applications. `_FileInformation.txt` is what `cadius` uses to manage the ProDOS metadata for each record (since obviously this information can't be mapped to your computer's filesystem).
|
||||||
|
|
||||||
|
I also extracted the Merlin16 macros from the original images. I'm not using them yet but I imagine I will need to in order to implement quitting, etc.
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
There are a lot of good materials out there: here is what I used to make this. Additionally, thank you to the Apple IIGS Enthusiasts Facebook group and `#a2chat` over at `irc.a2central.com` for answering my questions.
|
There are a lot of good materials out there: here is what I used to make this. Additionally, thank you to the Apple IIGS Enthusiasts Facebook group and `#a2chat` over at `irc.a2central.com` for answering my questions.
|
||||||
|
148
src/main.S
148
src/main.S
@ -2,6 +2,9 @@
|
|||||||
typ $B3
|
typ $B3
|
||||||
dsk main.l
|
dsk main.l
|
||||||
|
|
||||||
|
SPEAKER equ $00C030
|
||||||
|
PRODOS16 equ $E100A8
|
||||||
|
|
||||||
; ensure 16-bit mode (unnecessary?)
|
; ensure 16-bit mode (unnecessary?)
|
||||||
clc
|
clc
|
||||||
xce
|
xce
|
||||||
@ -50,7 +53,7 @@ keydown cmp #$8B ; up
|
|||||||
cmp #$88 ; left
|
cmp #$88 ; left
|
||||||
beq left
|
beq left
|
||||||
cmp #$95 ; right
|
cmp #$95 ; right
|
||||||
beq colinc
|
beq right
|
||||||
cmp #$FF ; backspace
|
cmp #$FF ; backspace
|
||||||
beq backspace
|
beq backspace
|
||||||
cmp #$8D ; return
|
cmp #$8D ; return
|
||||||
@ -62,17 +65,20 @@ finkey ldal $00C010 ; clear strobe bit
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
up cpy #0
|
up cpy #0
|
||||||
beq finkey
|
beq ping
|
||||||
dey
|
dey
|
||||||
jmp finkey
|
jmp finkey
|
||||||
down cpy #22
|
down cpy #22
|
||||||
beq finkey
|
beq ping
|
||||||
iny
|
iny
|
||||||
jmp finkey
|
jmp finkey
|
||||||
left cpx #0
|
left cpx #0
|
||||||
beq finkey
|
beq ping
|
||||||
dex
|
dex
|
||||||
jmp finkey
|
jmp finkey
|
||||||
|
right cpx #39
|
||||||
|
beq ping
|
||||||
|
jmp *+2
|
||||||
colinc cpx #39
|
colinc cpx #39
|
||||||
beq :rolcol
|
beq :rolcol
|
||||||
inx
|
inx
|
||||||
@ -82,11 +88,18 @@ colinc cpx #39
|
|||||||
return ldx #0
|
return ldx #0
|
||||||
jmp down
|
jmp down
|
||||||
backspace lda #$A0
|
backspace lda #$A0
|
||||||
jsr drawchar
|
cpx #0
|
||||||
jmp left
|
beq :contbs
|
||||||
|
dex
|
||||||
|
:contbs jsr drawchar
|
||||||
|
jmp finkey
|
||||||
|
|
||||||
|
|
||||||
|
ping pha
|
||||||
|
ldal SPEAKER
|
||||||
|
pla
|
||||||
|
jmp finkey
|
||||||
|
|
||||||
; $B0 is the start of the char table for numbers
|
|
||||||
; we start by preserving our registers
|
|
||||||
drawpos pha
|
drawpos pha
|
||||||
phx
|
phx
|
||||||
; draw the parens and comma
|
; draw the parens and comma
|
||||||
@ -218,126 +231,7 @@ tencount ldx #0
|
|||||||
jmp :substart
|
jmp :substart
|
||||||
:subout rts
|
:subout rts
|
||||||
|
|
||||||
; working text blit
|
|
||||||
* ldx #hithere+2 ; strl, first two bytes are strlen, # denotes immediate addr val
|
|
||||||
* ldy #$0400 ; start of text buffer on 00
|
|
||||||
* ldal hithere
|
|
||||||
* dec
|
|
||||||
|
|
||||||
* mvn $02, $00
|
|
||||||
* brk
|
|
||||||
|
|
||||||
; Important locations
|
|
||||||
SPEAKER equ $E0C030
|
|
||||||
PRODOS16 equ $E100A8
|
|
||||||
|
|
||||||
jsl PRODOS16
|
jsl PRODOS16
|
||||||
|
|
||||||
; This exit code is "device busy", why is it the only one
|
|
||||||
; that works?!
|
|
||||||
|
|
||||||
da $29
|
|
||||||
adrl QP
|
|
||||||
bcs ERROR
|
|
||||||
|
|
||||||
ERROR brk
|
|
||||||
|
|
||||||
QP adrl $0000
|
|
||||||
da $00
|
|
||||||
|
|
||||||
hithere strl "this was excruciating"
|
|
||||||
brkboi brk
|
|
||||||
|
|
||||||
bufbase da #40
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user