RAM-Drive/Original/RAMDRIVE.LST
Anatoliy Belyanskiy 8037fd59ce Setup
2023-06-15 17:23:24 +10:00

355 lines
14 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

AS80 Assembler for i8080 [1.31]. Page 1
-------------------------------- RAMDRIVE.ASM --------------------------------
331 lines read, no errors in pass 1.
7f00 = ORG #8100-512
INCLUDE "DOS_EQU.ASM"
0000 = VERSION EQU #00
0001 = CHDISK EQU #01
0002 = CURDISK EQU #02
0003 = DSKINFO EQU #03
0004 = G_ENTRY EQU #04
0009 = BOOTDSK EQU #09
000a = CREATE EQU #0A
000b = CREAT_N EQU #0B
000d = ERASE EQU #0D
000e = DELETE EQU #0E
000f = MOVE EQU #0F
0010 = RENAME EQU #10
0011 = OPEN EQU #11
0012 = CLOSE EQU #12
0013 = READ EQU #13
0014 = WRITE EQU #14
0015 = MOVE_FP EQU #15
0016 = ATTRIB EQU #16
0017 = GET_D_T EQU #17
0018 = PUT_D_T EQU #18
0019 = F_FIRST EQU #19
001a = F_NEXT EQU #1A
001b = MKDIR EQU #1B
001c = RMDIR EQU #1C
001d = CHDIR EQU #1D
001e = CURDIR EQU #1E
0021 = SYSTIME EQU #21
0022 = SETTIME EQU #22
0030 = WAITKEY EQU #30
0031 = SCANKEY EQU #31
0032 = ECHOKEY EQU #32
0033 = CTRLKEY EQU #33
0034 = EDIT EQU #34
0035 = K_CLEAR EQU #35
0038 = SETWIN EQU #38
0039 = SETWIN1 EQU #39
003a = SETWIN2 EQU #3A
003b = SETWIN3 EQU #3B
003c = FREEMEM EQU #3C
003d = GETMEM EQU #3D
003e = RETMEM EQU #3E
003f = SETMEM EQU #3F
0040 = EXEC EQU #40
0041 = EXIT EQU #41
0042 = WAIT EQU #42
0043 = GSWITCH EQU #43
0044 = DOSNAME EQU #44
0050 = SETVMOD EQU #50
0051 = GETVMOD EQU #51
0052 = LOCATE EQU #52
0053 = CURSOR EQU #53
AS80 Assembler for i8080 [1.31]. Page 2
-------------------------------- RAMDRIVE.ASM --------------------------------
0054 = SELPAGE EQU #54
0055 = SCROLL EQU #55
0056 = CLEAR EQU #56
0057 = RDCHAR EQU #57
0058 = WRCHAR EQU #58
0059 = WINCOPY EQU #59
005a = WINREST EQU #5A
005b = PUTCHAR EQU #5B
005c = PCHARS EQU #5C
005d = RES_PRN EQU #5D
005e = CTRLPRN EQU #5E
005f = PRINT EQU #5F
00e2 = PAGE3 EQU #E2
000d = CR EQU 13
000a = LF EQU 10
0000 = EN EQU 00
7f00 : 455845 DB "EXE" ;EXE ID
7f03 : 00 DB #00 ;EXE VERSION
7f04 : 0002 DW #0200 ;CODE OFFSET LOW
7f06 : 0000 DW #0000 ;CODE OFFSET HIGH
7f08 : 0000 DW #0000 ;END-BEG ;PRIMARY LOADER
7f0a : 0000 DW #0000 ;
7f0c : 0000 DW #0000 ;RESERVED
7f0e : 0000 DW #0000 ;
7f10 : 0081 DW #8100 ;LOAD ADDRESS
7f12 : 0081 DW #8100 ;START ADDRESS
7f14 : ffbf DW #BFFF ;STACK ADDRESS
7f16 : 00000000000000.. DS 490
8100 : 219281 BEG LD HL,MS0
8103 : 0e5c LD C,PCHARS
8105 : d7 RST #10
8106 : f3 DI
8107 : 01ce00 LD BC,#00CE
810a : 78 NEXTRD LD A,B
810b : c5 PUSH BC
810c : cf RST #08
810d : c1 POP BC
810e : b7 OR A
810f : 2809 JR Z,FNDRD
8111 : 04 INC B
8112 : 78 LD A,B
8113 : fe10 CP #10
8115 : 20f3 JR NZ,NEXTRD
8117 : c37c81 JP NORAMD
811a : c5 FNDRD PUSH BC
811b : 0ec2 LD C,#C2 ;GET MEMORY
811d : 062d LD B,45
811f : cf RST #08
8120 : c1 POP BC
8121 : da8781 JP C,NOMEM
8124 : f5 PUSH AF
8125 : 4f LD C,A
8126 : 78 LD A,B
8127 : 41 LD B,C
8128 : 0ec9 LD C,#C9
812a : cf RST #08
812b : f1 POP AF
812c : 0ee2 LD C,PAGE3
812e : ed40 IN B,(C)
AS80 Assembler for i8080 [1.31]. Page 3
-------------------------------- RAMDRIVE.ASM --------------------------------
8130 : ed79 OUT (C),A
8132 : c5 PUSH BC
8133 : 2100c0 LD HL,#C000
8136 : 1101c0 LD DE,#C001
8139 : 01ff3f LD BC,#3FFF
813c : 75 LD (HL),L
813d : edb0 LDIR
813f : 214982 LD HL,BPB
8142 : 1100c0 LD DE,#C000
8145 : 013b00 LD BC,BPBEND-BPB
8148 : edb0 LDIR
814a : 2155aa LD HL,#AA55
814d : 22fec1 LD (#C200-2),HL
8150 : 2100c2 LD HL,#C200
8153 : 36f9 LD (HL),#F9
8155 : 2c INC L
8156 : 36ff LD (HL),#FF
8158 : 2c INC L
8159 : 36ff LD (HL),#FF
815b : 2c INC L
815c : 3600 LD (HL),#00
815e : 2100cc LD HL,#C200+(512*5)
8161 : 36f9 LD (HL),#F9
8163 : 2c INC L
8164 : 36ff LD (HL),#FF
8166 : 2c INC L
8167 : 36ff LD (HL),#FF
8169 : 2c INC L
816a : 3600 LD (HL),#00
816c : c1 POP BC
816d : ed41 OUT (C),B
816f : 21c081 LD HL,MS1
8172 : 0e5c LD C,PCHARS
8174 : d7 RST #10
8175 : 0600 LD B,#00
8177 : 0e41 EXITT LD C,#41
8179 : d7 RST #10
817a : f3 DI
817b : 76 HALT
817c : 21d381 NORAMD LD HL,MS2
817f : 0e5c LD C,PCHARS
8181 : d7 RST #10
8182 : 0601 LD B,1
8184 : c37781 JP EXITT
8187 : 21e681 NOMEM LD HL,MS3
818a : 0e5c LD C,PCHARS
818c : d7 RST #10
818d : 0601 LD B,1
818f : c37781 JP EXITT
;
; RAMDRIVE 720
; RAMDRIVE E:720
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
;
;GETPARM LD A,#FF
AS80 Assembler for i8080 [1.31]. Page 4
-------------------------------- RAMDRIVE.ASM --------------------------------
; LD (RDRIVE),A
; LD (RSIZE),A
; LD D,XH
; LD E,XL
; EX DE,HL
; LD E,(HL)
; INC HL
; LD D,0
; EX DE,HL
; ADD HL,DE
; LD (HL),0
;NEXTPRM EX DE,HL
; LD DE,BUFFER
; LD C,GSWITCH
; RST #10
; EX DE,HL ;SAVE HL IN DE
; LD HL,BUFFER
; LD A,(HL)
; INC HL
; OR A
; RET Z
; CP "/"
; JR NZ,NOSLASH
; LD A,(HL)
; INC HL
; CALL UPPER
; CALL ATOHEX
; JP C,ILLEGAL
; LD (RDRIVE),A
; LD A,(HL)
; OR A
; JR Z,NEXTPRM
; JP ILLEGAL
;
;NOSLASH CP ":"
; JP NZ,NOSIZER
; LD IX,0
;NDIG LD C,XL
; LD B,XH
; ADD IX,IX ;X2
; ADD IX,IX ;X4
; ADD IX,BC ;X5
; ADD IX,IX ;X10
; JP C,ILLEGAL
; LD A,(HL)
; OR A
; JR Z,ENDSZ
; CALL UPPER
; CP "K"
; JR Z,ENDSZ
; CALL ATODEC
; LD C,A
; LD B,0
; ADD IX,BC
; JR NDIG
;ENDSZ LD A,XL
; LD C,A
; LD B,XH
; SRL B
; RR C
; SRL B
; RR C
AS80 Assembler for i8080 [1.31]. Page 5
-------------------------------- RAMDRIVE.ASM --------------------------------
; SRL B
; RR C
; SRL B
; RR C
; AND #0F
; JR Z,L101
; INC BC
;L101 LD A,B
; OR A
; JP NZ,ILLEGAL
; LD A,C
; LD (RSIZE),A
; JP NEXTPRM
;NOSIZER JP ILLEGAL
;ATODEC CP "0"
; RET C
; CP ":"
; CCF
; RET C
; SUB "0"
; RET
;ATOHEX CP "0"
; RET C
; CP ":"
; JR NC,TRYHEX
; SUB "0"
; AND A
; RET
;TRYHEX CALL UPPER
; CP "A"
; RET C
; CP "G"
; CCF
; RET C
; SUB "A"
; RET
;UPPER CP "a"
; RET C
; CP "z"+1
; RET NC
; SUB #20
; RET
8192 : 52414d44524956.. MS0 DB "RAMDRIVE DRIVER (C) 1999 PETERS Plus ltd.",CR,
81c0 : 52414d20444953.. MS1 DB "RAM DISK created",CR,LF,EN
81d3 : 4e6f2066726565.. MS2 DB "No free RAM-DISK",CR,LF,EN
81e6 : 4e6f2066726565.. MS3 DB "No free memory, for create RAM-DISK",CR,LF,EN
820c : 496c6c6567616c.. MS4 DB "Illegal parametr",CR,LF,EN
821f : 5573616765203a.. MS5 DB "Usage : RAMDRIVE [/drive 0...F] [:size]",CR,LF
; Area for boot sector [512Bytes]
8249 : eb3c90 BPB DB #EB,#3C,#90 ; +00 JMP
824c : 444f535f582e5858 DB "DOS_X.XX" ; +03 DOS NAME
AS80 Assembler for i8080 [1.31]. Page 6
-------------------------------- RAMDRIVE.ASM --------------------------------
; Block Parameters BIOS
8254 : 0002 DW #0200 ; +0B BYTE PER SECTOR
8256 : 01 DB 1 ; +0D SECTORS PER CLUSTER
8257 : 0100 DW 1 ; +0E RESERVE SECTORS
8259 : 02 DB 2 ; 1 ; +10 AMOUNT FATS
825a : 7000 DW 112 ; +11 FILES IN DIRECTORY
825c : a005 DW 1440 ; +13 ALL SECTORS ON DISK
825e : fa DB #FA ; +15 ID FORMAT
825f : 0500 DW 5 ; +16 SIZE FAT IN SECTORS
8261 : 0900 DW 9 ; +18 SECTOR PER TRACK
8263 : 0200 DW 2 ; +1A AMOUNT SIDES
8265 : 00000000 DW 0,0 ; +1C HIDDEN SECTORS
8269 : 00000000 DW 0,0 ; +20 ALL SECTORS BIG
826d : 8000 DW #0080 ; +24 PHISICAL DRIVE NUMBER
826f : 29 DB #29 ; +26 EXTENDED RECORD SIGNATURE
8270 : 4b1065d7 DW #104B,#D765 ; +27 SERIAL VOLUME NUMBER
8274 : 4e4f204e414d45.. DB "NO NAME ";+2B DISK LABEL
827f : 4641543132 DB "FAT12" ; +36 FAT ID
8284 : BPBEND
; DEFS 453,0
; end boot sector
No errors in pass 2.
Wrote binary from address $7f00 through $8283.
Total size 900 bytes.