OPEN,BGET/BPUT,CLOSE v ASM¢Raster, 2002¢¢Pro na⇨ t⇧n ⇨i ukl⇧d⇧n dat lze ve vlastn m programu efektivn❎ pouə t povely OPEN, BGET nebo BPUT a CLOSE. V③echny tyto p② kazy jsou implementov⇧ny nap② klad v TBASICu (standardn Atari BASIC m⇧ m sto BGET a BPUT pouze GET a PUT pro p②e⇨ten /z⇧pis vədy jen jednoho bytu), my se v③ak pod v⇧me na proveden Assemblerov⑦.¢¢K tomu bych je③t❎ r⇧d dodal, əe povaəuji za velmi dobr⑦, kdyə uəitkov⑦ programy nab z ukl⇧d⇧n a na⇨ t⇧n sv⑨ch dat p②es CIO - tedy p②es za② zen :n⇧zev. Daleko pohodln❎ji se s nimi pak pracuje a d ky tomu je t⑦ə moən⑦ vyuə vat pro data libovoln⑦ m⑦dium (nap②. disk, kazeta, turbo - kilov⑦ bloky), stejn❎ tak jako virtu⇧ln za② zen (nap②. v emul⇧torech p② stup p②es H: na harddisk), v⇨etn❎ p② padn⑨ch dal③ ch "budouc ch" za② zen . A to v③e bez pot②eby jak⑨chkoliv z⇧sah
do programu samotn⑦ho a bez nutnosti vyr⇧b❎t speci⇧ln verze pro jednotliv⑦ typy m⑦di .¢¢N⇧sleduj c p② klad obsahuje t②i rutiny. Prvn provede otev②en souboru "D:FILENAME.EXT", druh⇧ na⇨ten 1024 byt
dat do pam❎ti od adresy $5000 (20480 decim⇧ln❎), t②et uzav②e soubor. V③e je okomentovan⑦ a velmi n⇧zorn⑦, takəe nen probl⑦m upravit si zdrojov⑨ kd pro vlastn pot②eby v⇨etn❎ obm❎ny BGET za BPUT pro ukl⇧d⇧n dat.¢¢¢CIOV .EQU $E456 ;vektor CIO rutiny¢CHA .EQU $30 ;kan⇧l IOCB3¢ADR .EQU $5000 ;adresa za⇨⇧tku dat¢LEN .EQU $03FF ;d⑦lka dat¢¢¢;OPEN #3,4,0,"D:FILENAME.EXT"¢OPEN¢ LDX #CHA¢ LDA #3¢ STA $0342,X¢ LDA #4 ;4=⇨ten ,8=z⇧pis¢ STA $034A,X¢ LDA #0¢ STA $034B,X¢ LDA #[<FNAME]¢ STA $0344,X¢ LDA #[>FNAME]¢ STA $0345,X¢ JSR CIOV ;v Y vrac status¢ RTS¢FNAME .BYTE "D:FILENAME.EXT",0¢¢¢;BGET #3,ADR,LEN¢BGET¢ LDX #CHA¢ LDA #7 ;7=BGET,11=BPUT¢ STA $0342,X¢ LDA #[<ADR] ;DB adresa za⇨⇧tku¢ STA $0344,X¢ LDA #[>ADR] ;HB adresa za⇨⇧tku¢ STA $0345,X¢ LDA #[<LEN] ;DB po⇨et byt
¢ STA $0348,X¢ LDA #[>LEN] ;HB po⇨et byt
¢ STA $0349,X¢ JSR CIOV ;v Y vrac status¢ RTS¢¢Pozn⇧mka:¢Po n⇧vratu z CIO rutiny obdrə me v Y registru status IO operace. Pot②ebujeme-li zn⇧t po⇨et skute⇨n❎ na⇨ten⑨ch byt
, nap② klad v p② pad❎, əe p②i ⇨ten do③lo k chyb❎ dosaəen m konce souboru, m
əeme jej p②e⇨ st z adres:¢ LDA $0348,X ;DB po⇨et byt
¢ LDA $0349,X ;HB po⇨et byt
¢¢¢CLOSE¢ LDX #CHA¢ LDA #$0C¢ STA $0342,X¢ JSR CIOV ;v Y vrac status¢ RTS¢