NSC: More labels

This commit is contained in:
Joshua Bell 2017-11-26 00:27:03 -08:00
parent 16c6c98124
commit 934cbe2f70

View File

@ -72,7 +72,8 @@ SETVID := $FE93
init: sec init: sec
bcs :+ bcs :+
.byte $04, $21, $91 ; ????
.byte $04, $21, $91 ; 4/21/91
;;; -------------------------------------------------- ;;; --------------------------------------------------
@ -83,11 +84,13 @@ init: sec
: ldx #5 ; pages : ldx #5 ; pages
ldy #0 ldy #0
load: lda src,y ; self-modified load: lda src,y ; self-modified
store: sta dst,y ; self-modified load_hi := *-1
sta dst,y ; self-modified
store_hi := *-1
iny iny
bne load bne load
inc load+2 inc load_hi
inc store+2 inc store_hi
dex dex
beq find_self_name beq find_self_name
jmp load jmp load
@ -174,9 +177,7 @@ cloop: iny
.byte CR .byte CR
HIASCII "Previous Clock Installed!" HIASCII "Previous Clock Installed!"
.byte BELL .byte BELL, CR, 0
.byte CR
.byte 0
jmp exit jmp exit
.endproc .endproc
@ -269,12 +270,9 @@ not_found:
.byte CR .byte CR
HIASCII "No-SLot Clock Not Found." HIASCII "No-SLot Clock Not Found."
.byte CR .byte CR, CR
.byte CR
HIASCII "Clock Not Installed!" HIASCII "Clock Not Installed!"
.byte BELL .byte BELL, CR, 0
.byte CR
.byte 0
jmp exit jmp exit
@ -388,9 +386,9 @@ exit:
jsr read_block jsr read_block
lda data_buffer + entry_length lda data_buffer + entry_length
sta adc1+1 sta entry_length_mod
lda data_buffer + entries_per_block lda data_buffer + entries_per_block
sta cmp1+1 sta entries_per_block_mod
lda #1 lda #1
sta $A7 ; ??? sta $A7 ; ???
@ -443,13 +441,15 @@ entry: ldy #file_type ; file_type
;; Move to the next entry ;; Move to the next entry
next: lda ptr next: lda ptr
clc clc
adc1: adc #$27 ; self-modified: entry_length adc #$27 ; self-modified: entry_length
entry_length_mod := *-1
sta ptr sta ptr
bcc :+ bcc :+
inc ptr+1 inc ptr+1
: inc $A7 : inc $A7
lda $A7 lda $A7
cmp1: cmp #$0D ; self-modified: entries_per_block cmp #$0D ; self-modified: entries_per_block
entries_per_block_mod := *-1
bcc entry bcc entry
lda data_buffer + next_block lda data_buffer + next_block
@ -498,12 +498,9 @@ append: ldy #0
not_found: not_found:
jsr zstrout jsr zstrout
.byte CR .byte CR, CR, CR
.byte CR
.byte CR
HIASCII "* Unable to find next '.SYSTEM' file *" HIASCII "* Unable to find next '.SYSTEM' file *"
.byte CR .byte CR, 0
.byte 0
bit KBDSTRB bit KBDSTRB
: lda KBD : lda KBD
@ -519,22 +516,25 @@ not_found:
.proc zstrout .proc zstrout
ptr := $A5 ptr := $A5
pla pla ; read address from stack
sta ptr sta ptr
pla pla
sta ptr+1 sta ptr+1
bne L1334
L132A: cmp #(HI 'a') ; lower-case? bne skip ; ???
next: cmp #(HI 'a') ; lower-case?
bcc :+ bcc :+
and lowercase_mask ; make upper-case if needed and lowercase_mask ; make upper-case if needed
: jsr COUT : jsr COUT
L1334: inc ptr skip: inc ptr
bne L133A bne :+
inc ptr+1 inc ptr+1
L133A: ldy #$00 : ldy #$00
lda (ptr),y lda (ptr),y
bne L132A bne next
lda ptr+1
lda ptr+1 ; restore address to stack
pha pha
lda ptr lda ptr
pha pha
@ -630,9 +630,7 @@ block_num: .word 2 ; block_num - block 2 is volume directory
pha pha
jsr zstrout jsr zstrout
.byte CR .byte CR, CR, CR
.byte CR
.byte CR
HIASCII "** Disk Error $" HIASCII "** Disk Error $"
.byte 0 .byte 0
@ -641,8 +639,7 @@ block_num: .word 2 ; block_num - block 2 is volume directory
jsr zstrout jsr zstrout
HIASCII " **" HIASCII " **"
.byte CR .byte CR, 0
.byte 0
bit KBDSTRB bit KBDSTRB
: lda KBD : lda KBD
@ -691,13 +688,13 @@ self_name:
driver: driver:
php php
sei sei
ld4: lda $CFFF ld4: lda $CFFF ; self-modified
pha pha
st1: sta $C300 ; self-modified st1: sta $C300 ; self-modified
ld1: lda $C304 ; self-modified ld1: lda $C304 ; self-modified
ldx #8 ldx #8
L140D: L140D:
ld3: lda $1472,x ; self-modified ld3: lda unlock-1,x ; self-modified
sec sec
ror a ror a
L1412: pha L1412: pha
@ -713,11 +710,11 @@ ld2: lda $C300,y ; self-modified
ldx #8 ldx #8
L1423: ldy #8 L1423: ldy #8
st2: st2:
L1425: lda $C304 ; self-modified : lda $C304 ; self-modified
ror a ror a
ror $01FF,x ror $01FF,x
dey dey
bne L1425 bne :-
lda $01FF,x lda $01FF,x
lsr a lsr a
lsr a lsr a
@ -728,9 +725,9 @@ L1425: lda $C304 ; self-modified
lda $01FF,x lda $01FF,x
and #$0F and #$0F
clc clc
L143F: adc #$0A : adc #$0A
dey dey
bne L143F bne :-
sta $01FF,x sta $01FF,x
L1447: dex L1447: dex
bne L1423 bne L1423
@ -750,9 +747,9 @@ L1447: dex
rol a rol a
sta DATELO+1 sta DATELO+1
pla pla
bmi L1471 bmi done
st4: sta $CFFF ; self-modified st4: sta $CFFF ; self-modified
L1471: plp done: plp
rts rts
unlock: unlock:
@ -763,6 +760,8 @@ unlock:
sizeof_driver := * - driver sizeof_driver := * - driver
.assert (* - init <= $500), error, "Must fit in 5 pages"
;;; -------------------------------------------------- ;;; --------------------------------------------------
;;; Junk from here on... ;;; Junk from here on...