diff --git a/src/constants.a b/src/constants.a index ee1217e72..a19f36c15 100644 --- a/src/constants.a +++ b/src/constants.a @@ -11,7 +11,7 @@ ; ...unused... ; E000..E3FF - HGR font data ; ...unused... -; E893..FFEE - main program code +; E8CB..FFEE - main program code ; FFEF..FFF9 - API functions and global constants available for main program ; code, prelaunchers, transition effects, &c. ; (LoadFileDirect, Wait/UnwaitForVBL, MockingboardStuff, MachineStatus) diff --git a/src/okvs.a b/src/okvs.a index b945d842d..3f02c067d 100644 --- a/src/okvs.a +++ b/src/okvs.a @@ -4,7 +4,6 @@ ; Ordered key/value store (6502 compatible)(256+ records compatible) ; ; Public functions -; - okvs_init(address) reset (required) ; - okvs_len(address) get number of keys ; - okvs_update(address, key, value) update key/value pair ; - okvs_get(address, key) get value by key lookup @@ -67,36 +66,6 @@ ; +K+3 value ; ... filler bytes up to value max length (set at append() time) -;------------------------------------------------------------------------------ -; okvs_init -; -; in: A/Y = handle to storage space -; out: $00/$01 clobbered -; $02/$03 clobbered -; all registers clobbered -;------------------------------------------------------------------------------ -okvs_init - jsr GetStoreAddressFromAY - ; PTR -> store - ; Y = 0 - tya - sta (PTR),y ; set number of keys in store to 0 (word) - iny - sta (PTR),y - - iny ; set next-free-space pointer to store + 4 - ldx PTR+1 - lda PTR - clc - adc #$04 - bcc + - inx -+ sta (PTR),y - iny - txa - sta (PTR),y - rts - ;------------------------------------------------------------------------------ ; okvs_len ; okvs_len_imm diff --git a/src/parse.common.a b/src/parse.common.a index 6ec7d5e99..d20d8e3b4 100644 --- a/src/parse.common.a +++ b/src/parse.common.a @@ -238,3 +238,33 @@ okvs_append ldy #0 sta (SAVE),y ; set record length rts + +;------------------------------------------------------------------------------ +; okvs_init +; +; in: A/Y = handle to storage space +; out: $00/$01 clobbered +; $02/$03 clobbered +; all registers clobbered +;------------------------------------------------------------------------------ +okvs_init + jsr GetStoreAddressFromAY + ; PTR -> store + ; Y = 0 + tya + sta (PTR),y ; set number of keys in store to 0 (word) + iny + sta (PTR),y + + iny ; set next-free-space pointer to store + 4 + ldx PTR+1 + lda PTR + clc + adc #$04 + bcc + + inx ++ sta (PTR),y + iny + txa + sta (PTR),y + rts