home bbs files messages ]

Just a sample of the Echomail archive

Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.

   CBM      Commodore Computer Conference      4,328 messages   

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

   Message 3,500 of 4,328   
   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