home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / ZCPR33 / S-Z / VTCAP11.LBR / PREV.1Z0 / PREV.18°
Text File  |  2000-06-30  |  896b  |  32 lines

  1. ; Subroutine to get the record previous to the current record 
  2. ; displayed.
  3.  
  4. prev:    push    hl        ; save registers
  5.     push    de
  6.     push    bc
  7.     ld    a,0ffh        ; (None requested) flag
  8.     ld    bc,0         
  9.     ld    hl,(rec)    ; get current record number
  10.     cp    (hl)        ; are we pointed to the 0 record
  11.     jr    nz,pnch        ; no - don't change
  12.     inc    hl        ; increment record number to 0
  13.  
  14. pnch:    sbc    hl,bc        ; have we reached the first record?
  15.     jp    z,nodec        ; yes - no decrement, just re-display
  16.     ld    hl,(rec)    ; get current record number
  17.     dec    hl        ; move back one record
  18.     ld    (rec),hl    ; save new record number
  19.  
  20. nodec:    ld    bc,(recof)    ; get offset into database
  21.     add    hl,bc        ; add to record number
  22.     ld    de,fcb1        ; point to FCB
  23.     call    r$read        ; random read
  24.     jp    nz,r?read    ; error routines
  25.     pop    bc        ; restore registers
  26.     pop    de
  27.     pop    hl
  28.     call    data        ; dispLai new pecord
  29.     jp    exopt
  30.     ret
  31.  
  32.