Data Becker MI Letra
About Data Becker MI LetraHere you can find all about Data Becker MI Letra like manual and other informations. For example: review.
Data Becker MI Letra manual (user guide) is ready to download for free.
On the bottom of page users can write a review. If you own a Data Becker MI Letra please write about it to help other people. [ Report abuse or wrong photo | Share your Data Becker MI Letra photo ]
Manual
Preview of first few manual pages (at low quality). Check before download. Click to enlarge.
Download
(English)Data Becker MI Letra, size: 924 KB |
Data Becker MI Letra
User reviews and opinions
| kellsm |
9:35am on Monday, September 20th, 2010 ![]() |
| I bought the iphone because it is "idiot proof". Being of an older generation and not too tech savvy this phone was a breeze. Amazing combination of phone/music player/video player WHEN IT WORKS! Screen suddenly dies or freezes during task. Firmware update may kill it! | |
| Vid |
3:04pm on Sunday, August 1st, 2010 ![]() |
| Earphones Although the earphones work fine, one of them lost the metal outside cover within a week. Also one of the cords (right and left). Apple Earphones They are the Apple earphones. Exactly what you expect. The mic and button work with the iPhone 3G, but not the volume buttons. Knock-off earbuds I only paid 3$ for mine, but they are knock-offs and not the real Apple earbuds. The sound in them stinks. | |
| dracular_magic |
11:07pm on Wednesday, July 21st, 2010 ![]() |
| This is no longer necessary to pipe music to receive telephone, Internet connection their new Apple iPhone . With the iPhone. * The bold, 115.5 x 62.1 x 12.3mm compared to the first generation iPhone apple 115 x 61 x 11.6mm * Impressive cheap. | |
| debt_consolidation |
5:20pm on Sunday, June 20th, 2010 ![]() |
| An amazing phone. In the start it looks like it is difficult to handle, first by price and then by functions. I love my new iphone, it was very easy to sync with itunes - both music and contacts, very intuitive to learn how to do things. | |
| Otilio |
11:26am on Thursday, May 27th, 2010 ![]() |
| Good phone, fast, better battery life, retina display Overpriced. You can get it much cheaper via ATT or even Apple direct for 699. Apps is what makes this phone so great. | |
| ianengelbrecht |
8:57pm on Wednesday, May 26th, 2010 ![]() |
| Absolutely LOVE my iPhone! I was an initial adopter of mobileme when it had problems. However, those have been ironed out and the product works as advertised. | |
| OOoFabian |
6:35am on Friday, April 30th, 2010 ![]() |
| Hubby has a new toy , the Apple Iphone 8 g (gigabytes). It measures 2 1/2 x 4 1/2 and 3/8" thick. His case was $39.00. Nice to handle, 4GB Storage Price, camera quality | |
| dev.null |
4:03pm on Saturday, March 20th, 2010 ![]() |
| Apple is making millions on a great idea but ... I like the internet, I like videoing and taking pictures and being able to email them. The iPhone is a great phone... If you like sp... I really like the touch screen and all the apps that iPhone has. I bought this phone and a MacBook thinking th... Screen size, Apps, voice quality No bluetooth communication with Mac computers AT&T is known for their 3g problems. I ca... Great App Store Poor Coverage, Verizon Wireless is faster and has better coverage | |
| p35 |
1:25pm on Saturday, March 20th, 2010 ![]() |
| The iphone is a nice phone, but not great. AT&T and Apple lock this phone down which is not right since we spend so much on it. I have used this phone since July and love it. It brings so many features together into one device. The keyboard is great. | |
Comments posted on www.ps2netdrivers.net are solely the views and opinions of the people posting them and do not necessarily reflect the views or opinions of us.
Documents
(to display the error)
To understand the operation of this program, first create the followlng error: OPEN l,8,15,-NEW ABCDISK,TlCLOSE 1 When you have given these commands, the red LED on the disk drive begins to blink. Did you spot the error? A colon is missing from the command NEW. Now type the program to read the error channel and type RUN. The error will appear on the screen: 34 SYNTAX ERROR 0 0
The 34 1S the number of the error, which is explained later. The track and sector fields are 0 because this information
Anatomy of the 1541 Disk Drive is not relevant to this error. If you read the error occurred, the message: channel when an error had not
is returned. In any case, if the red LED on the dr i ve blinks, check the syntax of the c om mand , since mo s t, errors can be easily recognized. Otherwlse, you can simply read the error channel to find the error which the DOS has detected. A detailed description of the error message and their caus~s follows in section 1.6.
LOAD-$-,8 - Loading the Directory
The directory is a "table of contents" of the diskette. All tne flIes on the dlskette are cataloged here. Be sure to note that loading the directory has a disadvantage: any program previously in memory is overlayed by the d r ze c t.c r y information. The directory is loaded by typing:
and can be viewed with the LIST command. Try LOADing the directory of the TEST/DEMO diskette that accompanies your disk drive. Insert this diskette into the disk drive and enter: LOAD -$-,8 to load the directory. Then display the directory by using the LIST command. What follows sho~ld be shown on the screen
., zx 2a prg "how part two" prg "vic-20 wedge" prg "c-64 wedge" prg "do s 5.1" prg "copy/all" prg "dlSk addr change" prg "dirt' prg prg "view bam " "check disk" prg "display t&S" prg "performance test" prg "sequential flle" prg "random file" prg
"1541test/demo
"how to use
A lot of lnforl"ation is kept in the directory. Let's look at the first line, the header of the directory. The number 0 in this line means that the directory is of the diskette in drive O. Other disk drives such as the 4040, contain two disk drives - drive 0 or drive 1. On the 1541 r.he drive
relative file with 128-character records. Now you want to
read the tenth record of this file and place it in the variable RC$. The example of the following routine illustrates reading this with GETI:
OPEN 1,8,2,"TEST.GET,L,"+CHRS(128)
OPEN 2,8,15 PRINT#2,"P"+CHRS(2)+CHRS(10)+CHR$(0)+CHR$(l)
RC$=" FOR 1=1 TO 128 GET#1,XS RC$=RC$+X$ NEXT I
After running this routine, the record is contained in the variable RC$. If this record had been written with a PRINT! statement without a trailing semicolon, the last character in the string will be a RETURN. To ignore this RETURN, allow the loop in line 140 to run only to 127. The last character of the record RETURN is not read.
As already mentioned, the last parameter of the P command specifies at which character the transfer of data should begin. If, for instance, in the 127-character record of the previous example, you want to read positions 40-60 into a
field, the head oust be positioned over the 40th character
and the this: next 21 bytes read. The following routine clarifies
100 OPEN 1,8,2,"TEST.GET,L,"+CHR$(128) 110 OPEN 2,8,IS
120 PRINT#2,"P"+CHR$(2)+CHR$(10)+CHRS<0)+CHRSU0)
130 ISO F$=>"
FOR 1=1 TO 21 GETtl,X$ 160 FS=FS+X$ 170 NEXT I
In line 120, the head is positioned over the the 40th byte of the tenth record in line 120 and the loop in lines 140170 reads the following 21 bytes (bytes 40-60 of the record)
into P$.
you see then that the entire record need not be read if you only want to work with part of it.
Closing a Relative Pile
There is no difference between closing a relative file and sequential file. Because the command channel must always be
open to send the position command when working with relative storage, it must also be closed.
Searching Records with the Binary Method record is accessed by record number. But what
if you want to search for a specific name in a relative file and the record number is not known, it is possible to read each record and compare each for the desired.name. But this is very time consuming if the file has many records.
260 GOTO REM ======================
240 IF ASC(RCS)<>255 THEN PRINT "RECORD NOT WRITTEN" PREPARE RECORD
280 REM
320 330
290 REM ========aBsscsaassssaa
FS(l)=MIDS(RC$,l,10) F$(2)=MID$(RC$,11,5) F$(3)=MID$(RCS,16,10) F$(4)=MID$(RC$,26,15)
======================
S*99999939S3 = =SrXO==9:999
DISPLAY FIELDS
PRINT CHRS(147)
FOR 1=1 TO 4
390 PRINT-FIELD";I?": 400 NEXT I 410 PRINT"
420 REM
"jP$(I)
"
BBSaaSSSSSSSBBSSSSBSSS
CHANGE
FIELDS FIELD (1-4)?"
: ";F$(VAL(X$))
aaa:xasaaaasss====ss ===
PRINT"CHANGE WHICH
INPUT'NEW CONTENTS
460 GETX$:IFXS<"ln OR X$>"4" THEN PRINT"RECORD IS CHANGED" 490 PRINT'MORE CHANGES IN THIS
RECORD <Y/N)?"
THEN 500
500 GETX$:IF X$O"Y" AND X$OnN" 510 IF X$="Y" THEN 340
520 REM ==============
FIELDS
09=9000=0===========
RC$ = F$(1)+LEFT$(BLS,10-LEN(P$(1)))
560 RC$RC$+F$(2)+LEFT$<BL$,5-LEN(F$<2))> 570 RC$RC$+F$(3)+LEFT$<BL$,10-LEN(F$(3)))
RC$RC$+F$(4)+LEFT$(BL$,15-LEN(F$<4)))
133=333 = = = = = = = = = ="= = = =
600 REM
WRITE RECORD BACK
=========================
620 PRINT!1,RC$
630 REM ====================
END PROGRAM?
QBssasisssBSESBSSssBBs
660 PRINT"MORE CHANGES TO FILE
<Y/N>?"
THEN 670
GETX$:IF X$O"Y" AND X$O"Nfl
IP X$="Yil THEN
CLOSE 1:CLOSE
After this program is RUN you can change any desired record. This record must have been written with the program in section 1.5.5.
This editing program does not check the new field data for correct length.
The important commands in this program have already been explained in the corresponding sections.
1.5.10 Expanding a Relative File
Every relative file has a user-determined number of records that ranges from 1 to 65S38. This number is the record with
the highest record number and
is written
to the
file with
value of CHR$(255). Writing this last record also formats all records in the file that precede this record number with
CHR$(25S).
position the file at record number 3 and write the record with CHR$(255). Here's an example of how you might do this:
20 OPEN
you can expand the size of a relative file at a later time. Por example, consider a relative file that is initially created with three records. After the file is OPENed, you
corresponding number.
Display monthly summary:
Here the income or expenses of all accounts are displayed. The monthly balance of all accounts is also displayed.
Display year-end summary:
year-end balance. This display takes some time,
accesses the entire file.
This function shows the summary of all accounts and the
monthly fields of each record must be read and totaled
the program listing:
since all
Here's
100 POKE 53280,2:POKE53281,2:PRINTCHR$U58)js
BL$="
110 GOSUB 2050
":DIMS(12)
INPUT"CURRENT YEAR : ";Y$ IF YS<"1984"ORYS>"1999"THENPRINTCHR$(145);:GOTO120
140 GOSUB PRINT"SELECT A FUNCTION:
220 230
PRINT" PRINT" PRINT" PRINT" PRINT" PRINT" PRINT" PRINT"
GETX$!lFX$<"0"ORXS>"9"THEN240
-1-2-3-4-5-6-0-
" :PRINT CREATE ACCOUNTS" POST TO ACCOUNTS" ACCOUNT SUMMARY" DISPLAY ACCOUNT NAMES" MONTHLY SUMMARY" YEAR SUMMARY":PRINT END PROGRAM"
250 IFXSO"0"THENEND 270 ONVAL(XS)GOSUB 290,560,920,1160,1370,1720
GOTO 140
REM sssssasaaasssssssssssssa
CREATE
ACCOUNTS
ssssssssssassisssasssssss
320 GOSUB 2050
330 PRINT'CAUTION! ANY PREVIOUS PILE FOR THIS YEAR"
340 PRINT'WILL BE ERASED1":PRINT 350 PRINT'CONTINUE (Y/N)?" 360 GETXS:IFX$O"Y"ANDX$O"N"THENIFX$="Y"THEN390
380 CLOSE1:CLOSE2:RETURN
390 OPEN2,8,15,"S:ACCOUNTS"+YS 400 OPEN1,8,2,"ACCOUNTS"+Y$+",L,"+CHR$(141) 410 GOSUB INPUT'HOW MANY ACCOUNTS (1-20)8 ";AN 430 PRINT 440 IFAN<lORAN>20THENPRINTCHR$<145);:GOTO420
450 FORI=1TOAN
470 480
PRINT"NAHE OF ACCOUNT NO."jI;"s
INPUTANS IFLEN(AN$)>20THENPRINTCHRS(145);:GOTO420
FORX=1TO12
"j
490 RC$=AN$+LEFT$(BL$,20-LEN<AN$))
4 bytes of a track designation in the BAM: : Track 18, sector 0, bytes 4-7 (track 1) : : 00001010
11111111 : ($00) ($03) ($FF)
: 10 free : blocks
1 = free = allocated
Using a simple program, you can read the first byte of each track entry in the bit map, add them up and find the total number of free blocks on the diskette.
The Directory
The directory is the table of contents of the diskette. It contains the following information: disk name disk 10 DOS version number filenames file types bloc~s per file free blocks
This directory is loaded into memory with the command LOAD
-$-.8. A program previously in memory will be destroyed! It
can be displayed on the screen with the LIST command. The directory occupies all of track 18 on the disk. The file entries follow the directory header. Each block accommodates 107
Anatomy of the 1541 Disk Drive a maXimum of 8 file entries. Because the BAM and the header occupy one bloCk, 18 blocks are left for file entries. A total of 144 files may reside on one diskette (18 blocks with 8 entries each). Format of the directory header: : Track 18, sector 0
----------------------------------------------------------144-161 ($90-$Al) 162,163 ($A2-$A3) ($M) 164 165,166 ($A5-$A6) 167-170 ($A7-$AA) 171-255 ($AB-$FF) $AO $32,$41 $AO $00 Disk narne (padded with shifted spaces) Disk ID marker Shifted Space ASCII characters 1'2A" (format) Shifted Space not used, filled with 0
: BYTE
: CONTENTS : MEANING
: * Bytes 180 to 191 have the contents "BLOCKS FREE" on : many diskettes
The Diskette Name: The name of the diskette can be a maximum of 16 characters in length and is established when the diskette is formatted. If fewer then 16 characters are given, the rest is filled with shifted spaces ($AO). The following BASIC routine reaos the name and saves it in the string variable DN$: 100 OPEN 15,8,15,"10" REM COMMAND CHANNEL 15 AND DISK INITIALIZED 110 OPEN 2,8,2,"#" REM DATA CHANNEL 2 OPENED REM TRACK 18, SECTOR 0 READ 120 PRINT#15,"B-R"l2l0l1BlO AND PLACED IN CHANNEL 2 REM BUFFER-POINTER TO BYTE 130 PRINT#15."B-P"l2l140 DN$= '"I REM STRING DN$ IS ERASED 150 REM LOOP TO READ THE 16 BYTES OF THE NAME 160 FOR 1=1 TO 16 REM READ A BYTE 170 : :GET#2 ,X$ REM IGNORE SHIFT SPACE 180 : :IF ASC(X$)=160 THEN 200 REM BYTE ADDED TO DN$ 190 : : DN$=DN$+X$ 200 NEXT I 210 CLOSE 2:CLOSE 15 REM CLOSE CHANNELS After running the routine, name. the string DN$ contains the disk
Anatomy of the 1541 Disk Drive 3.4 The Organization of Relative Files
Relative files differ from sequential files in that each data record can be accessed directly by a record number. The 1541 DOS takes care of most of the tasks required to support relative records. Let's take a closer look at the organization of a relative file. First OPEN a relative f1le w1th a record length of 100: OPEN 2,8,2, "REL-FILE,L,"+CHR$(lOO) Now write data record number 70: OPEN 1,8,15 PRINTil,"P"+CHRS(21+CHRSI701+CHRSI01+CHRSI11 PRINTi2,"DATA FOR RECORD 70" CLOSE 2 : CLOSE 1 The directory entry then looks like this: 84 >:00 >:>:10 AO AO AO >:00 00
4C 45 AO AO 00 00
4C REL AO AO AO -FILE 11 OA 64 $ 00
The first byte $84 denotes a relative file. The next two bytes denote the f1rst track and sector of the data ($11, $001 track 17 sector 0)1 exactly as with a ae qu e n t La Lvf Ll e , As usual, the name of the file follows (16 characters, padded with shifted spaces, $AO). Following are two fields not used with sequential files. The first field is a two byte p01nter to the track and sector of the first sidesector block. A side-sector contains the pointers to each data record and is described more in detail later ISll, gOA: track 17, sector 10). The second field is a byte which contains the record length, a value between 1 and 254, in our case $64 (100). The convenience of being able to access each record ind1vidually requires a definite length for each record thet must be defined when establishing a rel'ative file. The rest of the fields 1n the directory entry have the usual s i qn i f Lc a n c e r the last two bytes contain the number of blocks in the file (10 and hi byte, $10 and $00 (29. What does such a s r d e-e s e c t o r' block look like and what 1S its function? The side-sector blocks contain the track and sector pointers to the individual data records. For example, if we want to read the 70th record i n the relative file, the DOS consults the side-sector block to determine which track and sector contains the record and then read this record directly. As
Anatomy of the 1541 Disk Drive a resul t, you can read the 70th record of the file without having to read the entire file. Now let's take a look at the exact construction of a side-sector block. This s ide-sectc'r block is from our previous file. >:00 >:08 >:10 >:18 >:20 >:28 >:30 >:38 >:40 > :48 >:50 etc. 00 OB OD
11 OA 00 00
turn LED on erase LED bit drive number O? not drive 0, turn LED off turn LED on
turn LED on LED on
erase errOr flags _
save X register
8 turn LED on get x register back
interpret command from cOIl'puter C146 e148 C14B A80 FAD 8E 02 LOA #$00 STA $02F9 LOA S028E
last drive number
Anatomy of the 1541 Disk Drive C14E CISO CI53 C155 C157 C159 C15B C150 C160 C163 C165 C168 C16A C160 Cl70 Cl72 C173 Cl75 CI77 CI7A C170 C17F C18l C184 C187 C18A C18C C18F C19l A29 C9 FO 4C 20 Bl 80 A2 BO CD FO CA 10 A9 4C 8E EO AE BO 85 BD 85 6C 7F BC E09 OF OF 03 BB3 C2 A02 OB 89 FE 08 FC8 2A EE 2A 95 6F Al 70 6F STA JSR LOA BPL AND CMP BEO JMP JSR LOA STA LOX LOA CMP BEO OEX BPL LOA JMP STX CPX BCC JSR LOX LOA STA LOA STA JMP $7F $E6BC $84 $C160 #SOF #$OF $C160 $07B4 $C2B3 (SA3) ,Y $0275 #$OB $FE89,X $0275 $C17A $C16A iS3l $ClC8 $022A #$09 $C184 $ClEE $022A $FE95,X $6F $FEAl,X $70 ($006F) drive, number prepare 'okl message secondary address 15, command channel yes to OPEN command determine line length and erase flags get fIrst character and store 11 commands compare to first character found? not found 31, 'syntax error' number of command words command nUIl'ber < 9? test for 'R ', SI, and 'N' command number Jump address 10 Jump address hI jump to command prepare error ~essage after executing command flag set? yes, then set error message error number 0 r rack number 0 sector number 0 prepare 'ok' message erase error flag drive number save as last drIve number
Cl 02 Cl 02 FE FE 00
******************************
C194 C196 C199 C19C C19E CIAO ClAl ClA3 ClA5 ClA7 ClAA CIAO CIAF ClB2 ClB3 ClB5 ClB7 CIBA CIBO ClBF
AAD DO AO AAA (lA9
00 F6C 02 2A 81 A3 C7 ECl 7F 8E 02 00
[95 FF
20 BD Cl 4C OA 04 AO 28 A9 00
LOA STA LOA BNE LOY TYA STY STY STY JSR JSR LOA STA TAX LOA STA JSR JMO
#$00 $02F9 $026C $ClC8 #$00 $80 $81 $A3 $E6C7 $C123 $7F $028E #$00 $FF,X $ClBO SD40A
erase input buffer close internal channel erase input buffer erase 41 characters
03 Fs 22
20 DB Bl 04 AD FO 22 Bl OA 7F Bl 02 Bl 02
JSR LOA PHA ASL BPL LOA STA PLA ANO TAY LOA STA OEX LOA STA OEX LOA STA OEX DEX BCS LOA STA LOA STA OEX LDY LOA STA OEX OEY CPY BCS LOA STA INX CPX BCS LOA CMP BEO CMP BNE LOA STA INX CPX BCS LOA ANO STA BPL JSR SEC RTS
($94), Y A SC74A #$3C $02B2,X #$OF $FECs,Y $02Bl,X $FECO,Y S02Bl,X SFEBB,Y $02Bl,X $C76B #$2A $02B2,X #$AO $02Bl,X #S12 ($94), Y $02Bl,X #$03 $C773 #$22 $02Bl,X #$20 SC793 $02Bl,X j1$22 $C793 #$AO $C783 #$22 S02Bl,X #$20 $C7A7
erase buffer file type bit 7 i n carry bit 6 not set? '< ' for protected file write behind file type isolate bits 0-3 as flle type marker 3rd letter of the flle type in buffer 2nd letter of file type ln buffer 1st letter of file type ln buffer file not closed?
before f i Le type in buffer pad wi th 'shift blank' in buffer filenames write in buffer
wrlte before file type
character from buffer '='? 'Shlft blank' at end of name fl11 through '='
bit 7 erase in the remain i nq chars search for next dlrectory entry
$02Bl,X $02Bl,X $C798 $C4Bs
Anatomy of the 1541 oisk Drive
****************************** C7AC AO lB LDY i$lB C7AE ALOA i$20 C7BO STA $02BO,Y 99 BO 02 DEY C7BDO FA BNE $C7BO C7B4 C7BRTS ****************************** C7B19 Fl JSR $Fl19 C7BA 20 DF FO JSR $FODF C7BD 20 AC C7 JSR $C7AC C7CO A9 FF LDA iSFF 85 6F STA S6F C7C2 A6 7~' LDX $7F C7C4 STX $0272 C7C6 8E ALDA i$OO C7C9 C7CB STA $0273 8D LDX $F9 C7CE A6 F9 C700 LDA $FEEO,X BD EO ~'E C7D95 STA $95 AD 88 FE LDA $FE88 C7D94 STA $94 C7D8 C7DA AO 16 LDY i$16 LDA ($94),Y C7DC Bl 94 C7DE C9 AO CMP i$M 00 OB BNE $C7ED C7EO ALDA i$3l C7E2 C7E4.BYTE $2C 2C C7E5 LDA ($94),Y Bl 94 C7E7 C9 AO CMP i$AO C7E9 DO 02 BNE SC7ED AC7EB LOA #$20 C7ED STA S02BBDEY C7FO 88 C7Fl 10 F2 BPL $C7E5 LDA #$12 AC7F3 STA $02Bl C7F5 8D Bl 02 C7F8 ALDA iS22 C7FA STA $02B2 8D BC7FD 8D CSTA $02C3 C800 LDA i$20 AC802 8D CSTA $02C4 C805 RTS 60
erase directory buffer , , blank writ:e in buffer
create header with disk name init1al1ze if needed read disk name erase buffer drive number as block no. 10 in buffer block number 10 buffer number hi-byte of the buffer address $90, position of disk name save pad buffer with 'shift: blank'
character from buffer compare with 'shift blank' , , blank 1n buffer 'RVS ON' in buffer
write before and after disk name , blank behind it create last hne erase buffer 12 characters 'blocks free.' write in buffer number of free blocks in front
C806 C809 C80B C80E CBll C8l2 C8l4
20 AO B4C
AC C7 OB 17 C8 Bl 02 F7 4D EF
JSR LDY LDA STA DEY BPL JMP
$C7AC #$OB $C8l7,Y $02Bl,Y $C80B SEND
Anatomy of the 1541 oisk Orive ****************************** C4C 4F 43 4B 46 C81F 45 2E
'blocks f' I ree. I
S command 'scratch'
C823 C826
C82E C830
C833 C835 C838
C83E C840
20 Al 60
JSR $D12P LDA ($99,X)
set pointer to buffer
CD42 CD45 CD47 CD4A
20 A20 A60
CD50 CD52 CD55
36 CD 00 C8 D4 3C CD 89 F2 00
read open
block from disk channel, read block
LDA #$00 JSR $D4C8 JSR $CD3C
set buffer pointer to zero get a byte from the buffer
STA $0244,Y LDA $89
STA $00F2,Y
read and write flag
CD56 CD59 CD5C
CD 20 EC D3 4C 94 Cl
JSR SD3EC
B-R command, 'Block-Read' read block from disk prepare byte from buffer
******!
CD68 CD6B CD6D
6F CC 42 CD 3E 02
JSR $CC6F
command,
'Block-Rea
JSR $CD42
LDA $0244,Y STA $023E,Y
LDA #$FF 02 Cl
STA $0244,Y
JMP SCI94
read block from disk end pointer save as data byte
end pointer to $FF done, prepare error message
44 4C 94
CD73 CD76
B-W command,
open channel
'Block-Write'
CD79 CD7A
JSR $CDF2
JSR SD4E8
set buffer pointer
CD7D CD7F CD81
CD83 CD86
CDS 7 CD8A
TAY DEY CMP BCS LDY LDA JSR
#$02 $CD81 #$01 #$00 $D4C8
buffer pointer lo
less than 2?
to zero
CD8C CD90 CD91 CD94
CD8B CD8F
JSR SCFF1
write byte
JSR $D464
write block to disk
EE DCl
JSR SD3EE JMP SC194
get byte from buffer done, error message
*********************
CD9A CD9D
6F CC F2 CD 64 D4 Cl
JSR SCC6F JSR $CDF2 JSR SD464
U2, get
sub for 'Block-Write* command parameters
and write block
to disk
******t*************
CDA3 CDA6 CDA9
JSR $F258 JSR $CD36
LDA $00 STA $6F
LDX $F9
B-E1 command, 'Block-Execute' (RTS) open channel and read block
CDAD CDAF
CDB2 CDB4
CDB7 CDBA
94 Cl 6F 00
LDA STA JSR JMP JMP
$FEEO,X $70 $CDBA $C194 (S006F)
buffer address
execute done routine
to routine
JSR $CDD2 LDA $F9
ASL A TAX
channel,
'Block-Pointer'
get buffer number
CDC2 CDC3
E6CD E6CP E6D1 E6D4 E6D6
LDX STX LDX STX JSR
$D5 $A5 #$02 SA6 SE6AB
#$2C ($A5),Y
pointer $A5/$A6 TO $2D5
E6D9 E6DC
E6DP E6E0
LDA S02D5
STA $0243
error # to ASCII and in buffer 1, comma write in buffer increment buffer pointer first digit of the disk status in output register
error number in accumulator
E6E7 E6E8 E6EA
C8 AA9 91
80 9B 2C A5
LDA #$2C STA ($A5),Y
error message in buffer 1,' comma write in buffer and increment buffer pointer
track number to ASCII and 1,' comma
E6EF E6P1 B6F2 E6F4 E6F7
LDA $80 JSR $E69B LDA S$2C
($A5)fY
write in buffer increment buffer pointer
AS 20 88
JSR $E69B
E6F9 E6FA
E6FC E6FF
D5 8D 49
CLC ADC #$D5 02
E703 E705
E6 A60
STA INC LDA STA
$0249 SA5 4$88 $F7
write error message
error code to X
to buffer
E706 E707 E709 E70A E70C
LDA $86
$87 #$FC #$E4
pointer $86/$87
E70F E713
FC 86 87
messages
E716 E718
8A ACl 86
number with
accumulator no in table
<$86,X)
E71A E71C E71D E720 E722 E725 E727
E729 E72B
E72D E72F
E735 E736 E739
FO E75 EPB AC9 E08 DO 0A A0 OA C68 4C 18 E7
BEQ SE73D
JSR BCC JSR BCC LDA CMP BCC BNE LDA CMP
SE775 SE727 SE775 SE722 $87 #$E6 $E735 SE739 #$0A $86
into carry and erase
bit 7 into carry wait for character with
$E60A,
to end of
BCC $E739
continue
E73A E73D
E740 E742
JHP SE74D
E7 E7 E7
E745 E748 E74A E74D E74E E750 E751 E753
JSR JST BCC PLA
SE754 SE767 SE742
character, bit 7 in carry wait for character with bit 7 set and write in buffer
get next character
F87 86
JSR $E754
for character with
character in buffer
STA $86
buffer in buffer
CMP BCS
8$20 SE763
greater, then write save code
E75B E75D E75E E75F
($A5),Y
E762 E763 E765 E766
blank write in buffer increment buffer pointer code in accumulator output previous text
write character in buffer and increment pointer
char of
E769 E76B E76D E76F E770 E772 E774
$86 BNE SE76D INC $87 LDA ($86,X)
AND FTS
(S86,X) #$7F
bit 7 into carry get character erase bit 7
E778 E77A B77C E77E
E6 DO E6 60
into carry pointer
LDA STA TXA
S7F SFED5
position 18 drive number 'A1, 1541 format
$0101,X
ID, first character in buffer
B91 v94
and second character in buffer
STA INY LDA STA LDY STA FE EF LDA STA
' 21 in buffer
EE8D EE8F
BE91 EE94
$FED5 ($94),Y #$02 (S6D),Y SFE85 $80
SEF93 #$01 $81
Aformat in buffer and at position track number mark block as allocated 1
EE96 EE99 EE9B
EE9D EEAO
EEA3 EEA6 EEA8
JSR $EF93 JSR SEEFF
SF005 #$01
mark block as allocated write BAM pointer $6D/$6E to buffer, buffer track write
#$FF (S6D),Y
following BAM
C4C 94
sector number,
prepare disk
create BAM
k* ** 1k * * * * 1
EEBA EEBC EEBE
#$00 $12
{$6D),Y
BBCO EEC1 EEC2
EEC5 EEC6 EEC7 EEC9 BBCB EECD BBCF EEDO BBD1 BBD2 EBD5 EBD7 BED8 EED9
BEDA EEDC
C8 C8 C8 A98 4A 4A C8
TYA STA
(S6D),Y
00 6P 70 71
INY INY LDA
STA S6F STA S7O STA $71 TYA LSR A
3 bytes -
24 bits
for sectors
byte position
4B F2 6D
LSR A JSR SF24B
divided by 4 = track number get number of sectors
and in BAM
TAX SEC
26 6F CA
DO BS 91
S6P ROL S7O ROL S71
ROL DEX BNB STA INY
bit model
EEB1 EEB3 BBB5 EEE7 BBE8 EEB9 EEEB EBED EEEP BE PI
LDA S6P,X
<$6D),Y
3 bytes the BAM
E8 EO P6 CO D6 4C 75
INX CPX BCC CPY BCC
*$03 SEEE3 *$90 SEEC7 JMP SD075
position 144?
no, next track
write BAM
if needed
JSR TAX LDA AND STA LDY
EEF7 EEF8
S025B.X
#$01 $7F $7F $0251,Y SEF07
EEPD EEFF
EF04 EP06
A4 B9 DO 60 A9
01 7F 7F 51
BAM-changed
P445 F447 F449 F44B F44D F44F F4S1 F453 F455 F457 F458 F4SA F45C
F45E F45F
DO AO Bl C5 DO AS C9 FO AO 38 Bl E5 10
3C OC 4D 4C IE
BNE LDY LDA CMP BNE LDA CMP BEO LDY
SBC LDA BPL
SF483 #$00 ($32),Y $40 SF483 $45 $60 SF461 SO1
($32),Y SBC $4D
F463 F46S F466 F468 F46A F46B F46D F46F P471 F473 F475 F477
65 C4 BO 48 A5 FO 68 C9 90
CLC ADC $43 CMP S4C BCS SF483
OC 10 4C 3F
LDA $45 BEO SF47E
PLA CMP $09
C9 BO 85 AS
BCC CMP BCS STA LDA
SF483 #$0C SF483 S4C S3F
F47A F47C F47E F47F
DO 68 C9
ADC *$O3 STA $31 BNE $F483
PLA CMP #S06
F483 F485
BCC SF473 DEC S3F BPL SF43A
F488 F48A F48D
4C 9C 86 3F
BPL F9
F492 F494 F497 F499 F49A F49C F49D F49F F4A1 F4A3
AS 45 4C CA AS 48 AAA9 85
JSP SF393 LDA S45 JMP SF4CA
continue checking
LDA $30
S3O/S31
LDA S31 PHA LDA #$24 STA S30 LDA *$OO STA $31 LDA S00 STA S34
S30/S31
to S24
P4A9 F4AC P4AE F4B0 F4B2 P4B4 F4B6 F4B8 P4BB F4BD F4BF P4C1 F4C3 F4C4 F4C6 F4C7 F4C9
53 1A E6
85 A60
JSR SP7E6 LDA $55 STA $18 LDA $54 STA $19 LDA $53 STA $1A JSR SF7E6 LDA $52 STA $17 LDA $53 STA $16
STA $31 PLA
pointer $30/S31 back
F4CA P4CC F4CE F4D1 F4D4 P4D6 F4D7
CP4C 6E
CMP #$00 BEO SF4D1 JHP SF56E JSR SF50A BVC SF4D4
'read1?
checking command
find beginning of data byte ready?
F4DC P4DD F4DF F4E1
AD 91 C8
LDA S1C01 STA ($30),Y
get data byte and write in buffer 256 tines
DO A0 50
BNE SF4D4
BVC $F4E1
LDA S1C01 STA $0100,Y
P4E4 F4E7
F4EA F4EB F4ED P4F0 F4F2 F4F4 F4F6 F4P8 F4FB F4FE F500 F502
B8 AD 00 C8 DO
read bytes from S1RA to S1FF
20 AS C5
BNE SF4B1 JSR SF8E0 LDA $38 CMP $47 BEO SF4FB LDA *$04 JMP SF969 JSR SF5E9
4C 20 C5 F0 A9 2C A9 4C
69 E9 3A 03 05
beginning of data
22, 'read error' error termination
calculate agreement?
parity of
CMP $3A BEO SFS05 LDA *$05 BYTE S2C F9
LDA #S0I JMP $F969
23, ok
'read error'
F5O5 F507
start of data
block header for SYNC
SF510 SP556
read wait
Anatcny of
read F510 PS 12 F513 P514 P516 F518
ASL A 12 TAX LDA $12,X
STA $16 LDA STA
F51C P51E F520
$13,X $17
F522 PS23 F52S F527 F529 F52B F52D F52P P531 F533 P536 PS38 F53B P53D F53P FS40 F543 FS46
100 LOAD "MACH-PRG",8,1 Here we can make use of the fact that the varIables are preserved when chaIning. If we program the following, we have reached our goal: 100 IF A=O THEN A=l 110 LOAD "MACH-PRG",8,1
When the program is started with RUN. A has the value zero and the assignment after the THEN is executed, A contains the value 1 and the machIne language program is the~ LOADed. When the program begins again after LOADing the program MACH-PRG, A has the value 1 so the next line is executed. The procedure IS simIlar language programs to load. 100 IF A=O THEN A=l 110 IF A=l THEN A=IF A=2 THEN A=if you have several machine
LOAD "PROG 1" , 8,1 LOAD "PROG 2" , 8,1 LOAD "PROG 3",R,1
The first t i me through, PROG 1 will be loaded, the next time, PROG 2, and so on. Once all the programs are loaded, execution continues with lIne 130.
Anatomy of the 1541 Disk Drive 4.5 Merge - Appending BASIC Programs
Certainly you have thought about the possibility of combining two separate BASIC programs into one. without further details this is not possible, because loading the second program would overwrite the first. with the knowledge of how BASIC programs are stored in memory and on the diskette, you can develop a simple procedure to accomplish this task. BASIC programs are stored in memory as follows:
NL NH LL LH
pointer to the next program line, 10 hi line number, 10 hi. tokenized BASIC statements end-of-line marker
At the end of the program are two additional zero bytes: a total of 3 zero bytes Programs are also saved in this format. Where the program starts and ends lies in two pointers in page zero: PRINT PEEK(43) + 256
PEEK(44)
gives the start of BASIC, 2049 for the Commodore 64, PRINT PEEK(451 + 256 PEEK(46)
points to the byte behind the three zero bytes. Because a program is always loaded at the start of BASIC, contained in the pointer at 43/44, one can cause a second program to load at the end of the first. In practice, we must proceed as follows: First we load the first program into memory. LOAD PROGRAM 1.8 Now get the value of the ending address of the program. A
Tags
SA-PM15 SGH-E715 ALL-IN-ONE Citation 11 AG8-V UT10580 WPS54G RH361LD DSR3009 DSX-S100 30PF9946D DSC-P93 KX-TC1481B Camera S10 2001 KV-32FX66K 22fbst Screenplay HD CMT-CP333 NW-E016 SA-GX200L WF-T653A KDL-V26a12U CT-740 Dvdr3440H LV2378 Taax390 2092 F CDE-9846RM H-MOD Spirograph D-EJ621 LG XA12 ICF-CD7000 Azur 540R Keyboard Extensa 5210 Elna 683 Calculator Tivoli Ipal VGN-SZ110 Ixus 55 S200X CFF-884 VGN-UX180P EFT740 Gateway M675 EM 3732 100 B AJ-HDX900P VN-1800 Nevada DJ72 Cygnus X RD-400 SGH-X700 DSC-S780 LG XC62 Casio LK35 UE40B6000 WN111 PSR-3 D3232 Fragfx SH12ZWH Freestar-2005 CS-F24dte5 HD306 BM1308 Neromix RH4820 ADG 8555 SGH-U900L Travelmate 2410 RL-JT10 SW50ASP Screenplay Flair Makita 9911 Review KX-T7536NE Radio KX-TG8021G HD D45 MDR-RF820RK Q 9H AM-300 400 SRX 280 TL543C Songbook GT-PM-01 TD9473 WGR614 V4 Caddx NX-6 IC-02AT Speed 85 L1718S-SNQ WA10V5 Coupe 21PT5409 RX-SL100RDS 10400
manuel d'instructions, Guide de l'utilisateur | Manual de instrucciones, Instrucciones de uso | Bedienungsanleitung, Bedienungsanleitung | Manual de Instruções, guia do usuário | инструкция | návod na použitie, Užívateľská príručka, návod k použití | bruksanvisningen | instrukcja, podręcznik użytkownika | kullanım kılavuzu, Kullanım | kézikönyv, használati útmutató | manuale di istruzioni, istruzioni d'uso | handleiding, gebruikershandleiding
Sitemap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101




