home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 3500 
 Lawrence Woodman to All 
 Closing a file in Assembly on the VIC-20 
 17 Jun 21 08:55:50 
 
INTL 3:770/1 3:770/3
REPLYADDR lorrywoodman@gmail.com
REPLYTO 3:770/3.0 UUCP
MSGID:  56cc9714
PID: SoupGate-Win32 v1.05
Hello Everyone,

I've been trying to save some memory on the VIC-20 to a file on disk but
seem to be having some problems when it comes to close the file.  At the
moment the file saves the data properly from assembly but I have to use
'CLOSE 8' from basic to prevent it having an asterisk next to the name in
the directory entry.

I have created a piece of code which replicates the problem below if
anyone has any ideas where I'm going wrong I'd be very grateful.

; Basic Stub
TOK_SYS     = $9E             ; SYS token

            .byt  $01, $10    ; Load address ($1001)

            * = $1001
            .word basicEnd    ; Next Line link, here end of Basic program
            .word 1           ; The line number for the SYS statement
            .byt  TOK_SYS     ; SYS token
            .asc  " "
            .asc  "4110"      ; Start of machine language
            .byt  0           ; End of Basic line
basicEnd    .word 0           ; End of Basic program

; KERNEL/BASIC ROM Routines
CLOSE       = $FFC3
SAVE        = $FFD8
SETLFS      = $FFBA
SETNAM      = $FFBD


main
            lda  #$07         ; Length of file name
            ldx  #filename   ; High byte of file name location
            jsr  SETNAM       ; Set the name

            lda  #$08         ; Logical file number
            ldx  #$08         ; Device number
            ldy  #$01         ; Secondary address - $01 because saving
            jsr  SETLFS       ; Set above parameters

            lda  #flash      ; High byte of start of memory block to save
            sta  $C2

            lda  #$C1            ; Pointer to location of start address
            ldx  #<(flashend+1)  ; Low byte of (end of memory block + 1)
            ldy  #>(flashend+1)  ; High byte of (end of memory block + 1)
            jsr  SAVE            ; Perform save

            lda  #$08         ; Logical file number
            jsr  CLOSE        ; Close the file

            rts

filename    .asc "FLASH"

;=================================
; Block of memory to save
;=================================
flash       lda  $900F        ; Record initial screen border/background combo
            ldx  #$FF         ; First combo is $FF
setcombo    stx  $900F        ; Set screen border/background combo

            ; Time delay
            ldy  #$FF
delay       dey
            bne  delay

            dex               ; Next combo
            bne  setcombo
            sta  $900F        ; restore initial screen border/background combo
flashend    rts



Thanks in advance


Lorry

---
Advanced Use of .LBR Files on CP/M
https://techtinkering.com/articles/advanced-use-of-lbr-files-on-cpm/
--- SoupGate-Win32 v1.05
 * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
SEEN-BY: 1/123 14/0 18/200 90/1 105/81 120/340 123/131 129/305 226/30
SEEN-BY: 227/114 229/424 426 428 700 1016 1017 240/5832 249/1 206
SEEN-BY: 249/317 400 261/38 282/1038 298/25 26 301/1 317/3 322/757
SEEN-BY: 342/200
PATH: 770/3 1 153/757 221/6 301/1 229/426 317/3 298/25 14/0 229/426


<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca