forked from Apple-2-HW/AppleIISd
Save and restore ZP locations
Shorter read write loops
This commit is contained in:
parent
cf98c54e77
commit
e9bd383d2e
BIN
AppleIISd.bin
BIN
AppleIISd.bin
Binary file not shown.
113
AppleIISd.hex
113
AppleIISd.hex
@ -1,71 +1,68 @@
|
||||
:10000000A220A000A203A0FF2058FFBABD00018DCE
|
||||
:10001000F807290F853D0A0A0A0A852BAA2CFFCF6B
|
||||
:1000200020A9C99003A92F002000C8C900F0010031
|
||||
:10003000A9018542A62B85436444A90885456446E9
|
||||
:1000400064472CFFCF20CFC94C0108D82058FFBAF5
|
||||
:10005000BD00018DF807290F853D0A0A0A0A852B84
|
||||
:10006000AA2CFFCF20A9C99004A92F801FA9803CEA
|
||||
:1000700083C0F029A542C900F014C901F013C902D8
|
||||
:10008000F012C903F011C9FFF010A90138604CC18A
|
||||
:10009000C94CCFC94C38CA4CA9CA4CADCA2000C8FB
|
||||
:1000A000B0EA80D000000000000000000000000066
|
||||
:1000B0000000000000000000000000000000000040
|
||||
:1000C0000000000000000000000000000000000030
|
||||
:1000200020A7C99003A92F002000C8F00100A90152
|
||||
:100030008542A62B8543A9088545644464476446E8
|
||||
:100040002CFFCF20CDC94C0108D848A52B48A53D91
|
||||
:1000500048A54048A541482058FFBABD00018DF889
|
||||
:1000600007290F853D0A0A0A0A852BAA2CFFCF20F3
|
||||
:10007000A7C99005A92F388040A9803C83C0F034DF
|
||||
:10008000A542C900F015C901F016C902F017C9034D
|
||||
:10009000F018C9FFF019A90138801E20BFC98019C6
|
||||
:1000A00020CDC980142034CA800F20A3CA800A2022
|
||||
:1000B000A7CA80052000C890C7BA9D050168854180
|
||||
:1000C00068854068853D68852B68600000000000F9
|
||||
:1000D0000000000000000000000000000000000020
|
||||
:1000E0000000000000000000000000000000000010
|
||||
:1000F000000000000000000000000000FFFF174BA0
|
||||
:1000F000000000000000000000000000FFFF1749A2
|
||||
:10010000D8A9039D81C0BD83C009019D83C0A907F3
|
||||
:100110009D82C0A00AA9FF9D80C03C81C010FB88C1
|
||||
:10012000D0F5BD83C029FE9D83C0A9318540A9CBF0
|
||||
:10013000854120EBC820FFC8C901D039A93D8540C1
|
||||
:10014000A9CB854120EBC8201AC9C901D02AA949E9
|
||||
:100150008540A9CB854120EBC820FFC8A94F854029
|
||||
:10012000D0F5BD83C029FE9D83C0A9FF8540A9CA23
|
||||
:10013000854120EBC820FFC8C901D039A90B8540F3
|
||||
:10014000A9CB854120EBC82018C9C901D02AA9171D
|
||||
:100150008540A9CB854120EBC820FFC8A91D85405B
|
||||
:10016000A9CB854120EBC820FFC8C901F0E0C90038
|
||||
:10017000D0034CB2C84CD9C8A9498540A9CB854108
|
||||
:1001800020EBC8A9558540A9CB854120EBC820FFAD
|
||||
:10019000C8C901F0E3C900D0034CB2C8A9378540F3
|
||||
:10017000D0034CB2C84CD9C8A9178540A9CB85413A
|
||||
:1001800020EBC8A9238540A9CB854120EBC820FFDF
|
||||
:10019000C8C901F0E3C900D0034CB2C8A905854025
|
||||
:1001A000A9CB854120EBC820FFC8C901F0F6C900E2
|
||||
:1001B000D027A9438540A9CB854120EBC820FFC8A3
|
||||
:1001B000D027A9118540A9CB854120EBC820FFC8D5
|
||||
:1001C000C900D015BD83C009809D83C0BD81C00911
|
||||
:1001D000049D81C018A000900338A027BD83C009EA
|
||||
:1001E000019D83C0A9009D82C098605AA000B140C3
|
||||
:1001F0009D80C03C81C010FBC8C00690F17A60A908
|
||||
:10020000FF9D80C03C81C010FBBD80C0853C298023
|
||||
:10021000D0EDA9FF9D80C0A53C6020FFC8485AA032
|
||||
:1002200004A9FF9D80C03C81C010FBBD80C04888F0
|
||||
:10023000D0EFA43D6899F805689978056899F804A5
|
||||
:10024000689978047AA9FF9D80C06860DA5AA63D53
|
||||
:10025000A5469DF805A5479D7805A9009DF8049D34
|
||||
:100260007804A9802443F005A9019DF804A0091E83
|
||||
:10027000F8053E78053EF8043E780488D0F17AFA15
|
||||
:10028000605AA43D9D80C0B978049D80C0B9F8042F
|
||||
:100290009D80C0B978059D80C0B9F8059D80C0A932
|
||||
:1002A000FF9D80C020FFC87A6048A9403C83C018E9
|
||||
:1002B000F00138686048A9203C83C018F001386814
|
||||
:1002C00060A900A2FFA0FF20B5C99002A92B602061
|
||||
:1002D0004CC9BD83C029FE9D83C0A9512081C9C9D5
|
||||
:1002E00000D050A9FF9D80C0BD80C0C9FED0F4A041
|
||||
:1002F00002BD81C009109D81C0A9FF9D80C0643CE2
|
||||
:10030000BD80C09244E644D002E645E63CD0F18888
|
||||
:10031000D0ECBD80C0BD80C0BD80C0BD81C029EF14
|
||||
:100320009D81C018A9000848BD83C009019D83C0F4
|
||||
:1003300068286038A92780EE20B5C9B067204CC96D
|
||||
:10034000BD83C029FE9D83C0A9582081C9C900D0A2
|
||||
:100350004EA9FF9D80C0A9FE9D80C0A002643CB252
|
||||
:10036000449D80C0E644D002E645E63CD0F188D00A
|
||||
:10037000EC9D80C09D80C09D80C0BD80C0291FC9EC
|
||||
:1003800005D01C18A9000848A9FF9D80C0BD80C0E9
|
||||
:10039000C900F0F4BD83C009019D83C0682860389E
|
||||
:1003A000A92780E238A92B80DD38A90160A43DA9E6
|
||||
:1003B0000220F5BEB07999F8068545A9009978061E
|
||||
:1003C0008544A000989144C8D0FAE645989144C865
|
||||
:1003D000D0FAA902A43D8542AD78068544B9F80655
|
||||
:1003E000854564466447A62B204BC7B042A901A4AB
|
||||
:1003F0003D8542B978068544B9F80685456446646A
|
||||
:1004000047A62B204BC7B027A43DB978068544B931
|
||||
:10041000F8068545A00098D144D015C8D0F8E64527
|
||||
:1004200098D144D00BC8D0F820F8BE18A9006000BD
|
||||
:10043000004000000000954100000000F948000065
|
||||
:1004400001AA875000000200FF77000000006569E4
|
||||
:0B04500040000000776900000000FF82
|
||||
:10020000FF9D80C03C81C010FBBD80C08980D0EFC5
|
||||
:1002100048A9FF9D80C0686020FFC8485AA004A973
|
||||
:10022000FF9D80C03C81C010FBBD80C04888D0EFDE
|
||||
:10023000A43D6899F805689978056899F804689963
|
||||
:1002400078047AA9FF9D80C06860DA5AA63DA54669
|
||||
:100250009DF805A5479D7805A9009DF8049D7804A3
|
||||
:10026000A9802443F005A9019DF804A0091EF80502
|
||||
:100270003E78053EF8043E780488D0F17AFA605A58
|
||||
:10028000A43D9D80C0B978049D80C0B9F8049D80CC
|
||||
:10029000C0B978059D80C0B9F8059D80C0A9FF9DB3
|
||||
:1002A00080C020FFC87A6048A9403C83C018F00194
|
||||
:1002B00038686048A9203C83C018F001386860A9FC
|
||||
:1002C00000A2FFA0FF20B3C99002A92B60204AC959
|
||||
:1002D000BD83C029FE9D83C0A951207FC9D050A9EC
|
||||
:1002E000FF9D80C0BD80C0C9FED0F4BD81C0091093
|
||||
:1002F0009D81C0A9FF9D80C0A000BD80C09144C861
|
||||
:10030000D0F8E645BD80C09144C8D0F8C645BD8050
|
||||
:10031000C0BD80C0BD80C0BD81C029EF9D81C01817
|
||||
:10032000A9000848BD83C009019D83C068286038C2
|
||||
:10033000A92780EE20B3C9B065204AC9BD83C02972
|
||||
:10034000FE9D83C0A958207FC9D04EA9FF9D80C0C3
|
||||
:10035000A9FE9D80C0A000B1449D80C0C8D0F8E631
|
||||
:1003600045B1449D80C0C8D0F8C645A9FF9D80C056
|
||||
:100370009D80C09D80C0BD80C0291FC905D01A18AE
|
||||
:10038000A9000848A9FF9D80C0BD80C0F0F6BD83CC
|
||||
:10039000C009019D83C068286038A92780E438A976
|
||||
:1003A0002B80DF38A90160A52B48A53D48A9022074
|
||||
:1003B000F5BEB0498545644468853D68852BA0003D
|
||||
:1003C000989144C8D0FAE645989144C8D0FAC645F9
|
||||
:1003D00064466447A62B2034CAB02220CDC9B01D84
|
||||
:1003E000A00098D144D017C8D0F8E64598D144D0A1
|
||||
:1003F0000DC8D0F8C64520F8BE18A900600000401E
|
||||
:1004000000000000954100000000F948000001AA2A
|
||||
:10041000875000000200FF7700000000656940007F
|
||||
:090420000000776900000000FFF4
|
||||
:00000001FF
|
||||
|
1727
AppleIISd.lst
1727
AppleIISd.lst
File diff suppressed because it is too large
Load Diff
193
AppleIISd.s
193
AppleIISd.s
@ -1,7 +1,7 @@
|
||||
********************************
|
||||
*
|
||||
* Apple][Sd Firmware
|
||||
* Version 0.7
|
||||
* Version 0.8
|
||||
*
|
||||
* (c) Florian Reitz, 2017
|
||||
*
|
||||
@ -23,7 +23,6 @@ DEBUG = 0
|
||||
* Memory defines
|
||||
|
||||
SLOT16 = $2B ; $s0 -> slot * 16
|
||||
WORK = $3C
|
||||
SLOT = $3D ; $0s
|
||||
CMDLO = $40
|
||||
CMDHI = $41
|
||||
@ -41,8 +40,6 @@ R30 = $0478
|
||||
R31 = $04F8
|
||||
R32 = $0578
|
||||
R33 = $05F8
|
||||
RAM0 = $0678
|
||||
RAM1 = $06F8
|
||||
|
||||
* Constants
|
||||
|
||||
@ -151,19 +148,18 @@ INSTALL LDA $BF32,X ; get a devnum
|
||||
|
||||
ELSE
|
||||
|
||||
BOOT CMP #0 ; check for error
|
||||
BEQ :BOOT1
|
||||
BOOT BEQ :BOOT1 ; check for error
|
||||
BRK
|
||||
|
||||
:BOOT1 LDA #$01
|
||||
STA DCMD ; load command
|
||||
LDX SLOT16
|
||||
STA $43 ; slot number
|
||||
STZ BUFFER ; buffer lo
|
||||
LDA #$08
|
||||
STA BUFFER+1 ; buffer hi
|
||||
STZ BLOCK ; block lo
|
||||
STZ BUFFER ; buffer lo
|
||||
STZ BLOCK+1 ; block hi
|
||||
STZ BLOCK ; block lo
|
||||
BIT $CFFF
|
||||
JSR READ ; call driver
|
||||
JMP $801 ; goto bootloader
|
||||
@ -179,6 +175,16 @@ BOOT CMP #0 ; check for error
|
||||
|
||||
DRIVER CLD
|
||||
|
||||
:SAVEZP PHA ; make room for retval
|
||||
LDA SLOT16 ; save all ZP locations
|
||||
PHA
|
||||
LDA SLOT
|
||||
PHA
|
||||
LDA CMDLO
|
||||
PHA
|
||||
LDA CMDHI
|
||||
PHA
|
||||
|
||||
DO DEBUG
|
||||
LDA #$04
|
||||
STA SLOT
|
||||
@ -205,7 +211,8 @@ DRIVER CLD
|
||||
JSR CARDDET
|
||||
BCC :INITED
|
||||
LDA #$2F ; no card inserted
|
||||
BRA :DONE
|
||||
SEC
|
||||
BRA :RESTZP
|
||||
|
||||
:INITED LDA #INITED ; check for init
|
||||
BIT SS,X
|
||||
@ -223,18 +230,34 @@ DRIVER CLD
|
||||
CMP #$FF
|
||||
BEQ :TEST
|
||||
LDA #1 ; unknown command
|
||||
SEC
|
||||
BRA :RESTZP
|
||||
|
||||
:DONE SEC
|
||||
RTS
|
||||
|
||||
:STATUS JMP STATUS
|
||||
:READ JMP READ
|
||||
:WRITE JMP WRITE
|
||||
:FORMAT JMP FORMAT
|
||||
:TEST JMP TEST ; do device test
|
||||
:STATUS JSR STATUS
|
||||
BRA :RESTZP
|
||||
:READ JSR READ
|
||||
BRA :RESTZP
|
||||
:WRITE JSR WRITE
|
||||
BRA :RESTZP
|
||||
:FORMAT JSR FORMAT
|
||||
BRA :RESTZP
|
||||
:TEST JSR TEST ; do device test
|
||||
BRA :RESTZP
|
||||
:INIT JSR INIT
|
||||
BCS :DONE ; init failure
|
||||
BRA :CMD
|
||||
BCC :CMD ; init ok
|
||||
|
||||
:RESTZP TSX
|
||||
STA $105,X ; save retval on stack
|
||||
PLA ; restore all ZP locations
|
||||
STA CMDHI
|
||||
PLA
|
||||
STA CMDLO
|
||||
PLA
|
||||
STA SLOT
|
||||
PLA
|
||||
STA SLOT16
|
||||
PLA ; get retval
|
||||
RTS
|
||||
|
||||
|
||||
* Signature bytes
|
||||
@ -281,7 +304,7 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD0
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR1 ; get response
|
||||
CMP #$01
|
||||
BNE :ERROR1 ; error!
|
||||
@ -290,7 +313,7 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD8
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR3
|
||||
CMP #$01
|
||||
BNE :SDV1 ; may be SD Ver. 1
|
||||
@ -300,17 +323,17 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD55
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR1
|
||||
LDA #<ACMD4140
|
||||
STA CMDLO
|
||||
LDA #>ACMD4140
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR1
|
||||
CMP #$01
|
||||
BEQ :SDV2 ; wait for ready
|
||||
CMP #$00
|
||||
CMP #0
|
||||
BNE :ERROR1 ; error!
|
||||
* send CMD58
|
||||
* SD Ver. 2 initialized!
|
||||
@ -322,16 +345,16 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD55
|
||||
STA CMDHI
|
||||
JSR CMD ; ignore response
|
||||
JSR SDCMD ; ignore response
|
||||
LDA #<ACMD410
|
||||
STA CMDLO
|
||||
LDA #>ACMD410
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR1
|
||||
CMP #$01
|
||||
BEQ :SDV1 ; wait for ready
|
||||
CMP #$00
|
||||
CMP #0
|
||||
BNE :MMC ; may be MMC card
|
||||
* SD Ver. 1 initialized!
|
||||
JMP :BLOCKSZ
|
||||
@ -340,11 +363,11 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD1
|
||||
STA CMDHI
|
||||
:LOOP1 JSR CMD
|
||||
:LOOP1 JSR SDCMD
|
||||
JSR GETR1
|
||||
CMP #$01
|
||||
BEQ :LOOP1 ; wait for ready
|
||||
CMP #$00
|
||||
CMP #0
|
||||
BNE :IOERROR ; error!
|
||||
* MMC Ver. 3 initialized!
|
||||
|
||||
@ -352,9 +375,9 @@ INIT CLD
|
||||
STA CMDLO
|
||||
LDA #>CMD16
|
||||
STA CMDHI
|
||||
JSR CMD
|
||||
JSR SDCMD
|
||||
JSR GETR1
|
||||
CMP #$00
|
||||
CMP #0
|
||||
BNE :IOERROR ; error!
|
||||
|
||||
:END LDA SS,X
|
||||
@ -384,7 +407,7 @@ INIT CLD
|
||||
*
|
||||
********************************
|
||||
|
||||
CMD PHY
|
||||
SDCMD PHY
|
||||
LDY #0
|
||||
:LOOP LDA (CMDLO),Y
|
||||
STA DATA,X
|
||||
@ -409,15 +432,14 @@ GETR1 LDA #DUMMY
|
||||
:WAIT BIT CTRL,X
|
||||
BPL :WAIT
|
||||
LDA DATA,X ; get response
|
||||
STA WORK ; save R1
|
||||
AND #$80
|
||||
BIT #$80
|
||||
BNE GETR1 ; wait for MSB=0
|
||||
PHA
|
||||
LDA #DUMMY
|
||||
STA DATA,X ; send another dummy
|
||||
LDA WORK ; restore R1
|
||||
PLA ; restore R1
|
||||
RTS
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Get R3
|
||||
@ -604,9 +626,7 @@ READ JSR GETBLOCK ; calc block address
|
||||
STA SS,X
|
||||
LDA #$51 ; send CMD17
|
||||
JSR COMMAND ; send command
|
||||
|
||||
CMP #0 ; check for error
|
||||
BNE :ERROR
|
||||
BNE :ERROR ; check for error
|
||||
|
||||
:GETTOK LDA #DUMMY ; get data token
|
||||
STA DATA,X
|
||||
@ -614,22 +634,23 @@ READ JSR GETBLOCK ; calc block address
|
||||
CMP #$FE
|
||||
BNE :GETTOK ; wait for $FE
|
||||
|
||||
LDY #2 ; read data from card
|
||||
LDA CTRL,X ; enable FRX
|
||||
ORA #FRX
|
||||
STA CTRL,X
|
||||
LDA #DUMMY
|
||||
STA DATA,X
|
||||
:LOOPY STZ WORK
|
||||
:LOOPW LDA DATA,X
|
||||
STA (BUFFER)
|
||||
INC BUFFER
|
||||
BNE :INW
|
||||
|
||||
LDY #0
|
||||
:LOOP1 LDA DATA,X ; read data from card
|
||||
STA (BUFFER),Y
|
||||
INY
|
||||
BNE :LOOP1
|
||||
INC BUFFER+1 ; inc msb on page boundary
|
||||
:INW INC WORK
|
||||
BNE :LOOPW
|
||||
DEY
|
||||
BNE :LOOPY
|
||||
:LOOP2 LDA DATA,X
|
||||
STA (BUFFER),Y
|
||||
INY
|
||||
BNE :LOOP2
|
||||
DEC BUFFER+1
|
||||
|
||||
:CRC LDA DATA,X ; read two bytes crc
|
||||
LDA DATA,X ; and ignore
|
||||
@ -680,28 +701,27 @@ WRITE JSR WRPROT
|
||||
STA SS,X
|
||||
LDA #$58 ; send CMD24
|
||||
JSR COMMAND ; send command
|
||||
|
||||
CMP #0 ; check for error
|
||||
BNE :IOERROR
|
||||
BNE :IOERROR ; check for error
|
||||
|
||||
LDA #DUMMY
|
||||
STA DATA,X ; send dummy
|
||||
LDA #$FE
|
||||
STA DATA,X ; send data token
|
||||
|
||||
LDY #2 ; send data to card
|
||||
:LOOPY STZ WORK
|
||||
:LOOPW LDA (BUFFER)
|
||||
LDY #0
|
||||
:LOOP1 LDA (BUFFER),Y
|
||||
STA DATA,X :
|
||||
INY
|
||||
BNE :LOOP1
|
||||
INC BUFFER+1 :
|
||||
:LOOP2 LDA (BUFFER),Y
|
||||
STA DATA,X
|
||||
INC BUFFER
|
||||
BNE :INW
|
||||
INC BUFFER+1 ; inc msb on page boundary
|
||||
:INW INC WORK
|
||||
BNE :LOOPW
|
||||
DEY
|
||||
BNE :LOOPY
|
||||
INY
|
||||
BNE :LOOP2
|
||||
DEC BUFFER+1
|
||||
|
||||
:CRC STA DATA,X ; send 2 dummy crc bytes
|
||||
:CRC LDA #DUMMY
|
||||
STA DATA,X ; send 2 dummy crc bytes
|
||||
STA DATA,X
|
||||
|
||||
STA DATA,X ; get data response
|
||||
@ -717,7 +737,6 @@ WRITE JSR WRPROT
|
||||
:WAIT LDA #DUMMY
|
||||
STA DATA,X ; wait for write cycle
|
||||
LDA DATA,X ; to complete
|
||||
CMP #$00
|
||||
BEQ :WAIT
|
||||
|
||||
LDA SS,X ; disable /CS
|
||||
@ -755,18 +774,21 @@ FORMAT SEC
|
||||
*
|
||||
********************************
|
||||
|
||||
TEST
|
||||
TEST LDA SLOT16
|
||||
PHA
|
||||
LDA SLOT
|
||||
PHA
|
||||
|
||||
* get buffer
|
||||
LDY SLOT
|
||||
LDA #2 ; get 512 byte buffer
|
||||
JSR $BEF5 ; call GETBUFR
|
||||
BCS :ERROR
|
||||
STA RAM1,Y
|
||||
STA BUFFER+1
|
||||
LDA #0
|
||||
STA RAM0,Y
|
||||
STA BUFFER
|
||||
STZ BUFFER
|
||||
PLA
|
||||
STA SLOT
|
||||
PLA
|
||||
STA SLOT16
|
||||
|
||||
* fill buffer
|
||||
LDY #0
|
||||
@ -779,41 +801,21 @@ TEST
|
||||
STA (BUFFER),Y
|
||||
INY
|
||||
BNE :LOOP1
|
||||
DEC BUFFER+1
|
||||
|
||||
* write to card
|
||||
LDA #2 ; write cmd
|
||||
LDY SLOT
|
||||
STA DCMD
|
||||
LDA RAM0 ; buffer address
|
||||
STA BUFFER
|
||||
LDA RAM1,Y
|
||||
STA BUFFER+1
|
||||
STZ BLOCK ; block number
|
||||
STZ BLOCK+1
|
||||
LDX SLOT16
|
||||
JSR DRIVER
|
||||
|
||||
* write to card
|
||||
JSR WRITE
|
||||
BCS :ERROR
|
||||
|
||||
* read from card
|
||||
LDA #1 ; read cmd
|
||||
LDY SLOT
|
||||
STA DCMD
|
||||
LDA RAM0,Y ; buffer address
|
||||
STA BUFFER
|
||||
LDA RAM1,Y
|
||||
STA BUFFER+1
|
||||
STZ BLOCK ; block number
|
||||
STZ BLOCK+1
|
||||
LDX SLOT16
|
||||
JSR DRIVER
|
||||
JSR READ
|
||||
BCS :ERROR
|
||||
|
||||
* check for errors
|
||||
LDY SLOT
|
||||
LDA RAM0,Y ; buffer address
|
||||
STA BUFFER
|
||||
LDA RAM1,Y
|
||||
STA BUFFER+1
|
||||
LDY #0
|
||||
:LOOP2 TYA
|
||||
CMP (BUFFER),Y
|
||||
@ -826,6 +828,7 @@ TEST
|
||||
BNE :ERRCMP
|
||||
INY
|
||||
BNE :LOOP3
|
||||
DEC BUFFER+1
|
||||
|
||||
* free buffer
|
||||
JSR $BEF8 ; call FREEBUFR
|
||||
|
Loading…
x
Reference in New Issue
Block a user