home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.cbm      Discussion about Commodore micros      53,866 messages   

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

   Message 53,298 of 53,866   
   Tilmann Hentze to Lawrence Woodman   
   Re: Closing a file in Assembly on the VI   
   17 Jun 21 11:29:57   
   
   From: 0xcafe@directbox.com   
      
   Lawrence Woodman  wrote:   
   > 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  #             ldy  #>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   
      
   I'd switch the two previous blocks around, so that you first set up the   
   channel and then set the file name.   
      
   >             lda  #             sta  $C1   
   >             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)   
      
   The high byte should probaly only increment, when the low byte is $ff.   
      
   >             jsr  SAVE            ; Perform save   
      
   >             lda  #$08         ; Logical file number   
   >             jsr  CLOSE        ; Close the file   
      
   Looks good to me. Perhaps it will work with the first mentioned change?   
      
   Best regards,   
   Tilmann.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

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


(c) 1994,  bbs@darkrealms.ca