home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / Information / 256KB.ROS-V1.SFX / ramblk.a < prev    next >
Encoding:
Text File  |  1993-04-28  |  2.0 KB  |  148 lines

  1. ;
  2. ; EXECUTE A LEGAL COMMAND WITH D#
  3. ;
  4. PFDCOM LDA DKCMD
  5. ;
  6. ; EXECUTE DISC COMMAND
  7. ;
  8. PFLCOM
  9. PFLCO0
  10. PFCOM STA DKCMD
  11.  STX BUFFNO
  12. PFCOM1 LDA DSCSEC,X
  13.  STA BLKBUF
  14.  LDA DSCTRC,X
  15.  BEQ PFCOM3
  16.  CMP #36 ;MAX TRACK
  17.  BCS PFCOM3
  18.  JSR ONTRAC
  19.  CMP BLKBUF
  20.  BEQ PFCOM3
  21.  BCS PFCOM6
  22. PFCOM3 JSR PFCOM5
  23. PFCOM4 LDA #$66 ;ILLEGAL TRACK AND SECTOR
  24.  JMP ERRB
  25. PFCOM5 LDX BUFFNO
  26.  LDA DSCTRC,X
  27.  STA TRACK
  28.  LDA DSCSEC,X
  29.  STA SECTOR
  30.  RTS
  31. ;
  32. ; CHECK T&S LEGALITY
  33. ;
  34. CHKTS LDA TRACK
  35.  BEQ PFCOM4
  36.  CMP #36
  37.  BCS PFCOM4
  38.  JSR ONTRAC
  39.  CMP SECTOR
  40.  BEQ PFCOM4
  41.  BCC PFCOM4
  42.  RTS
  43. ;
  44. ; GIVE MESSAGE CMB DOS V2
  45. ;
  46. CBMDOS JSR PFCOM5
  47.  LDA #$73 ;CBM DOS V2
  48.  JMP ERRB
  49. ;
  50. PFCOM6 LDX BUFFNO
  51.  LDA DKCMD
  52.  STA DKCMDS,X
  53. ;
  54. ; EXECUTE DISC COMMAND
  55. ;
  56. EXDISC LDY DSCTRC,X
  57.  LDA DSCSEC,X
  58.  JSR RAMSET
  59.  LDX BUFFNO
  60.  LDY #0
  61.  LDA BUFMSB,X
  62.  STA OBJPNT+1
  63.  LDA DKCMD
  64. ; READ COMMAND
  65.  CMP #$80
  66.  BNE EXDIS3
  67. EXDIS1 LDA (BLKPNT),Y
  68.  STA (OBJPNT),Y
  69.  INY
  70.  BNE EXDIS1
  71. EXDIS2 TYA
  72.  STY IFDRDY
  73.  CLC
  74.  RTS
  75. ; WRITE COMMAND
  76. EXDIS3 CMP #$90
  77.  BNE EXDIS2
  78.  LDA BAMD0+2
  79.  BEQ EXDIS4
  80.  CMP #'A'
  81.  BNE CBMDOS
  82. EXDIS4 LDA (OBJPNT),Y
  83.  STA (BLKPNT),Y
  84.  INY
  85.  BNE EXDIS4
  86.  BEQ EXDIS2
  87. ;
  88. ; DISC COMMAND PARAMETERS
  89. ;
  90. DSCPRM JSR BUFNO
  91. DSCPR0 TAY ;DISC PRMS
  92.  LDA TRACK
  93.  STA DSCTRC,Y
  94.  LDA SECTOR
  95.  STA DSCSEC,Y
  96.  RTS
  97. ;
  98. ; SET RAM POINTERS (Y=TRACK, A=SECTOR)
  99. ;
  100. RAMSET CLC
  101.  ADC LTRACK-1,Y
  102.  BPL RAMSE0
  103.  EOR #$C0
  104.  INY
  105. RAMSE0 STA BLKPNT+1
  106.  LDA HTRACK-1,Y
  107.  STA PIA
  108.  RTS
  109. ;
  110. ; TOTAL NUMBER OF SECS ON A TRACK
  111. ;
  112. ONTRAC TAX
  113.  LDA ONTRA1-1,X
  114.  RTS
  115. ONTRA1 .BYTE 21,21,21
  116.  .BYTE 21,21,21,21
  117.  .BYTE 21,21,21,21
  118.  .BYTE 21,21,21,21
  119.  .BYTE 21,21,19,19
  120.  .BYTE 19,19,19,19
  121.  .BYTE 19,18,18,18
  122.  .BYTE 18,18,18,17
  123.  .BYTE 17,17,17,17
  124. ;
  125. ; TRACK START ADDRESSES
  126. ;
  127. HTRACK .BYTE $10,$10,$10,$10
  128.  .BYTE $20,$20,$20
  129.  .BYTE $30,$30,$30
  130.  .BYTE $40,$40,$40
  131.  .BYTE $50,$50,$50
  132.  .BYTE $60,$60,$60
  133.  .BYTE $70,$70,$70
  134.  .BYTE $80,$80,$80,$80
  135.  .BYTE $90,$90,$90
  136.  .BYTE $A0,$A0,$A0,$A0
  137.  .BYTE $B0,$B0
  138. LTRACK .BYTE 64,85,106,127
  139.  .BYTE 84,105,126,83
  140.  .BYTE 104,125,82,103
  141.  .BYTE 124,81,102,123
  142.  .BYTE 80,101,120,75
  143.  .BYTE 94,113,68,87
  144.  .BYTE 106,124,78,96
  145.  .BYTE 114,68,86,103
  146.  .BYTE 120,73,90
  147.  .END
  148.