home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / text / examples.arc / VDUMP.A < prev   
Encoding:
Text File  |  1989-12-01  |  5.1 KB  |  145 lines

  1. ; vdump.asm
  2. ;==========================
  3. ; Command:  vdump filename
  4. ;==========================
  5. ; Dump BASIC variables to a text file
  6.                                   
  7. star        = $0b00               
  8.             .wor star             
  9.             * = star              
  10.                                   
  11.             jmp vdump
  12.             dw  Date
  13.                                   
  14. index1      = $0024               
  15. index2      = $0026               
  16. vartab      = $002f               
  17. arytab      = $0031               
  18. varnam      = $0047               
  19. int0e       = $170e               
  20. givayf      = $af03               
  21. finptr      = $7c57               
  22. movfm       = $8bd4               
  23. zdce3       = $8e3c               
  24. zca22       = $55e8               
  25. chrout      = $ffd2               
  26. stop        = $ffe1               
  27.                                   
  28. vdx         jmp int0e             
  29.                                   
  30. vdump       lda vartab            
  31.             sta pt+1              
  32.             lda vartab+1          
  33.             sta pt+2              
  34. vd0         lda pt+1              
  35.             cmp arytab            
  36.             lda pt+2              
  37.             sbc arytab+1          
  38.             bcs vdx               ;done...no more variables
  39.             ldy #$00              
  40.             sty index2            
  41.             iny                   
  42. vd1         jsr peek1             
  43.             asl a                 
  44.             ror index2            
  45.             lsr a                 
  46.             sta varnam,y          
  47.             dey                   
  48.             bpl vd1               
  49.             bit index2            
  50.             beq vd2               
  51.             bpl vd3               
  52.             bvc vd4               
  53.             jsr vd5               
  54.             ldx #"%"              ;integer variable
  55.             lda #"="              
  56.             jsr prtxa             
  57.             ldy #$02              
  58.             jsr peek1             
  59.             pha                   
  60.             iny                   
  61.             jsr peek1             
  62.             tay                   
  63.             pla                   
  64.             jsr givayf            
  65.             jmp vd6               
  66.                                   
  67.                                   
  68. vd2         jsr vd5               ;floating point variable
  69.             lda #"="              
  70.             jsr chrout            
  71.             ldy #50               
  72. vd11        lda movfm,y           
  73.             sta eof,y             
  74.             dey                   
  75.             bpl vd11              
  76.             lda pt+1              
  77.             ldy pt+2              
  78.             clc                   
  79.             adc #2                
  80.             bcc vd66              
  81.             iny                   
  82. vd66        ldx $ff00             
  83.             stx $ff02             
  84.             jsr eof               
  85.             stx $ff00             
  86. vd6         jsr zdce3             
  87.             jmp vd7               
  88.                                   
  89. vd3         jsr vd5               
  90.             ldx #"$"              
  91.             lda #"="              
  92.             jsr prtxa             
  93.             lda #34               
  94.             jsr chrout            
  95.             ldy #$04              
  96.             jsr peek1             
  97.             sta index1+1          
  98.             dey                   
  99.             jsr peek1             
  100.             sta index1            
  101.             dey                   
  102.             jsr peek1             
  103.             jsr zca22             
  104.             lda #34               
  105.             jsr chrout            
  106. vd7         lda #13               
  107.             jsr chrout            
  108. vd4         jsr stop              ;abort if stop key
  109.             bne vd9               ;not down. continue
  110.             jmp int0e             ;its down. abort
  111. vd9         clc                   ;else bump to next variable and go on
  112.             lda pt+1              
  113.             adc #7                
  114.             sta pt+1              
  115.             bcc vd8               
  116.             inc pt+2              
  117. vd8         jmp vd0               
  118.                                   
  119. vd5         lda varnam            
  120.             jsr chrout            
  121.             lda varnam+1          
  122.             beq vd5x              
  123.             jsr chrout            
  124. vd5x        rts                   
  125.                                   
  126. peek1       stx pk+1              
  127.             ldx $ff00             
  128.             stx $ff02             
  129. pt          lda $ff00,y           
  130.             stx $ff00             
  131. pk          ldx #0                
  132.             pha                   
  133.             pla                   
  134.             rts                   
  135.                                   
  136. prtxa       pha                   
  137.             txa                   
  138.             jsr chrout            
  139.             pla                   
  140.             jmp chrout            
  141.                                   
  142. eof         .byt 0                
  143.                                   
  144.             .end                  
  145.