├── 128_de ├── Main │ ├── Ende.s │ ├── Dos.lnk.s │ ├── DeskTop.sub8.s │ ├── DeskTop.sub2.s │ ├── DeskTop.sub4.s │ └── DeskTop.sub.s ├── Include │ └── Symbol │ │ ├── Sym128.erg.s │ │ ├── CiSym.s │ │ ├── CiMac.s │ │ └── TopMac.s ├── Protect │ ├── Desksub0.s │ ├── SetProt.mod.s │ └── Sources │ │ ├── RemProtection.s │ │ ├── SetProtection.s │ │ ├── RemProt.mod.s │ │ ├── ProtectDisk.s │ │ └── SetBAM.s ├── GetDrivers │ ├── SaveDriver.s │ └── GetDrivers.s ├── WinInclude │ ├── SpeedFrame.s │ └── InvFrame.s └── DeskInclude │ ├── SizeRectangle.s │ ├── DosFormat.s │ └── SearchDisk.s ├── 128_en ├── Main │ ├── Ende.s │ ├── Dos.lnk.s │ ├── DeskTop.sub8.s │ ├── DeskTop.sub2.s │ └── DeskTop.sub4.s ├── Include │ └── Symbol │ │ ├── Sym128.erg.s │ │ ├── CiSym.s │ │ ├── CiMac.s │ │ └── TopMac.s ├── Protect │ ├── Desksub0.s │ ├── SetProt.mod.s │ └── Sources │ │ ├── RemProtection.s │ │ ├── SetProtection.s │ │ ├── RemProt.mod.s │ │ ├── ProtectDisk.s │ │ └── SetBAM.s ├── GetDrivers │ ├── SaveDriver.s │ └── GetDrivers.s ├── WinInclude │ ├── SpeedFrame.s │ └── InvFrame.s └── DeskInclude │ ├── SizeRectangle.s │ ├── DosFormat.s │ └── SearchDisk.s ├── 64_de ├── Main │ ├── Ende.s │ ├── Dos.lnk.s │ ├── DeskTop.sub8.s │ ├── DeskWindows..ext.s │ ├── DeskTop.sub2.s │ ├── DeskTop.sub4.s │ └── DeskTop.sub.s ├── Include │ └── Symbol │ │ ├── Sym128.erg.s │ │ ├── CiSym.s │ │ ├── CiMac.s │ │ └── TopMac.s ├── Protect │ ├── Desksub0.s │ ├── SetProt.mod.s │ ├── Sources │ │ ├── RemProtection.s │ │ ├── SetProtection.s │ │ ├── RemProt.mod.s │ │ ├── ProtectDisk.s │ │ └── SetBAM.s │ └── TopMac(a).s ├── GetDrivers │ ├── SaveDriver.s │ └── GetDrivers.s ├── WinInclude │ ├── SpeedFrame.s │ └── InvFrame.s └── DeskInclude │ ├── SizeRectangle.s │ ├── DosFormat.s │ └── SearchDisk.s ├── 64_en ├── Main │ ├── Ende.s │ ├── Dos.lnk.s │ ├── DeskTop.sub8.s │ ├── DeskTop.sub2.s │ ├── DeskTop.sub.s │ └── DeskTop.sub4.s ├── Include │ └── Symbol │ │ ├── Sym128.erg.s │ │ ├── CiSym.s │ │ ├── CiMac.s │ │ └── TopMac.s ├── Protect │ ├── Desksub0.s │ ├── SetProt.mod.s │ ├── Sources │ │ ├── RemProtection.s │ │ ├── SetProtection.s │ │ ├── RemProt.mod.s │ │ ├── ProtectDisk.s │ │ └── SetBAM.s │ └── TopMac(a).s ├── GetDrivers │ ├── SaveDriver.s │ └── GetDrivers.s ├── WinInclude │ ├── SpeedFrame.s │ ├── InvFrame.s │ └── InvFrame.old.s └── DeskInclude │ ├── SizeRectangle.s │ ├── DosFormat.s │ └── SearchDisk.s └── README.md /128_de/Main/Ende.s: -------------------------------------------------------------------------------- 1 | n "Ende" 2 | Ende 3 | -------------------------------------------------------------------------------- /128_en/Main/Ende.s: -------------------------------------------------------------------------------- 1 | n "Ende" 2 | Ende 3 | -------------------------------------------------------------------------------- /64_de/Main/Ende.s: -------------------------------------------------------------------------------- 1 | n "Ende" 2 | Ende 3 | -------------------------------------------------------------------------------- /64_en/Main/Ende.s: -------------------------------------------------------------------------------- 1 | n "Ende" 2 | Ende 3 | -------------------------------------------------------------------------------- /128_de/Main/Dos.lnk.s: -------------------------------------------------------------------------------- 1 | n "Dos" 2 | m 3 | - "Dos.res" 4 | - "DeskMod A" 5 | - "DeskMod B" 6 | - "DeskMod C" 7 | - "DeskMod D" 8 | - "DeskMod E" 9 | - "DeskMod F" 10 | - "DeskMod G" 11 | - "DeskMod H" 12 | - "DeskMod I" 13 | - "DeskMod J" 14 | / 15 | -------------------------------------------------------------------------------- /128_en/Main/Dos.lnk.s: -------------------------------------------------------------------------------- 1 | n "Dos" 2 | m 3 | - "Dos.res" 4 | - "DeskMod A" 5 | - "DeskMod B" 6 | - "DeskMod C" 7 | - "DeskMod D" 8 | - "DeskMod E" 9 | - "DeskMod F" 10 | - "DeskMod G" 11 | - "DeskMod H" 12 | - "DeskMod I" 13 | - "DeskMod J" 14 | / 15 | -------------------------------------------------------------------------------- /64_de/Main/Dos.lnk.s: -------------------------------------------------------------------------------- 1 | n "Dos" 2 | m 3 | - "Dos.res" 4 | - "DeskMod A" 5 | - "DeskMod B" 6 | - "DeskMod C" 7 | - "DeskMod D" 8 | - "DeskMod E" 9 | - "DeskMod F" 10 | - "DeskMod G" 11 | - "DeskMod H" 12 | - "DeskMod I" 13 | - "DeskMod J" 14 | / 15 | -------------------------------------------------------------------------------- /64_en/Main/Dos.lnk.s: -------------------------------------------------------------------------------- 1 | n "Dos" 2 | m 3 | - "Dos.res" 4 | - "DeskMod A" 5 | - "DeskMod B" 6 | - "DeskMod C" 7 | - "DeskMod D" 8 | - "DeskMod E" 9 | - "DeskMod F" 10 | - "DeskMod G" 11 | - "DeskMod H" 12 | - "DeskMod I" 13 | - "DeskMod J" 14 | / 15 | -------------------------------------------------------------------------------- /128_de/Include/Symbol/Sym128.erg.s: -------------------------------------------------------------------------------- 1 | ; Systemvariablen f}r den C128 2 | ; Version 13.07.89 3 | 4 | :ADD1_W = $2000 5 | :DoBOp = $c2ec 6 | :DOUBLE_B = $80 7 | :DOUBLE_W = $8000 8 | :graphMode = $3f 9 | :HideOnlyMouse = $c2f2 10 | :MoveBData = $c2e3 11 | :NormalizeX = $c2e0 12 | :SetMsePic = $c2da 13 | :SetNewMode = $c2dd 14 | :SwapBData = $c2e6 15 | :TempHideMouse = $c2d7 16 | :VerifyBData = $c2e9 17 | -------------------------------------------------------------------------------- /128_en/Include/Symbol/Sym128.erg.s: -------------------------------------------------------------------------------- 1 | ; Systemvariablen f}r den C128 2 | ; Version 13.07.89 3 | 4 | :ADD1_W = $2000 5 | :DoBOp = $c2ec 6 | :DOUBLE_B = $80 7 | :DOUBLE_W = $8000 8 | :graphMode = $3f 9 | :HideOnlyMouse = $c2f2 10 | :MoveBData = $c2e3 11 | :NormalizeX = $c2e0 12 | :SetMsePic = $c2da 13 | :SetNewMode = $c2dd 14 | :SwapBData = $c2e6 15 | :TempHideMouse = $c2d7 16 | :VerifyBData = $c2e9 17 | -------------------------------------------------------------------------------- /64_de/Include/Symbol/Sym128.erg.s: -------------------------------------------------------------------------------- 1 | ; Systemvariablen f}r den C128 2 | ; Version 13.07.89 3 | 4 | :ADD1_W = $2000 5 | :DoBOp = $c2ec 6 | :DOUBLE_B = $80 7 | :DOUBLE_W = $8000 8 | :graphMode = $3f 9 | :HideOnlyMouse = $c2f2 10 | :MoveBData = $c2e3 11 | :NormalizeX = $c2e0 12 | :SetMsePic = $c2da 13 | :SetNewMode = $c2dd 14 | :SwapBData = $c2e6 15 | :TempHideMouse = $c2d7 16 | :VerifyBData = $c2e9 17 | -------------------------------------------------------------------------------- /64_en/Include/Symbol/Sym128.erg.s: -------------------------------------------------------------------------------- 1 | ; Systemvariablen f}r den C128 2 | ; Version 13.07.89 3 | 4 | :ADD1_W = $2000 5 | :DoBOp = $c2ec 6 | :DOUBLE_B = $80 7 | :DOUBLE_W = $8000 8 | :graphMode = $3f 9 | :HideOnlyMouse = $c2f2 10 | :MoveBData = $c2e3 11 | :NormalizeX = $c2e0 12 | :SetMsePic = $c2da 13 | :SetNewMode = $c2dd 14 | :SwapBData = $c2e6 15 | :TempHideMouse = $c2d7 16 | :VerifyBData = $c2e9 17 | -------------------------------------------------------------------------------- /128_de/Include/Symbol/CiSym.s: -------------------------------------------------------------------------------- 1 | :RstrFrmDialog = RstrFrmDialogue 2 | ; RstrFrmDialogue falsch in TopSym!! 3 | :DIRECTORY = 11 4 | 5 | ; Label in MegaSym enthalten 6 | :END_MOUSE = $fffa 7 | ; 8 | :OFF_DIR_NUM = 117 9 | 10 | ; Fehlernummern 11 | :NO_DIR_FREE = $40 12 | :FILE_EXISTS = $41 13 | :REKURSIV = $42 14 | :WRONG_DIR = $43 15 | :SUB_DIR = $44 16 | :UNDEFINED_CLASS = $45 17 | :NOT_PRINTING_FILE 18 | = $46 19 | -------------------------------------------------------------------------------- /128_en/Include/Symbol/CiSym.s: -------------------------------------------------------------------------------- 1 | :RstrFrmDialog = RstrFrmDialogue 2 | ; RstrFrmDialogue falsch in TopSym!! 3 | :DIRECTORY = 11 4 | 5 | ; Label in MegaSym enthalten 6 | :END_MOUSE = $fffa 7 | ; 8 | :OFF_DIR_NUM = 117 9 | 10 | ; Fehlernummern 11 | :NO_DIR_FREE = $40 12 | :FILE_EXISTS = $41 13 | :REKURSIV = $42 14 | :WRONG_DIR = $43 15 | :SUB_DIR = $44 16 | :UNDEFINED_CLASS = $45 17 | :NOT_PRINTING_FILE 18 | = $46 19 | -------------------------------------------------------------------------------- /64_de/Include/Symbol/CiSym.s: -------------------------------------------------------------------------------- 1 | :RstrFrmDialog = RstrFrmDialogue 2 | ; RstrFrmDialogue falsch in TopSym!! 3 | :DIRECTORY = 11 4 | 5 | ; Label in MegaSym enthalten 6 | :END_MOUSE = $fffa 7 | ; 8 | :OFF_DIR_NUM = 117 9 | 10 | ; Fehlernummern 11 | :NO_DIR_FREE = $40 12 | :FILE_EXISTS = $41 13 | :REKURSIV = $42 14 | :WRONG_DIR = $43 15 | :SUB_DIR = $44 16 | :UNDEFINED_CLASS = $45 17 | :NOT_PRINTING_FILE 18 | = $46 19 | -------------------------------------------------------------------------------- /64_en/Include/Symbol/CiSym.s: -------------------------------------------------------------------------------- 1 | :RstrFrmDialog = RstrFrmDialogue 2 | ; RstrFrmDialogue falsch in TopSym!! 3 | :DIRECTORY = 11 4 | 5 | ; Label in MegaSym enthalten 6 | :END_MOUSE = $fffa 7 | ; 8 | :OFF_DIR_NUM = 117 9 | 10 | ; Fehlernummern 11 | :NO_DIR_FREE = $40 12 | :FILE_EXISTS = $41 13 | :REKURSIV = $42 14 | :WRONG_DIR = $43 15 | :SUB_DIR = $44 16 | :UNDEFINED_CLASS = $45 17 | :NOT_PRINTING_FILE 18 | = $46 19 | -------------------------------------------------------------------------------- /128_de/Protect/Desksub0.s: -------------------------------------------------------------------------------- 1 | n "Desksub0" 2 | if .p 3 | t "TopSym" 4 | t "TopMac(a)" 5 | endif 6 | ; o 9806 7 | s 9806-$400 8 | :Start LoadW r0,:menu 9 | lda #0 10 | jsr DoMenu 11 | LoadW appMain,:10 12 | rts 13 | ::menu b 0,14 14 | w 0,100 15 | b 1 16 | w :t1 17 | b MENU_ACTION 18 | w ReDoMenu 19 | ::t1 b "geos",0 20 | ::10 jsr DeProtectDisk 21 | LoadW r6,TopName 22 | LoadB r0L,0 23 | jsr GetFile 24 | jmp EnterDeskTop 25 | :TopName b "TopDesk",0 26 | 27 | t "RemProtection.s" 28 | 29 | :CopyProtection d "RemProt.mod" 30 | :CopyProtectionEnd 31 | -------------------------------------------------------------------------------- /128_en/Protect/Desksub0.s: -------------------------------------------------------------------------------- 1 | n "Desksub0" 2 | if .p 3 | t "TopSym" 4 | t "TopMac(a)" 5 | endif 6 | ; o 9806 7 | s 9806-$400 8 | :Start LoadW r0,:menu 9 | lda #0 10 | jsr DoMenu 11 | LoadW appMain,:10 12 | rts 13 | ::menu b 0,14 14 | w 0,100 15 | b 1 16 | w :t1 17 | b MENU_ACTION 18 | w ReDoMenu 19 | ::t1 b "geos",0 20 | ::10 jsr DeProtectDisk 21 | LoadW r6,TopName 22 | LoadB r0L,0 23 | jsr GetFile 24 | jmp EnterDeskTop 25 | :TopName b "TopDesk",0 26 | 27 | t "RemProtection.s" 28 | 29 | :CopyProtection d "RemProt.mod" 30 | :CopyProtectionEnd 31 | -------------------------------------------------------------------------------- /64_de/Protect/Desksub0.s: -------------------------------------------------------------------------------- 1 | n "Desksub0" 2 | if .p 3 | t "TopSym" 4 | t "TopMac(a)" 5 | endif 6 | ; o 9806 7 | s 9806-$400 8 | :Start LoadW r0,:menu 9 | lda #0 10 | jsr DoMenu 11 | LoadW appMain,:10 12 | rts 13 | ::menu b 0,14 14 | w 0,100 15 | b 1 16 | w :t1 17 | b MENU_ACTION 18 | w ReDoMenu 19 | ::t1 b "geos",0 20 | ::10 jsr DeProtectDisk 21 | LoadW r6,TopName 22 | LoadB r0L,0 23 | jsr GetFile 24 | jmp EnterDeskTop 25 | :TopName b "TopDesk",0 26 | 27 | t "RemProtection.s" 28 | 29 | :CopyProtection d "RemProt.mod" 30 | :CopyProtectionEnd 31 | -------------------------------------------------------------------------------- /64_en/Protect/Desksub0.s: -------------------------------------------------------------------------------- 1 | n "Desksub0" 2 | if .p 3 | t "TopSym" 4 | t "TopMac(a)" 5 | endif 6 | ; o 9806 7 | s 9806-$400 8 | :Start LoadW r0,:menu 9 | lda #0 10 | jsr DoMenu 11 | LoadW appMain,:10 12 | rts 13 | ::menu b 0,14 14 | w 0,100 15 | b 1 16 | w :t1 17 | b MENU_ACTION 18 | w ReDoMenu 19 | ::t1 b "geos",0 20 | ::10 jsr DeProtectDisk 21 | LoadW r6,TopName 22 | LoadB r0L,0 23 | jsr GetFile 24 | jmp EnterDeskTop 25 | :TopName b "TopDesk",0 26 | 27 | t "RemProtection.s" 28 | 29 | :CopyProtection d "RemProt.mod" 30 | :CopyProtectionEnd 31 | -------------------------------------------------------------------------------- /128_de/Include/Symbol/CiMac.s: -------------------------------------------------------------------------------- 1 | :DecW m 2 | dec @0 3 | lda @0 4 | cmp #$ff 5 | bne :10 6 | dec @0+1 7 | ::10 8 | / 9 | 10 | :IncW m 11 | inc @0 12 | bne :10 13 | inc @0+1 14 | ::10 15 | / 16 | 17 | ; AddSW 18 | ; Addiert inhalt einer Adresse (Byte) 19 | ; zu einem Wortwert 20 | ; 21 | :AddSW m 22 | lda @0 23 | clc 24 | adc @1 25 | sta @1 26 | lda @1+1 27 | adc #$00 28 | sta @1+1 29 | / 30 | 31 | :SubSW m 32 | lda @1 33 | sec 34 | sbc @0 35 | sta @1 36 | lda @1+1 37 | sbc #$00 38 | sta @1+1 39 | / 40 | :AddvW m 41 | lda #@0 42 | clc 43 | adc @1 44 | sta @1 45 | bcc :10 46 | inc @1+1 47 | ::10 48 | / 49 | :LoadWr0 m 50 | lda #<@0 51 | ldx #>@0 52 | jsr Loadr0AX 53 | / 54 | -------------------------------------------------------------------------------- /128_en/Include/Symbol/CiMac.s: -------------------------------------------------------------------------------- 1 | :DecW m 2 | dec @0 3 | lda @0 4 | cmp #$ff 5 | bne :10 6 | dec @0+1 7 | ::10 8 | / 9 | 10 | :IncW m 11 | inc @0 12 | bne :10 13 | inc @0+1 14 | ::10 15 | / 16 | 17 | ; AddSW 18 | ; Addiert inhalt einer Adresse (Byte) 19 | ; zu einem Wortwert 20 | ; 21 | :AddSW m 22 | lda @0 23 | clc 24 | adc @1 25 | sta @1 26 | lda @1+1 27 | adc #$00 28 | sta @1+1 29 | / 30 | 31 | :SubSW m 32 | lda @1 33 | sec 34 | sbc @0 35 | sta @1 36 | lda @1+1 37 | sbc #$00 38 | sta @1+1 39 | / 40 | :AddvW m 41 | lda #@0 42 | clc 43 | adc @1 44 | sta @1 45 | bcc :10 46 | inc @1+1 47 | ::10 48 | / 49 | :LoadWr0 m 50 | lda #<@0 51 | ldx #>@0 52 | jsr Loadr0AX 53 | / 54 | -------------------------------------------------------------------------------- /64_de/Include/Symbol/CiMac.s: -------------------------------------------------------------------------------- 1 | :DecW m 2 | dec @0 3 | lda @0 4 | cmp #$ff 5 | bne :10 6 | dec @0+1 7 | ::10 8 | / 9 | 10 | :IncW m 11 | inc @0 12 | bne :10 13 | inc @0+1 14 | ::10 15 | / 16 | 17 | ; AddSW 18 | ; Addiert inhalt einer Adresse (Byte) 19 | ; zu einem Wortwert 20 | ; 21 | :AddSW m 22 | lda @0 23 | clc 24 | adc @1 25 | sta @1 26 | lda @1+1 27 | adc #$00 28 | sta @1+1 29 | / 30 | 31 | :SubSW m 32 | lda @1 33 | sec 34 | sbc @0 35 | sta @1 36 | lda @1+1 37 | sbc #$00 38 | sta @1+1 39 | / 40 | :AddvW m 41 | lda #@0 42 | clc 43 | adc @1 44 | sta @1 45 | bcc :10 46 | inc @1+1 47 | ::10 48 | / 49 | :LoadWr0 m 50 | lda #<@0 51 | ldx #>@0 52 | jsr Loadr0AX 53 | / 54 | -------------------------------------------------------------------------------- /64_en/Include/Symbol/CiMac.s: -------------------------------------------------------------------------------- 1 | :DecW m 2 | dec @0 3 | lda @0 4 | cmp #$ff 5 | bne :10 6 | dec @0+1 7 | ::10 8 | / 9 | 10 | :IncW m 11 | inc @0 12 | bne :10 13 | inc @0+1 14 | ::10 15 | / 16 | 17 | ; AddSW 18 | ; Addiert inhalt einer Adresse (Byte) 19 | ; zu einem Wortwert 20 | ; 21 | :AddSW m 22 | lda @0 23 | clc 24 | adc @1 25 | sta @1 26 | lda @1+1 27 | adc #$00 28 | sta @1+1 29 | / 30 | 31 | :SubSW m 32 | lda @1 33 | sec 34 | sbc @0 35 | sta @1 36 | lda @1+1 37 | sbc #$00 38 | sta @1+1 39 | / 40 | :AddvW m 41 | lda #@0 42 | clc 43 | adc @1 44 | sta @1 45 | bcc :10 46 | inc @1+1 47 | ::10 48 | / 49 | :LoadWr0 m 50 | lda #<@0 51 | ldx #>@0 52 | jsr Loadr0AX 53 | / 54 | -------------------------------------------------------------------------------- /64_de/GetDrivers/SaveDriver.s: -------------------------------------------------------------------------------- 1 | :SaveDriver ; Speichert einen Diskdriver 2 | ; Par: r0: Zeiger auf Driver 3 | ; a - DriveType (keine RAM und kein Shadow!) 4 | tay 5 | MoveW r0,DriverAdr 6 | AddVW $d80,r0 7 | MoveW r0,DriverAdr+2 8 | lda HighDrives-1,y 9 | sta DriverVersion 10 | lda LowDrives-1,y 11 | sta DriverVersion+1 12 | LoadW r0,DriverName 13 | jsr DeleteFile 14 | txa 15 | beq :10 16 | cpx #5 17 | beq :10 18 | rts 19 | ::10 LoadB r10L,0 20 | LoadW r9,Header 21 | jmp SaveFile 22 | 23 | :Header 24 | w DriverName 25 | b 3,21 26 | b $03,$18,$00,$bf,$ff,$ff,$ff,$80 27 | b $00,$01,$80,$00,$01,$80,$00,$01 28 | b $80,$00,$03,$80,$3c,$02,$80,$66 29 | b $03,$80,$c3,$01,$80,$c3,$01,$80 30 | b $66,$01,$80,$3c,$c1,$80,$00,$c1 31 | b $80,$00,$01,$80,$00,$01,$80,$18 32 | b $01,$80,$18,$01,$80,$18,$01,$80 33 | b $18,$01,$80,$18,$01,$80,$00,$01 34 | b $ff,$ff,$ff,$09,$00,$06,$bf,$83 35 | b $b1,$b1,$b1 36 | b $80!USR 37 | b DATA 38 | b SEQUENTIAL 39 | :DriverAdr w $9000,$9d80,0 40 | :DriverName 41 | b "Drive 15" 42 | :DriverVersion 43 | b "41",0,0 44 | s 255 45 | 46 | :HighDrives 47 | b "478",0 48 | :LowDrives 49 | b "111",0 50 | -------------------------------------------------------------------------------- /64_en/GetDrivers/SaveDriver.s: -------------------------------------------------------------------------------- 1 | :SaveDriver ; Speichert einen Diskdriver 2 | ; Par: r0: Zeiger auf Driver 3 | ; a - DriveType (keine RAM und kein Shadow!) 4 | tay 5 | MoveW r0,DriverAdr 6 | AddVW $d80,r0 7 | MoveW r0,DriverAdr+2 8 | lda HighDrives-1,y 9 | sta DriverVersion 10 | lda LowDrives-1,y 11 | sta DriverVersion+1 12 | LoadW r0,DriverName 13 | jsr DeleteFile 14 | txa 15 | beq :10 16 | cpx #5 17 | beq :10 18 | rts 19 | ::10 LoadB r10L,0 20 | LoadW r9,Header 21 | jmp SaveFile 22 | 23 | :Header 24 | w DriverName 25 | b 3,21 26 | b $03,$18,$00,$bf,$ff,$ff,$ff,$80 27 | b $00,$01,$80,$00,$01,$80,$00,$01 28 | b $80,$00,$03,$80,$3c,$02,$80,$66 29 | b $03,$80,$c3,$01,$80,$c3,$01,$80 30 | b $66,$01,$80,$3c,$c1,$80,$00,$c1 31 | b $80,$00,$01,$80,$00,$01,$80,$18 32 | b $01,$80,$18,$01,$80,$18,$01,$80 33 | b $18,$01,$80,$18,$01,$80,$00,$01 34 | b $ff,$ff,$ff,$09,$00,$06,$bf,$83 35 | b $b1,$b1,$b1 36 | b $80!USR 37 | b DATA 38 | b SEQUENTIAL 39 | :DriverAdr w $9000,$9d80,0 40 | :DriverName 41 | b "Drive 15" 42 | :DriverVersion 43 | b "41",0,0 44 | s 255 45 | 46 | :HighDrives 47 | b "478",0 48 | :LowDrives 49 | b "111",0 50 | -------------------------------------------------------------------------------- /128_de/GetDrivers/SaveDriver.s: -------------------------------------------------------------------------------- 1 | :SaveDriver ; Speichert einen Diskdriver 2 | ; Par: r0: Zeiger auf Driver 3 | ; a - DriveType (keine RAM und kein Shadow!) 4 | tay 5 | MoveW r0,DriverAdr 6 | AddVW $d80,r0 7 | MoveW r0,DriverAdr+2 8 | lda HighDrives-1,y 9 | sta DriverVersion 10 | lda LowDrives-1,y 11 | sta DriverVersion+1 12 | LoadW r0,DriverName 13 | jsr DeleteFile 14 | txa 15 | beq :10 16 | cpx #5 17 | beq :10 18 | rts 19 | ::10 LoadB r10L,0 20 | LoadW r9,Header 21 | jmp SaveFile 22 | 23 | :Header 24 | w DriverName 25 | b 3,21 26 | b $03,$18,$00,$bf,$ff,$ff,$ff,$80 27 | b $00,$01,$80,$00,$01,$80,$00,$01 28 | b $80,$00,$03,$80,$3c,$02,$80,$66 29 | b $03,$80,$c3,$01,$80,$c3,$01,$80 30 | b $66,$01,$80,$3c,$c1,$80,$00,$c1 31 | b $80,$00,$01,$80,$00,$01,$80,$18 32 | b $01,$80,$18,$01,$80,$18,$01,$80 33 | b $18,$01,$80,$18,$01,$80,$00,$01 34 | b $ff,$ff,$ff,$09,$00,$06,$bf,$83 35 | b $b1,$b1,$b1 36 | b $80!USR 37 | b DATA 38 | b SEQUENTIAL 39 | :DriverAdr w $9000,$9d80,0 40 | :DriverName 41 | b "Drive 15" 42 | :DriverVersion 43 | b "41",0,0 44 | s 255 45 | 46 | :HighDrives 47 | b "478",0 48 | :LowDrives 49 | b "111",0 50 | -------------------------------------------------------------------------------- /128_en/GetDrivers/SaveDriver.s: -------------------------------------------------------------------------------- 1 | :SaveDriver ; Speichert einen Diskdriver 2 | ; Par: r0: Zeiger auf Driver 3 | ; a - DriveType (keine RAM und kein Shadow!) 4 | tay 5 | MoveW r0,DriverAdr 6 | AddVW $d80,r0 7 | MoveW r0,DriverAdr+2 8 | lda HighDrives-1,y 9 | sta DriverVersion 10 | lda LowDrives-1,y 11 | sta DriverVersion+1 12 | LoadW r0,DriverName 13 | jsr DeleteFile 14 | txa 15 | beq :10 16 | cpx #5 17 | beq :10 18 | rts 19 | ::10 LoadB r10L,0 20 | LoadW r9,Header 21 | jmp SaveFile 22 | 23 | :Header 24 | w DriverName 25 | b 3,21 26 | b $03,$18,$00,$bf,$ff,$ff,$ff,$80 27 | b $00,$01,$80,$00,$01,$80,$00,$01 28 | b $80,$00,$03,$80,$3c,$02,$80,$66 29 | b $03,$80,$c3,$01,$80,$c3,$01,$80 30 | b $66,$01,$80,$3c,$c1,$80,$00,$c1 31 | b $80,$00,$01,$80,$00,$01,$80,$18 32 | b $01,$80,$18,$01,$80,$18,$01,$80 33 | b $18,$01,$80,$18,$01,$80,$00,$01 34 | b $ff,$ff,$ff,$09,$00,$06,$bf,$83 35 | b $b1,$b1,$b1 36 | b $80!USR 37 | b DATA 38 | b SEQUENTIAL 39 | :DriverAdr w $9000,$9d80,0 40 | :DriverName 41 | b "Drive 15" 42 | :DriverVersion 43 | b "41",0,0 44 | s 255 45 | 46 | :HighDrives 47 | b "478",0 48 | :LowDrives 49 | b "111",0 50 | -------------------------------------------------------------------------------- /128_de/Main/DeskTop.sub8.s: -------------------------------------------------------------------------------- 1 | n "DeskMod H" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | 13 | jmp _BackUp 14 | ; jmp _SetWindows 15 | 16 | ;:INV_TRACK = 2 17 | 18 | ;CopyDisk 19 | ; Date: 5.9.1990 20 | ; Par: r6 - Zeiger auf den SourceDiskNamen (mu~ nicht unbedingt eingelegt sein) 21 | ; Ret: x - Fehlernummer 22 | ; Des: alles 23 | 24 | :_RTS rts 25 | :_BackUp PushW RecoverVector 26 | jsr ClearMultiFile2 27 | lda #0 28 | sta MyCurRec 29 | LoadW RecoverVector,_RTS 30 | jsr GetAktlWinDisk 31 | LoadW r6,DiskName+2 32 | jsr CopyDisk 33 | PopW RecoverVector 34 | txa 35 | beq :10 36 | cmp #CANCEL_ERR 37 | beq :end 38 | jmp FehlerAusgabe 39 | ::10 ldx #3 40 | ::loop2 stx a7L 41 | jsr GetWinDisk 42 | ldy #2 43 | ::loop lda DestinationName-2,y 44 | ; cmp #$a0 45 | beq :20 46 | cmp (r0),y 47 | bne :nicht 48 | iny 49 | bne :loop 50 | ::20 lda (r0),y 51 | cmp #PLAINTEXT 52 | beq :doch 53 | cmp #"/"+$80 54 | beq :doch 55 | ::nicht ldx a7L 56 | dex 57 | bpl :loop2 58 | ::end jmp RedrawAll 59 | ::doch ldx a7L 60 | lda #0 61 | sta windowsOpen,x 62 | beq :nicht 63 | 64 | t "DiskCopy" ; mu~ letzte Zeile sein 65 | -------------------------------------------------------------------------------- /128_en/Main/DeskTop.sub8.s: -------------------------------------------------------------------------------- 1 | n "DeskMod H" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | 13 | jmp _BackUp 14 | ; jmp _SetWindows 15 | 16 | ;:INV_TRACK = 2 17 | 18 | ;CopyDisk 19 | ; Date: 5.9.1990 20 | ; Par: r6 - Zeiger auf den SourceDiskNamen (mu~ nicht unbedingt eingelegt sein) 21 | ; Ret: x - Fehlernummer 22 | ; Des: alles 23 | 24 | :_RTS rts 25 | :_BackUp PushW RecoverVector 26 | jsr ClearMultiFile2 27 | lda #0 28 | sta MyCurRec 29 | LoadW RecoverVector,_RTS 30 | jsr GetAktlWinDisk 31 | LoadW r6,DiskName+2 32 | jsr CopyDisk 33 | PopW RecoverVector 34 | txa 35 | beq :10 36 | cmp #CANCEL_ERR 37 | beq :end 38 | jmp FehlerAusgabe 39 | ::10 ldx #3 40 | ::loop2 stx a7L 41 | jsr GetWinDisk 42 | ldy #2 43 | ::loop lda DestinationName-2,y 44 | ; cmp #$a0 45 | beq :20 46 | cmp (r0),y 47 | bne :nicht 48 | iny 49 | bne :loop 50 | ::20 lda (r0),y 51 | cmp #PLAINTEXT 52 | beq :doch 53 | cmp #"/"+$80 54 | beq :doch 55 | ::nicht ldx a7L 56 | dex 57 | bpl :loop2 58 | ::end jmp RedrawAll 59 | ::doch ldx a7L 60 | lda #0 61 | sta windowsOpen,x 62 | beq :nicht 63 | 64 | t "DiskCopy" ; mu~ letzte Zeile sein 65 | -------------------------------------------------------------------------------- /64_de/Main/DeskTop.sub8.s: -------------------------------------------------------------------------------- 1 | n "DeskMod H" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | 13 | jmp _BackUp 14 | ; jmp _SetWindows 15 | 16 | ;:INV_TRACK = 2 17 | 18 | ;CopyDisk 19 | ; Date: 5.9.1990 20 | ; Par: r6 - Zeiger auf den SourceDiskNamen (mu~ nicht unbedingt eingelegt sein) 21 | ; Ret: x - Fehlernummer 22 | ; Des: alles 23 | 24 | :_RTS rts 25 | :_BackUp PushW RecoverVector 26 | jsr ClearMultiFile2 27 | lda #0 28 | sta MyCurRec 29 | LoadW RecoverVector,_RTS 30 | jsr GetAktlWinDisk 31 | LoadW r6,DiskName+2 32 | jsr CopyDisk 33 | PopW RecoverVector 34 | txa 35 | beq :10 36 | cmp #CANCEL_ERR 37 | beq :end 38 | jmp FehlerAusgabe 39 | ::10 ldx #3 40 | ::loop2 stx a7L 41 | jsr GetWinDisk 42 | ldy #2 43 | ::loop lda DestinationName-2,y 44 | ; cmp #$a0 45 | beq :20 46 | cmp (r0),y 47 | bne :nicht 48 | iny 49 | bne :loop 50 | ::20 lda (r0),y 51 | cmp #PLAINTEXT 52 | beq :doch 53 | cmp #"/"+$80 54 | beq :doch 55 | ::nicht ldx a7L 56 | dex 57 | bpl :loop2 58 | ::end jmp RedrawAll 59 | ::doch ldx a7L 60 | lda #0 61 | sta windowsOpen,x 62 | beq :nicht 63 | 64 | t "DiskCopy" ; mu~ letzte Zeile sein 65 | -------------------------------------------------------------------------------- /64_en/Main/DeskTop.sub8.s: -------------------------------------------------------------------------------- 1 | n "DeskMod H" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | 13 | jmp _BackUp 14 | ; jmp _SetWindows 15 | 16 | ;:INV_TRACK = 2 17 | 18 | ;CopyDisk 19 | ; Date: 5.9.1990 20 | ; Par: r6 - Zeiger auf den SourceDiskNamen (mu~ nicht unbedingt eingelegt sein) 21 | ; Ret: x - Fehlernummer 22 | ; Des: alles 23 | 24 | :_RTS rts 25 | :_BackUp PushW RecoverVector 26 | jsr ClearMultiFile2 27 | lda #0 28 | sta MyCurRec 29 | LoadW RecoverVector,_RTS 30 | jsr GetAktlWinDisk 31 | LoadW r6,DiskName+2 32 | jsr CopyDisk 33 | PopW RecoverVector 34 | txa 35 | beq :10 36 | cmp #CANCEL_ERR 37 | beq :end 38 | jmp FehlerAusgabe 39 | ::10 ldx #3 40 | ::loop2 stx a7L 41 | jsr GetWinDisk 42 | ldy #2 43 | ::loop lda DestinationName-2,y 44 | ; cmp #$a0 45 | beq :20 46 | cmp (r0),y 47 | bne :nicht 48 | iny 49 | bne :loop 50 | ::20 lda (r0),y 51 | cmp #PLAINTEXT 52 | beq :doch 53 | cmp #"/"+$80 54 | beq :doch 55 | ::nicht ldx a7L 56 | dex 57 | bpl :loop2 58 | ::end jmp RedrawAll 59 | ::doch ldx a7L 60 | lda #0 61 | sta windowsOpen,x 62 | beq :nicht 63 | 64 | t "DiskCopy" ; mu~ letzte Zeile sein 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TopDesk for C64/C128 GEOS 2 | 3 | TopDesk is a file manager for the GEOS64 and GEOS128 (for the Commodore 64 and 128 computers). It shipped as the default file manager for GEOS 2.5, and can be used to replace the "deskTop" file manager on GEOS 2.0. 4 | 5 | The [disks with the original source](https://www.pagetable.com/?p=1339) in GeoWrite format were copied into plaintext. Inline graphics were converted into byte arrays. 6 | 7 | As is, the source does not currently build on modern systems, but it can be used as a basis for future development. 8 | 9 | ## Version 10 | 11 | This is TopDesk version 1.3. 12 | 13 | ## Variants 14 | 15 | There are four variants in their respective subdirectories: 16 | 17 | | Directory | Target System | Language | 18 | |-----------|---------------|----------| 19 | | 64_en | GEOS 64 | English | 20 | | 64_de | GEOS 64 | German | 21 | | 128_en | GEOS 128 | English | 22 | | 128_de | GEOS 128 | German | 23 | 24 | ## Authors 25 | 26 | TopDesk was written by Walter Knupe, H.J. Ciprina, Volker Goehrke. (C) 1991 by GEOS-USER-CLUB, GbR 27 | 28 | The source was recovered by Falk Rehwagen, and converted my Michael Steil . 29 | 30 | Thanks to Jürgen Heinisch, the estate administrator of the Geos User Club (the former copyright holder of TopDesk V1), for releasing the original TopDesk sources for publication. -------------------------------------------------------------------------------- /64_de/WinInclude/SpeedFrame.s: -------------------------------------------------------------------------------- 1 | :Schrw = 15 2 | 3 | ;SpeedFrame 4 | ;Par: r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - x-links 7 | ; r4 - x-rechts 8 | ; r10L - Ziely-oben (r5L) 9 | ; r10H - Ziely-unten (r5H) 10 | ; r11 - Zielx-links (r6) 11 | ; r12 - Zielx-rechts (r7) 12 | ;Des: r0 bis r13 13 | :SpeedFrame 14 | 15 | ; **** Verschiebung von r5-r7 nach r10-r12 16 | ldx #5 17 | ::e10 lda r5L,x 18 | sta r10L,x 19 | dex 20 | bpl :e10 21 | ; **** 22 | ldx #r13 23 | ldy #1 24 | ::10 lda r10L,y 25 | sec 26 | sbc r2L,y 27 | sta $00,x 28 | lda #0 29 | sbc #0 30 | sta $01,x 31 | ldx #r10 32 | dey 33 | bpl :10 34 | ldy #2 35 | ::20 lda r11L,y 36 | sec 37 | sbc r3L,y 38 | sta r11L,y 39 | lda r11H,y 40 | sbc r3H,y 41 | sta r11H,y 42 | dey 43 | dey 44 | bpl :20 45 | LoadB r0L,Schrw 46 | LoadB r0H,0 47 | 48 | ldx #r10 49 | ldy #r0 50 | ::30 jsr DSdiv 51 | inx 52 | inx 53 | cpx #r14 54 | bcc :30 55 | MoveB r13L,r10H 56 | ldx #0 57 | ::40 lda r2,x 58 | pha 59 | inx 60 | cpx #6 61 | bcc :40 62 | jsr :60 63 | ldx #5 64 | ::50 pla 65 | sta r2,x 66 | dex 67 | bpl :50 68 | ::60 LoadB r8L,Schrw 69 | 70 | ::100 jsr InvFrame 71 | ldy #1 72 | ::110 lda r2L,y 73 | clc 74 | adc r10L,y 75 | sta r2L,y 76 | dey 77 | bpl :110 78 | ldy #2 79 | ::120 lda r3L,y 80 | clc 81 | adc r11L,y 82 | sta r3L,y 83 | lda r3H,y 84 | adc r11H,y 85 | sta r3H,y 86 | dey 87 | dey 88 | bpl :120 89 | dec r8L 90 | bne :100 91 | rts 92 | -------------------------------------------------------------------------------- /64_en/WinInclude/SpeedFrame.s: -------------------------------------------------------------------------------- 1 | :Schrw = 15 2 | 3 | ;SpeedFrame 4 | ;Par: r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - x-links 7 | ; r4 - x-rechts 8 | ; r10L - Ziely-oben (r5L) 9 | ; r10H - Ziely-unten (r5H) 10 | ; r11 - Zielx-links (r6) 11 | ; r12 - Zielx-rechts (r7) 12 | ;Des: r0 bis r13 13 | :SpeedFrame 14 | 15 | ; **** Verschiebung von r5-r7 nach r10-r12 16 | ldx #5 17 | ::e10 lda r5L,x 18 | sta r10L,x 19 | dex 20 | bpl :e10 21 | ; **** 22 | ldx #r13 23 | ldy #1 24 | ::10 lda r10L,y 25 | sec 26 | sbc r2L,y 27 | sta $00,x 28 | lda #0 29 | sbc #0 30 | sta $01,x 31 | ldx #r10 32 | dey 33 | bpl :10 34 | ldy #2 35 | ::20 lda r11L,y 36 | sec 37 | sbc r3L,y 38 | sta r11L,y 39 | lda r11H,y 40 | sbc r3H,y 41 | sta r11H,y 42 | dey 43 | dey 44 | bpl :20 45 | LoadB r0L,Schrw 46 | LoadB r0H,0 47 | 48 | ldx #r10 49 | ldy #r0 50 | ::30 jsr DSdiv 51 | inx 52 | inx 53 | cpx #r14 54 | bcc :30 55 | MoveB r13L,r10H 56 | ldx #0 57 | ::40 lda r2,x 58 | pha 59 | inx 60 | cpx #6 61 | bcc :40 62 | jsr :60 63 | ldx #5 64 | ::50 pla 65 | sta r2,x 66 | dex 67 | bpl :50 68 | ::60 LoadB r8L,Schrw 69 | 70 | ::100 jsr InvFrame 71 | ldy #1 72 | ::110 lda r2L,y 73 | clc 74 | adc r10L,y 75 | sta r2L,y 76 | dey 77 | bpl :110 78 | ldy #2 79 | ::120 lda r3L,y 80 | clc 81 | adc r11L,y 82 | sta r3L,y 83 | lda r3H,y 84 | adc r11H,y 85 | sta r3H,y 86 | dey 87 | dey 88 | bpl :120 89 | dec r8L 90 | bne :100 91 | rts 92 | -------------------------------------------------------------------------------- /128_de/WinInclude/SpeedFrame.s: -------------------------------------------------------------------------------- 1 | :Schrw = 15 2 | 3 | ;SpeedFrame 4 | ;Par: r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - x-links 7 | ; r4 - x-rechts 8 | ; r10L - Ziely-oben (r5L) 9 | ; r10H - Ziely-unten (r5H) 10 | ; r11 - Zielx-links (r6) 11 | ; r12 - Zielx-rechts (r7) 12 | ;Des: r0 bis r13 13 | :SpeedFrame 14 | lda graphMode 15 | bpl :z40 16 | rts 17 | ::z40 18 | ; **** Verschiebung von r5-r7 nach r10-r12 19 | ldx #5 20 | ::e10 lda r5L,x 21 | sta r10L,x 22 | dex 23 | bpl :e10 24 | ; **** 25 | ldx #r13 26 | ldy #1 27 | ::10 lda r10L,y 28 | sec 29 | sbc r2L,y 30 | sta $00,x 31 | lda #0 32 | sbc #0 33 | sta $01,x 34 | ldx #r10 35 | dey 36 | bpl :10 37 | ldy #2 38 | ::20 lda r11L,y 39 | sec 40 | sbc r3L,y 41 | sta r11L,y 42 | lda r11H,y 43 | sbc r3H,y 44 | sta r11H,y 45 | dey 46 | dey 47 | bpl :20 48 | LoadB r0L,Schrw 49 | LoadB r0H,0 50 | 51 | ldx #r10 52 | ldy #r0 53 | ::30 jsr DSdiv 54 | inx 55 | inx 56 | cpx #r14 57 | bcc :30 58 | MoveB r13L,r10H 59 | ldx #0 60 | ::40 lda r2,x 61 | pha 62 | inx 63 | cpx #6 64 | bcc :40 65 | jsr :60 66 | ldx #5 67 | ::50 pla 68 | sta r2,x 69 | dex 70 | bpl :50 71 | ::60 LoadB r8L,Schrw 72 | 73 | ::100 jsr InvFrame 74 | ldy #1 75 | ::110 lda r2L,y 76 | clc 77 | adc r10L,y 78 | sta r2L,y 79 | dey 80 | bpl :110 81 | ldy #2 82 | ::120 lda r3L,y 83 | clc 84 | adc r11L,y 85 | sta r3L,y 86 | lda r3H,y 87 | adc r11H,y 88 | sta r3H,y 89 | dey 90 | dey 91 | bpl :120 92 | dec r8L 93 | bne :100 94 | rts 95 | 96 | -------------------------------------------------------------------------------- /128_en/WinInclude/SpeedFrame.s: -------------------------------------------------------------------------------- 1 | :Schrw = 15 2 | 3 | ;SpeedFrame 4 | ;Par: r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - x-links 7 | ; r4 - x-rechts 8 | ; r10L - Ziely-oben (r5L) 9 | ; r10H - Ziely-unten (r5H) 10 | ; r11 - Zielx-links (r6) 11 | ; r12 - Zielx-rechts (r7) 12 | ;Des: r0 bis r13 13 | :SpeedFrame 14 | lda graphMode 15 | bpl :z40 16 | rts 17 | ::z40 18 | ; **** Verschiebung von r5-r7 nach r10-r12 19 | ldx #5 20 | ::e10 lda r5L,x 21 | sta r10L,x 22 | dex 23 | bpl :e10 24 | ; **** 25 | ldx #r13 26 | ldy #1 27 | ::10 lda r10L,y 28 | sec 29 | sbc r2L,y 30 | sta $00,x 31 | lda #0 32 | sbc #0 33 | sta $01,x 34 | ldx #r10 35 | dey 36 | bpl :10 37 | ldy #2 38 | ::20 lda r11L,y 39 | sec 40 | sbc r3L,y 41 | sta r11L,y 42 | lda r11H,y 43 | sbc r3H,y 44 | sta r11H,y 45 | dey 46 | dey 47 | bpl :20 48 | LoadB r0L,Schrw 49 | LoadB r0H,0 50 | 51 | ldx #r10 52 | ldy #r0 53 | ::30 jsr DSdiv 54 | inx 55 | inx 56 | cpx #r14 57 | bcc :30 58 | MoveB r13L,r10H 59 | ldx #0 60 | ::40 lda r2,x 61 | pha 62 | inx 63 | cpx #6 64 | bcc :40 65 | jsr :60 66 | ldx #5 67 | ::50 pla 68 | sta r2,x 69 | dex 70 | bpl :50 71 | ::60 LoadB r8L,Schrw 72 | 73 | ::100 jsr InvFrame 74 | ldy #1 75 | ::110 lda r2L,y 76 | clc 77 | adc r10L,y 78 | sta r2L,y 79 | dey 80 | bpl :110 81 | ldy #2 82 | ::120 lda r3L,y 83 | clc 84 | adc r11L,y 85 | sta r3L,y 86 | lda r3H,y 87 | adc r11H,y 88 | sta r3H,y 89 | dey 90 | dey 91 | bpl :120 92 | dec r8L 93 | bne :100 94 | rts 95 | 96 | -------------------------------------------------------------------------------- /128_de/Protect/SetProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | endif 8 | n "SetProt.mod" 9 | o $0300 10 | :Start jmp SetCopyProtection 11 | :Track b 2 12 | :Sektor b 0 13 | :TrackArea b 3 14 | :DataSignRW b OldDataSign,NewDataSign 15 | :Job b 0 16 | 17 | :LedOn lda $1c00 18 | ora #%0000 1000 19 | sta $1c00 20 | rts 21 | :LedOff lda $1c00 22 | and #%1111 0111 23 | sta $1c00 24 | rts 25 | :SetCopyProtection 26 | ::nextblock jsr LedOn 27 | MoveB DataSignRW,$47 28 | LoadB Job,$80 29 | jsr ReadWriteBlocks 30 | cmp #2 31 | bcs :joberr 32 | MoveB DataSignRW+1,$47 33 | LoadB Job,$90 34 | jsr ReadWriteBlocks 35 | cmp #2 36 | bcs :joberr 37 | jsr LedOff 38 | inc Sektor 39 | lda Sektor 40 | cmp #8 41 | bcc :nextblock 42 | LoadB Sektor,0 43 | inc Track 44 | lda Track 45 | cmp $fed7,y 46 | bcc :testend 47 | dey 48 | sty TrackArea 49 | ::testend cmp #EndTrack 50 | bcc :nextblock 51 | ::end LoadB $47,OldDataSign 52 | rts 53 | ::joberr pha 54 | jsr :end 55 | pla 56 | inx 57 | jmp $e60a 58 | 59 | :ReadWriteBlocks ldx #0 60 | ::readnext jsr :setjob 61 | bcs :next 62 | lda $01,x 63 | cmp #2 64 | bcs :err 65 | ::next inx 66 | cpx #3 67 | bcc :readnext 68 | lda #1 69 | ::err rts 70 | ::setjob txa 71 | asl 72 | tay 73 | asl 74 | asl 75 | clc 76 | adc Sektor 77 | sta $09,y 78 | pha 79 | lda Track 80 | sta $08,y 81 | pla 82 | ldy TrackArea 83 | cmp $fed1,y 84 | bcs :end 85 | lda Job 86 | sta $01,x 87 | ::waitjob lda $01,x 88 | bmi :waitjob 89 | clc 90 | ::end rts 91 | .CopyProtectionEnd 92 | -------------------------------------------------------------------------------- /128_en/Protect/SetProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | endif 8 | n "SetProt.mod" 9 | o $0300 10 | :Start jmp SetCopyProtection 11 | :Track b 2 12 | :Sektor b 0 13 | :TrackArea b 3 14 | :DataSignRW b OldDataSign,NewDataSign 15 | :Job b 0 16 | 17 | :LedOn lda $1c00 18 | ora #%0000 1000 19 | sta $1c00 20 | rts 21 | :LedOff lda $1c00 22 | and #%1111 0111 23 | sta $1c00 24 | rts 25 | :SetCopyProtection 26 | ::nextblock jsr LedOn 27 | MoveB DataSignRW,$47 28 | LoadB Job,$80 29 | jsr ReadWriteBlocks 30 | cmp #2 31 | bcs :joberr 32 | MoveB DataSignRW+1,$47 33 | LoadB Job,$90 34 | jsr ReadWriteBlocks 35 | cmp #2 36 | bcs :joberr 37 | jsr LedOff 38 | inc Sektor 39 | lda Sektor 40 | cmp #8 41 | bcc :nextblock 42 | LoadB Sektor,0 43 | inc Track 44 | lda Track 45 | cmp $fed7,y 46 | bcc :testend 47 | dey 48 | sty TrackArea 49 | ::testend cmp #EndTrack 50 | bcc :nextblock 51 | ::end LoadB $47,OldDataSign 52 | rts 53 | ::joberr pha 54 | jsr :end 55 | pla 56 | inx 57 | jmp $e60a 58 | 59 | :ReadWriteBlocks ldx #0 60 | ::readnext jsr :setjob 61 | bcs :next 62 | lda $01,x 63 | cmp #2 64 | bcs :err 65 | ::next inx 66 | cpx #3 67 | bcc :readnext 68 | lda #1 69 | ::err rts 70 | ::setjob txa 71 | asl 72 | tay 73 | asl 74 | asl 75 | clc 76 | adc Sektor 77 | sta $09,y 78 | pha 79 | lda Track 80 | sta $08,y 81 | pla 82 | ldy TrackArea 83 | cmp $fed1,y 84 | bcs :end 85 | lda Job 86 | sta $01,x 87 | ::waitjob lda $01,x 88 | bmi :waitjob 89 | clc 90 | ::end rts 91 | .CopyProtectionEnd 92 | -------------------------------------------------------------------------------- /64_de/Protect/SetProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | endif 8 | n "SetProt.mod" 9 | o $0300 10 | :Start jmp SetCopyProtection 11 | :Track b 2 12 | :Sektor b 0 13 | :TrackArea b 3 14 | :DataSignRW b OldDataSign,NewDataSign 15 | :Job b 0 16 | 17 | :LedOn lda $1c00 18 | ora #%0000 1000 19 | sta $1c00 20 | rts 21 | :LedOff lda $1c00 22 | and #%1111 0111 23 | sta $1c00 24 | rts 25 | :SetCopyProtection 26 | ::nextblock jsr LedOn 27 | MoveB DataSignRW,$47 28 | LoadB Job,$80 29 | jsr ReadWriteBlocks 30 | cmp #2 31 | bcs :joberr 32 | MoveB DataSignRW+1,$47 33 | LoadB Job,$90 34 | jsr ReadWriteBlocks 35 | cmp #2 36 | bcs :joberr 37 | jsr LedOff 38 | inc Sektor 39 | lda Sektor 40 | cmp #8 41 | bcc :nextblock 42 | LoadB Sektor,0 43 | inc Track 44 | lda Track 45 | cmp $fed7,y 46 | bcc :testend 47 | dey 48 | sty TrackArea 49 | ::testend cmp #EndTrack 50 | bcc :nextblock 51 | ::end LoadB $47,OldDataSign 52 | rts 53 | ::joberr pha 54 | jsr :end 55 | pla 56 | inx 57 | jmp $e60a 58 | 59 | :ReadWriteBlocks ldx #0 60 | ::readnext jsr :setjob 61 | bcs :next 62 | lda $01,x 63 | cmp #2 64 | bcs :err 65 | ::next inx 66 | cpx #3 67 | bcc :readnext 68 | lda #1 69 | ::err rts 70 | ::setjob txa 71 | asl 72 | tay 73 | asl 74 | asl 75 | clc 76 | adc Sektor 77 | sta $09,y 78 | pha 79 | lda Track 80 | sta $08,y 81 | pla 82 | ldy TrackArea 83 | cmp $fed1,y 84 | bcs :end 85 | lda Job 86 | sta $01,x 87 | ::waitjob lda $01,x 88 | bmi :waitjob 89 | clc 90 | ::end rts 91 | .CopyProtectionEnd 92 | -------------------------------------------------------------------------------- /64_en/Protect/SetProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | endif 8 | n "SetProt.mod" 9 | o $0300 10 | :Start jmp SetCopyProtection 11 | :Track b 2 12 | :Sektor b 0 13 | :TrackArea b 3 14 | :DataSignRW b OldDataSign,NewDataSign 15 | :Job b 0 16 | 17 | :LedOn lda $1c00 18 | ora #%0000 1000 19 | sta $1c00 20 | rts 21 | :LedOff lda $1c00 22 | and #%1111 0111 23 | sta $1c00 24 | rts 25 | :SetCopyProtection 26 | ::nextblock jsr LedOn 27 | MoveB DataSignRW,$47 28 | LoadB Job,$80 29 | jsr ReadWriteBlocks 30 | cmp #2 31 | bcs :joberr 32 | MoveB DataSignRW+1,$47 33 | LoadB Job,$90 34 | jsr ReadWriteBlocks 35 | cmp #2 36 | bcs :joberr 37 | jsr LedOff 38 | inc Sektor 39 | lda Sektor 40 | cmp #8 41 | bcc :nextblock 42 | LoadB Sektor,0 43 | inc Track 44 | lda Track 45 | cmp $fed7,y 46 | bcc :testend 47 | dey 48 | sty TrackArea 49 | ::testend cmp #EndTrack 50 | bcc :nextblock 51 | ::end LoadB $47,OldDataSign 52 | rts 53 | ::joberr pha 54 | jsr :end 55 | pla 56 | inx 57 | jmp $e60a 58 | 59 | :ReadWriteBlocks ldx #0 60 | ::readnext jsr :setjob 61 | bcs :next 62 | lda $01,x 63 | cmp #2 64 | bcs :err 65 | ::next inx 66 | cpx #3 67 | bcc :readnext 68 | lda #1 69 | ::err rts 70 | ::setjob txa 71 | asl 72 | tay 73 | asl 74 | asl 75 | clc 76 | adc Sektor 77 | sta $09,y 78 | pha 79 | lda Track 80 | sta $08,y 81 | pla 82 | ldy TrackArea 83 | cmp $fed1,y 84 | bcs :end 85 | lda Job 86 | sta $01,x 87 | ::waitjob lda $01,x 88 | bmi :waitjob 89 | clc 90 | ::end rts 91 | .CopyProtectionEnd 92 | -------------------------------------------------------------------------------- /64_de/DeskInclude/SizeRectangle.s: -------------------------------------------------------------------------------- 1 | ;SizeRectangle (mod. 24.07.1990) (mod. 24.4.91) 2 | ;Par: r0 - Zahl, die der Maximalgr|~e entspricht 3 | ; r1 - Darzustellende Zahl 4 | ; r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - linke x-Koordinate 7 | ; r4 - rechte x-Koordinate 8 | ;Des: r0,r1,r5-r9,r11 9 | :SizeRectangle 10 | lda #1 11 | jsr SetPattern 12 | ldy #5 13 | ::loop lda r2L,y 14 | pha 15 | dey 16 | bpl :loop 17 | jsr NewRectangle 18 | ldy #0 19 | ::loop2 pla 20 | sta r2L,y 21 | iny 22 | cpy #6 23 | bne :loop2 24 | ; lda #$ff 25 | ; jsr FrameRectangle 26 | lda #0 27 | ldy #5 28 | ::10 sta r5L,y 29 | dey 30 | bpl :10 31 | lda r2H 32 | sec 33 | sbc r2L ; H|he ermitteln 34 | sbc #2 ; -2 35 | sta r5L ; ->r5L 36 | ldx #r0L 37 | ldy #r5L 38 | jsr NewDdiv ; Max / H|he 39 | ldy #$ff 40 | ::20 iny 41 | CmpW r6,r1 42 | bge :40 43 | AddW r0,r6 44 | AddW r8,r7 45 | CmpW r7,r5 46 | blt :20 47 | SubW r5,r7 48 | inc r6L 49 | bne :20 50 | inc r6H 51 | bne :20 52 | ::40 tya 53 | beq :30 54 | iny 55 | ::30 sty r9L 56 | ; lda r2H 57 | ; sec 58 | ; sbc r9L 59 | ; sta r2L 60 | ; lda #1 61 | lda r2H 62 | sec 63 | sbc r2L 64 | sec 65 | sbc r9L 66 | clc 67 | adc r2L 68 | sta r2H 69 | inc r2L 70 | IncW r3 71 | DecW r4 72 | lda #0 73 | jsr SetPattern 74 | jmp NewRectangle 75 | 76 | ;NewDdiv 77 | ; behebt den Fehler von Ddiv und kann auch kleine bzw. 0 78 | ; durch gr|~ere Werte dividieren. 79 | ; Par & Ret: s. Ddiv 80 | :NewDdiv 81 | lda $01,x 82 | cmp $01,y 83 | bne :10 84 | lda $00,x 85 | cmp $00,y 86 | ::10 bcc :20 87 | jmp Ddiv 88 | ::20 lda $00,x 89 | sta r8L 90 | lda $01,x 91 | sta r8H 92 | lda #0 93 | sta $00,x 94 | sta $01,x 95 | rts 96 | -------------------------------------------------------------------------------- /64_en/DeskInclude/SizeRectangle.s: -------------------------------------------------------------------------------- 1 | ;SizeRectangle (mod. 24.07.1990) (mod. 24.4.91) 2 | ;Par: r0 - Zahl, die der Maximalgr|~e entspricht 3 | ; r1 - Darzustellende Zahl 4 | ; r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - linke x-Koordinate 7 | ; r4 - rechte x-Koordinate 8 | ;Des: r0,r1,r5-r9,r11 9 | :SizeRectangle 10 | lda #1 11 | jsr SetPattern 12 | ldy #5 13 | ::loop lda r2L,y 14 | pha 15 | dey 16 | bpl :loop 17 | jsr NewRectangle 18 | ldy #0 19 | ::loop2 pla 20 | sta r2L,y 21 | iny 22 | cpy #6 23 | bne :loop2 24 | ; lda #$ff 25 | ; jsr FrameRectangle 26 | lda #0 27 | ldy #5 28 | ::10 sta r5L,y 29 | dey 30 | bpl :10 31 | lda r2H 32 | sec 33 | sbc r2L ; H|he ermitteln 34 | sbc #2 ; -2 35 | sta r5L ; ->r5L 36 | ldx #r0L 37 | ldy #r5L 38 | jsr NewDdiv ; Max / H|he 39 | ldy #$ff 40 | ::20 iny 41 | CmpW r6,r1 42 | bge :40 43 | AddW r0,r6 44 | AddW r8,r7 45 | CmpW r7,r5 46 | blt :20 47 | SubW r5,r7 48 | inc r6L 49 | bne :20 50 | inc r6H 51 | bne :20 52 | ::40 tya 53 | beq :30 54 | iny 55 | ::30 sty r9L 56 | ; lda r2H 57 | ; sec 58 | ; sbc r9L 59 | ; sta r2L 60 | ; lda #1 61 | lda r2H 62 | sec 63 | sbc r2L 64 | sec 65 | sbc r9L 66 | clc 67 | adc r2L 68 | sta r2H 69 | inc r2L 70 | IncW r3 71 | DecW r4 72 | lda #0 73 | jsr SetPattern 74 | jmp NewRectangle 75 | 76 | ;NewDdiv 77 | ; behebt den Fehler von Ddiv und kann auch kleine bzw. 0 78 | ; durch gr|~ere Werte dividieren. 79 | ; Par & Ret: s. Ddiv 80 | :NewDdiv 81 | lda $01,x 82 | cmp $01,y 83 | bne :10 84 | lda $00,x 85 | cmp $00,y 86 | ::10 bcc :20 87 | jmp Ddiv 88 | ::20 lda $00,x 89 | sta r8L 90 | lda $01,x 91 | sta r8H 92 | lda #0 93 | sta $00,x 94 | sta $01,x 95 | rts 96 | -------------------------------------------------------------------------------- /128_de/DeskInclude/SizeRectangle.s: -------------------------------------------------------------------------------- 1 | ;SizeRectangle (mod. 24.07.1990) (mod. 24.4.91) 2 | ;Par: r0 - Zahl, die der Maximalgr|~e entspricht 3 | ; r1 - Darzustellende Zahl 4 | ; r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - linke x-Koordinate 7 | ; r4 - rechte x-Koordinate 8 | ;Des: r0,r1,r5-r9,r11 9 | :SizeRectangle 10 | lda #1 11 | jsr SetPattern 12 | ldy #5 13 | ::loop lda r2L,y 14 | pha 15 | dey 16 | bpl :loop 17 | jsr NewRectangle 18 | ldy #0 19 | ::loop2 pla 20 | sta r2L,y 21 | iny 22 | cpy #6 23 | bne :loop2 24 | ; lda #$ff 25 | ; jsr FrameRectangle 26 | lda #0 27 | ldy #5 28 | ::10 sta r5L,y 29 | dey 30 | bpl :10 31 | lda r2H 32 | sec 33 | sbc r2L ; H|he ermitteln 34 | sbc #2 ; -2 35 | sta r5L ; ->r5L 36 | ldx #r0L 37 | ldy #r5L 38 | jsr NewDdiv ; Max / H|he 39 | ldy #$ff 40 | ::20 iny 41 | CmpW r6,r1 42 | bge :40 43 | AddW r0,r6 44 | AddW r8,r7 45 | CmpW r7,r5 46 | blt :20 47 | SubW r5,r7 48 | inc r6L 49 | bne :20 50 | inc r6H 51 | bne :20 52 | ::40 tya 53 | beq :30 54 | iny 55 | ::30 sty r9L 56 | ; lda r2H 57 | ; sec 58 | ; sbc r9L 59 | ; sta r2L 60 | ; lda #1 61 | lda r2H 62 | sec 63 | sbc r2L 64 | sec 65 | sbc r9L 66 | clc 67 | adc r2L 68 | sta r2H 69 | inc r2L 70 | IncW r3 71 | DecW r4 72 | lda #0 73 | jsr SetPattern 74 | jmp NewRectangle 75 | 76 | ;NewDdiv 77 | ; behebt den Fehler von Ddiv und kann auch kleine bzw. 0 78 | ; durch gr|~ere Werte dividieren. 79 | ; Par & Ret: s. Ddiv 80 | :NewDdiv 81 | lda $01,x 82 | cmp $01,y 83 | bne :10 84 | lda $00,x 85 | cmp $00,y 86 | ::10 bcc :20 87 | jmp Ddiv 88 | ::20 lda $00,x 89 | sta r8L 90 | lda $01,x 91 | sta r8H 92 | lda #0 93 | sta $00,x 94 | sta $01,x 95 | rts 96 | -------------------------------------------------------------------------------- /128_en/DeskInclude/SizeRectangle.s: -------------------------------------------------------------------------------- 1 | ;SizeRectangle (mod. 24.07.1990) (mod. 24.4.91) 2 | ;Par: r0 - Zahl, die der Maximalgr|~e entspricht 3 | ; r1 - Darzustellende Zahl 4 | ; r2L - y-oben 5 | ; r2H - y-unten 6 | ; r3 - linke x-Koordinate 7 | ; r4 - rechte x-Koordinate 8 | ;Des: r0,r1,r5-r9,r11 9 | :SizeRectangle 10 | lda #1 11 | jsr SetPattern 12 | ldy #5 13 | ::loop lda r2L,y 14 | pha 15 | dey 16 | bpl :loop 17 | jsr NewRectangle 18 | ldy #0 19 | ::loop2 pla 20 | sta r2L,y 21 | iny 22 | cpy #6 23 | bne :loop2 24 | ; lda #$ff 25 | ; jsr FrameRectangle 26 | lda #0 27 | ldy #5 28 | ::10 sta r5L,y 29 | dey 30 | bpl :10 31 | lda r2H 32 | sec 33 | sbc r2L ; H|he ermitteln 34 | sbc #2 ; -2 35 | sta r5L ; ->r5L 36 | ldx #r0L 37 | ldy #r5L 38 | jsr NewDdiv ; Max / H|he 39 | ldy #$ff 40 | ::20 iny 41 | CmpW r6,r1 42 | bge :40 43 | AddW r0,r6 44 | AddW r8,r7 45 | CmpW r7,r5 46 | blt :20 47 | SubW r5,r7 48 | inc r6L 49 | bne :20 50 | inc r6H 51 | bne :20 52 | ::40 tya 53 | beq :30 54 | iny 55 | ::30 sty r9L 56 | ; lda r2H 57 | ; sec 58 | ; sbc r9L 59 | ; sta r2L 60 | ; lda #1 61 | lda r2H 62 | sec 63 | sbc r2L 64 | sec 65 | sbc r9L 66 | clc 67 | adc r2L 68 | sta r2H 69 | inc r2L 70 | IncW r3 71 | DecW r4 72 | lda #0 73 | jsr SetPattern 74 | jmp NewRectangle 75 | 76 | ;NewDdiv 77 | ; behebt den Fehler von Ddiv und kann auch kleine bzw. 0 78 | ; durch gr|~ere Werte dividieren. 79 | ; Par & Ret: s. Ddiv 80 | :NewDdiv 81 | lda $01,x 82 | cmp $01,y 83 | bne :10 84 | lda $00,x 85 | cmp $00,y 86 | ::10 bcc :20 87 | jmp Ddiv 88 | ::20 lda $00,x 89 | sta r8L 90 | lda $01,x 91 | sta r8H 92 | lda #0 93 | sta $00,x 94 | sta $01,x 95 | rts 96 | -------------------------------------------------------------------------------- /128_de/Protect/Sources/RemProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :DeProtectDisk jsr PurgeTurbo 18 | jsr InitForIO 19 | lda #$01 ;Open 20 | ldx curDrive 21 | ldy #$6f 22 | jsr SetFilePar 23 | lda #$00 24 | jsr SetFileName 25 | jsr Open 26 | LoadW a0,CopyProtection 27 | LoadW a1,$0300 28 | ::loop lda curDrive 29 | jsr Listen 30 | lda #$6f 31 | jsr SecListen 32 | lda #"M" 33 | jsr IECOut 34 | lda #"-" 35 | jsr IECOut 36 | lda #"W" 37 | jsr IECOut 38 | lda a1L 39 | jsr IECOut 40 | lda a1H 41 | jsr IECOut 42 | lda #1 43 | jsr IECOut 44 | ldy #0 45 | lda (a0),y 46 | jsr IECOut 47 | lda curDrive 48 | jsr UnListen 49 | IncW a0 50 | IncW a1 51 | CmpWI a0,CopyProtectionEnd 52 | bcc :loop 53 | lda curDrive 54 | jsr Listen 55 | lda #$6f 56 | jsr SecListen 57 | lda #"M" 58 | jsr IECOut 59 | lda #"-" 60 | jsr IECOut 61 | lda #"E" 62 | jsr IECOut 63 | lda #0 64 | jsr IECOut 65 | lda #3 66 | jsr IECOut 67 | lda curDrive 68 | jsr UnListen 69 | 70 | LoadB $90,0 71 | lda curDrive 72 | jsr Talk 73 | lda #$6f 74 | jsr SecTalk 75 | jsr IECIn 76 | sec 77 | sbc #$30 78 | asl 79 | sta a1H 80 | asl 81 | asl 82 | clc 83 | adc a1H 84 | sta a1H 85 | jsr IECIn 86 | sec 87 | sbc #$30 88 | clc 89 | adc a1H 90 | sta a1H 91 | ::40 jsr IECIn 92 | bit $90 93 | bvc :40 94 | lda curDrive 95 | jsr UnTalk 96 | lda #$01 97 | jsr Close 98 | jsr DoneWithIO 99 | ldx a1H 100 | bne :err 101 | LoadW r0,WaitTime 102 | ::waitloop ldx #r0L 103 | jsr Ddec 104 | bne :waitloop 105 | jmp OpenDisk 106 | ::err rts 107 | -------------------------------------------------------------------------------- /128_en/Protect/Sources/RemProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :DeProtectDisk jsr PurgeTurbo 18 | jsr InitForIO 19 | lda #$01 ;Open 20 | ldx curDrive 21 | ldy #$6f 22 | jsr SetFilePar 23 | lda #$00 24 | jsr SetFileName 25 | jsr Open 26 | LoadW a0,CopyProtection 27 | LoadW a1,$0300 28 | ::loop lda curDrive 29 | jsr Listen 30 | lda #$6f 31 | jsr SecListen 32 | lda #"M" 33 | jsr IECOut 34 | lda #"-" 35 | jsr IECOut 36 | lda #"W" 37 | jsr IECOut 38 | lda a1L 39 | jsr IECOut 40 | lda a1H 41 | jsr IECOut 42 | lda #1 43 | jsr IECOut 44 | ldy #0 45 | lda (a0),y 46 | jsr IECOut 47 | lda curDrive 48 | jsr UnListen 49 | IncW a0 50 | IncW a1 51 | CmpWI a0,CopyProtectionEnd 52 | bcc :loop 53 | lda curDrive 54 | jsr Listen 55 | lda #$6f 56 | jsr SecListen 57 | lda #"M" 58 | jsr IECOut 59 | lda #"-" 60 | jsr IECOut 61 | lda #"E" 62 | jsr IECOut 63 | lda #0 64 | jsr IECOut 65 | lda #3 66 | jsr IECOut 67 | lda curDrive 68 | jsr UnListen 69 | 70 | LoadB $90,0 71 | lda curDrive 72 | jsr Talk 73 | lda #$6f 74 | jsr SecTalk 75 | jsr IECIn 76 | sec 77 | sbc #$30 78 | asl 79 | sta a1H 80 | asl 81 | asl 82 | clc 83 | adc a1H 84 | sta a1H 85 | jsr IECIn 86 | sec 87 | sbc #$30 88 | clc 89 | adc a1H 90 | sta a1H 91 | ::40 jsr IECIn 92 | bit $90 93 | bvc :40 94 | lda curDrive 95 | jsr UnTalk 96 | lda #$01 97 | jsr Close 98 | jsr DoneWithIO 99 | ldx a1H 100 | bne :err 101 | LoadW r0,WaitTime 102 | ::waitloop ldx #r0L 103 | jsr Ddec 104 | bne :waitloop 105 | jmp OpenDisk 106 | ::err rts 107 | -------------------------------------------------------------------------------- /64_de/Protect/Sources/RemProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :DeProtectDisk jsr PurgeTurbo 18 | jsr InitForIO 19 | lda #$01 ;Open 20 | ldx curDrive 21 | ldy #$6f 22 | jsr SetFilePar 23 | lda #$00 24 | jsr SetFileName 25 | jsr Open 26 | LoadW a0,CopyProtection 27 | LoadW a1,$0300 28 | ::loop lda curDrive 29 | jsr Listen 30 | lda #$6f 31 | jsr SecListen 32 | lda #"M" 33 | jsr IECOut 34 | lda #"-" 35 | jsr IECOut 36 | lda #"W" 37 | jsr IECOut 38 | lda a1L 39 | jsr IECOut 40 | lda a1H 41 | jsr IECOut 42 | lda #1 43 | jsr IECOut 44 | ldy #0 45 | lda (a0),y 46 | jsr IECOut 47 | lda curDrive 48 | jsr UnListen 49 | IncW a0 50 | IncW a1 51 | CmpWI a0,CopyProtectionEnd 52 | bcc :loop 53 | lda curDrive 54 | jsr Listen 55 | lda #$6f 56 | jsr SecListen 57 | lda #"M" 58 | jsr IECOut 59 | lda #"-" 60 | jsr IECOut 61 | lda #"E" 62 | jsr IECOut 63 | lda #0 64 | jsr IECOut 65 | lda #3 66 | jsr IECOut 67 | lda curDrive 68 | jsr UnListen 69 | 70 | LoadB $90,0 71 | lda curDrive 72 | jsr Talk 73 | lda #$6f 74 | jsr SecTalk 75 | jsr IECIn 76 | sec 77 | sbc #$30 78 | asl 79 | sta a1H 80 | asl 81 | asl 82 | clc 83 | adc a1H 84 | sta a1H 85 | jsr IECIn 86 | sec 87 | sbc #$30 88 | clc 89 | adc a1H 90 | sta a1H 91 | ::40 jsr IECIn 92 | bit $90 93 | bvc :40 94 | lda curDrive 95 | jsr UnTalk 96 | lda #$01 97 | jsr Close 98 | jsr DoneWithIO 99 | ldx a1H 100 | bne :err 101 | LoadW r0,WaitTime 102 | ::waitloop ldx #r0L 103 | jsr Ddec 104 | bne :waitloop 105 | jmp OpenDisk 106 | ::err rts 107 | -------------------------------------------------------------------------------- /64_en/Protect/Sources/RemProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :DeProtectDisk jsr PurgeTurbo 18 | jsr InitForIO 19 | lda #$01 ;Open 20 | ldx curDrive 21 | ldy #$6f 22 | jsr SetFilePar 23 | lda #$00 24 | jsr SetFileName 25 | jsr Open 26 | LoadW a0,CopyProtection 27 | LoadW a1,$0300 28 | ::loop lda curDrive 29 | jsr Listen 30 | lda #$6f 31 | jsr SecListen 32 | lda #"M" 33 | jsr IECOut 34 | lda #"-" 35 | jsr IECOut 36 | lda #"W" 37 | jsr IECOut 38 | lda a1L 39 | jsr IECOut 40 | lda a1H 41 | jsr IECOut 42 | lda #1 43 | jsr IECOut 44 | ldy #0 45 | lda (a0),y 46 | jsr IECOut 47 | lda curDrive 48 | jsr UnListen 49 | IncW a0 50 | IncW a1 51 | CmpWI a0,CopyProtectionEnd 52 | bcc :loop 53 | lda curDrive 54 | jsr Listen 55 | lda #$6f 56 | jsr SecListen 57 | lda #"M" 58 | jsr IECOut 59 | lda #"-" 60 | jsr IECOut 61 | lda #"E" 62 | jsr IECOut 63 | lda #0 64 | jsr IECOut 65 | lda #3 66 | jsr IECOut 67 | lda curDrive 68 | jsr UnListen 69 | 70 | LoadB $90,0 71 | lda curDrive 72 | jsr Talk 73 | lda #$6f 74 | jsr SecTalk 75 | jsr IECIn 76 | sec 77 | sbc #$30 78 | asl 79 | sta a1H 80 | asl 81 | asl 82 | clc 83 | adc a1H 84 | sta a1H 85 | jsr IECIn 86 | sec 87 | sbc #$30 88 | clc 89 | adc a1H 90 | sta a1H 91 | ::40 jsr IECIn 92 | bit $90 93 | bvc :40 94 | lda curDrive 95 | jsr UnTalk 96 | lda #$01 97 | jsr Close 98 | jsr DoneWithIO 99 | ldx a1H 100 | bne :err 101 | LoadW r0,WaitTime 102 | ::waitloop ldx #r0L 103 | jsr Ddec 104 | bne :waitloop 105 | jmp OpenDisk 106 | ::err rts 107 | -------------------------------------------------------------------------------- /128_de/Protect/Sources/SetProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :ProtectDisk lda #8 18 | jsr SetDevice 19 | jsr PurgeTurbo 20 | jsr InitForIO 21 | lda #$01 ;Open 22 | ldx curDrive 23 | ldy #$6f 24 | jsr SetFilePar 25 | lda #$00 26 | jsr SetFileName 27 | jsr Open 28 | LoadW a0,CopyProtection 29 | LoadW a1,$0300 30 | ::loop lda curDrive 31 | jsr Listen 32 | lda #$6f 33 | jsr SecListen 34 | lda #"M" 35 | jsr IECOut 36 | lda #"-" 37 | jsr IECOut 38 | lda #"W" 39 | jsr IECOut 40 | lda a1L 41 | jsr IECOut 42 | lda a1H 43 | jsr IECOut 44 | lda #1 45 | jsr IECOut 46 | ldy #0 47 | lda (a0),y 48 | jsr IECOut 49 | lda curDrive 50 | jsr UnListen 51 | IncW a0 52 | IncW a1 53 | CmpWI a0,CopyProtectionEnd 54 | bcc :loop 55 | lda curDrive 56 | jsr Listen 57 | lda #$6f 58 | jsr SecListen 59 | lda #"M" 60 | jsr IECOut 61 | lda #"-" 62 | jsr IECOut 63 | lda #"E" 64 | jsr IECOut 65 | lda #0 66 | jsr IECOut 67 | lda #3 68 | jsr IECOut 69 | lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jmp OpenDisk 108 | ::err rts 109 | -------------------------------------------------------------------------------- /128_en/Protect/Sources/SetProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :ProtectDisk lda #8 18 | jsr SetDevice 19 | jsr PurgeTurbo 20 | jsr InitForIO 21 | lda #$01 ;Open 22 | ldx curDrive 23 | ldy #$6f 24 | jsr SetFilePar 25 | lda #$00 26 | jsr SetFileName 27 | jsr Open 28 | LoadW a0,CopyProtection 29 | LoadW a1,$0300 30 | ::loop lda curDrive 31 | jsr Listen 32 | lda #$6f 33 | jsr SecListen 34 | lda #"M" 35 | jsr IECOut 36 | lda #"-" 37 | jsr IECOut 38 | lda #"W" 39 | jsr IECOut 40 | lda a1L 41 | jsr IECOut 42 | lda a1H 43 | jsr IECOut 44 | lda #1 45 | jsr IECOut 46 | ldy #0 47 | lda (a0),y 48 | jsr IECOut 49 | lda curDrive 50 | jsr UnListen 51 | IncW a0 52 | IncW a1 53 | CmpWI a0,CopyProtectionEnd 54 | bcc :loop 55 | lda curDrive 56 | jsr Listen 57 | lda #$6f 58 | jsr SecListen 59 | lda #"M" 60 | jsr IECOut 61 | lda #"-" 62 | jsr IECOut 63 | lda #"E" 64 | jsr IECOut 65 | lda #0 66 | jsr IECOut 67 | lda #3 68 | jsr IECOut 69 | lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jmp OpenDisk 108 | ::err rts 109 | -------------------------------------------------------------------------------- /64_de/Protect/Sources/SetProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :ProtectDisk lda #8 18 | jsr SetDevice 19 | jsr PurgeTurbo 20 | jsr InitForIO 21 | lda #$01 ;Open 22 | ldx curDrive 23 | ldy #$6f 24 | jsr SetFilePar 25 | lda #$00 26 | jsr SetFileName 27 | jsr Open 28 | LoadW a0,CopyProtection 29 | LoadW a1,$0300 30 | ::loop lda curDrive 31 | jsr Listen 32 | lda #$6f 33 | jsr SecListen 34 | lda #"M" 35 | jsr IECOut 36 | lda #"-" 37 | jsr IECOut 38 | lda #"W" 39 | jsr IECOut 40 | lda a1L 41 | jsr IECOut 42 | lda a1H 43 | jsr IECOut 44 | lda #1 45 | jsr IECOut 46 | ldy #0 47 | lda (a0),y 48 | jsr IECOut 49 | lda curDrive 50 | jsr UnListen 51 | IncW a0 52 | IncW a1 53 | CmpWI a0,CopyProtectionEnd 54 | bcc :loop 55 | lda curDrive 56 | jsr Listen 57 | lda #$6f 58 | jsr SecListen 59 | lda #"M" 60 | jsr IECOut 61 | lda #"-" 62 | jsr IECOut 63 | lda #"E" 64 | jsr IECOut 65 | lda #0 66 | jsr IECOut 67 | lda #3 68 | jsr IECOut 69 | lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jmp OpenDisk 108 | ::err rts 109 | -------------------------------------------------------------------------------- /64_en/Protect/Sources/SetProtection.s: -------------------------------------------------------------------------------- 1 | if .p 2 | :WaitTime = $2000 3 | :SetFilePar = $ffba 4 | :SetFileName = $ffbd 5 | :Open = $ffc0 6 | :Close = $ffc3 7 | :Listen = $ffb1 8 | :SecListen = $ff93 9 | :UnListen = $ffae 10 | :Talk = $ffb4 11 | :SecTalk = $ff96 12 | :UnTalk = $ffab 13 | :IECIn = $ffa5 14 | :IECOut = $ffa8 15 | endif 16 | 17 | :ProtectDisk lda #8 18 | jsr SetDevice 19 | jsr PurgeTurbo 20 | jsr InitForIO 21 | lda #$01 ;Open 22 | ldx curDrive 23 | ldy #$6f 24 | jsr SetFilePar 25 | lda #$00 26 | jsr SetFileName 27 | jsr Open 28 | LoadW a0,CopyProtection 29 | LoadW a1,$0300 30 | ::loop lda curDrive 31 | jsr Listen 32 | lda #$6f 33 | jsr SecListen 34 | lda #"M" 35 | jsr IECOut 36 | lda #"-" 37 | jsr IECOut 38 | lda #"W" 39 | jsr IECOut 40 | lda a1L 41 | jsr IECOut 42 | lda a1H 43 | jsr IECOut 44 | lda #1 45 | jsr IECOut 46 | ldy #0 47 | lda (a0),y 48 | jsr IECOut 49 | lda curDrive 50 | jsr UnListen 51 | IncW a0 52 | IncW a1 53 | CmpWI a0,CopyProtectionEnd 54 | bcc :loop 55 | lda curDrive 56 | jsr Listen 57 | lda #$6f 58 | jsr SecListen 59 | lda #"M" 60 | jsr IECOut 61 | lda #"-" 62 | jsr IECOut 63 | lda #"E" 64 | jsr IECOut 65 | lda #0 66 | jsr IECOut 67 | lda #3 68 | jsr IECOut 69 | lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jmp OpenDisk 108 | ::err rts 109 | -------------------------------------------------------------------------------- /64_de/Main/DeskWindows..ext.s: -------------------------------------------------------------------------------- 1 | :BackWindow = $0f24 2 | :ClearScreen = $093c 3 | :CloseWindow = $0c41 4 | :CutRec = $0f8a 5 | :DialBoxFlag = $14c3 6 | :DoMove = $09d4 7 | :DoRubber = $0b19 8 | :DoWindows = $0557 9 | :DrawMap = $1142 10 | :DrawShadow = $0fe8 11 | :DrawWindow = $0884 12 | :DrawWindowB = $0884 13 | :FrontWindow = $0e97 14 | :GD_CLOSE = $02 15 | :GD_HIDE = $40 16 | :GD_MAX = $04 17 | :GD_MOVE = $01 18 | :GD_SCROLL_LR = $10 19 | :GD_SCROLL_UD = $20 20 | :GD_SIZE = $08 21 | :GetClipRec = $061a 22 | :GetModule = $044e 23 | :GetNext = $0bf7 24 | :GetReg = $1716 25 | :GetWinAdr = $05ef 26 | :GetWinAdrRec = $05e9 27 | :GetWinAdrRecImp = $05e3 28 | :GetWinRec = $0607 29 | :GetWinRec2 = $060a 30 | :GetWorkArea = $1003 31 | :Grenze_oben = $0f 32 | :MaxTextWin = $0845 33 | :MaxWindow = $1452 34 | :ModStartAdress = $0449 35 | :MyClass = $0436 36 | :MyCurRec = $0447 37 | :MyName = $0426 38 | :NameIndex = $0553 39 | :NewDoDlgBox = $1392 40 | :NewDoIcons = $1356 41 | :NewPutString = $1487 42 | :NewRectangle = $092f 43 | :NoClipFlag = $0626 44 | :OpenWindow = $0c07 45 | :Pr}fSumme = $0400 46 | :RamStart = $0402 47 | :Recover = $14d5 48 | :RecoverLast = $14ca 49 | :Redraw = $0997 50 | :RedrawAll = $0958 51 | :RemoveShadow = $0fe8 52 | :RestoreRectangle = $09a6 53 | :RestoreTextWin = $0872 54 | :SearchDeskTop = $044b 55 | :SetReg = $170a 56 | :SetTextWin = $0857 57 | :SpeedWin = $132d 58 | :SpeedWinMax = $1333 59 | :StringLen = $151e 60 | :UnPackMap = $113a 61 | :WN_ACTIVATE = $06 62 | 63 | :WN_ACTIVATE2 = $0e 64 | :WN_CLOSE = $04 65 | :WN_HIDE = $0c 66 | :WN_MAX = $05 67 | :WN_MOVE = $02 68 | :WN_REDRAW = $01 69 | :WN_RESTORE = $07 70 | :WN_SCROLL_D = $0b 71 | :WN_SCROLL_L = $09 72 | :WN_SCROLL_R = $08 73 | :WN_SCROLL_U = $0a 74 | :WN_SIZE = $03 75 | :WN_USER = $0d 76 | :Windows_End = $17be 77 | :activeWindow = $053a 78 | :backPattern = $0548 79 | :curWinData = $0549 80 | :ghostFile = $0448 81 | :iconTab = $0551 82 | :messageBuffer = $053e 83 | :newAppMain = $054f 84 | :windowsOpen = $054b 85 | -------------------------------------------------------------------------------- /128_de/Protect/Sources/RemProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | :IndexTrack = 10 8 | :IndexSektor = 00 9 | endif 10 | n "RemProt.mod" 11 | o $0300 12 | :Start jsr SetCopyProtection 13 | jsr LedOn 14 | LoadB $08,IndexTrack 15 | LoadB $09,IndexSektor 16 | LoadB $01,$80 17 | ::waitjob lda $01 18 | bmi :waitjob 19 | cmp #2 20 | bcs :joberr 21 | ldy #0 22 | ::loop lda $0404,y 23 | sta $0402,y 24 | iny 25 | cpy #$fc 26 | bcc :loop 27 | LoadB $01,$90 28 | ::waitjob2 lda $01 29 | bmi :waitjob2 30 | cmp #2 31 | bcs :joberr 32 | rts 33 | ::joberr ldx #1 34 | jmp $e60a 35 | :Track b 2 36 | :Sektor b 0 37 | :TrackArea b 3 38 | :DataSignRW b NewDataSign,OldDataSign 39 | :Job b 0 40 | 41 | :LedOn lda $1c00 42 | ora #%0000 1000 43 | sta $1c00 44 | rts 45 | :LedOff lda $1c00 46 | and #%1111 0111 47 | sta $1c00 48 | rts 49 | :SetCopyProtection 50 | ::nextblock jsr LedOn 51 | MoveB DataSignRW,$47 52 | LoadB Job,$80 53 | jsr ReadWriteBlocks 54 | cmp #2 55 | bcs :joberr 56 | MoveB DataSignRW+1,$47 57 | LoadB Job,$90 58 | jsr ReadWriteBlocks 59 | cmp #2 60 | bcs :joberr 61 | jsr LedOff 62 | inc Sektor 63 | lda Sektor 64 | cmp #8 65 | bcc :nextblock 66 | LoadB Sektor,0 67 | inc Track 68 | lda Track 69 | cmp $fed7,y 70 | bcc :testend 71 | dey 72 | sty TrackArea 73 | ::testend cmp #EndTrack 74 | bcc :nextblock 75 | ::end LoadB $47,OldDataSign 76 | rts 77 | ::joberr pha 78 | jsr :end 79 | pla 80 | inx 81 | jmp $e60a 82 | 83 | :ReadWriteBlocks ldx #0 84 | ::readnext jsr :setjob 85 | bcs :next 86 | lda $01,x 87 | cmp #2 88 | bcs :err 89 | ::next inx 90 | cpx #3 91 | bcc :readnext 92 | lda #1 93 | ::err rts 94 | ::setjob txa 95 | asl 96 | tay 97 | asl 98 | asl 99 | clc 100 | adc Sektor 101 | sta $09,y 102 | pha 103 | lda Track 104 | sta $08,y 105 | pla 106 | ldy TrackArea 107 | cmp $fed1,y 108 | bcs :end 109 | lda Job 110 | sta $01,x 111 | ::waitjob lda $01,x 112 | bmi :waitjob 113 | clc 114 | ::end rts 115 | .CopyProtectionEnd 116 | -------------------------------------------------------------------------------- /128_en/Protect/Sources/RemProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | :IndexTrack = 10 8 | :IndexSektor = 00 9 | endif 10 | n "RemProt.mod" 11 | o $0300 12 | :Start jsr SetCopyProtection 13 | jsr LedOn 14 | LoadB $08,IndexTrack 15 | LoadB $09,IndexSektor 16 | LoadB $01,$80 17 | ::waitjob lda $01 18 | bmi :waitjob 19 | cmp #2 20 | bcs :joberr 21 | ldy #0 22 | ::loop lda $0404,y 23 | sta $0402,y 24 | iny 25 | cpy #$fc 26 | bcc :loop 27 | LoadB $01,$90 28 | ::waitjob2 lda $01 29 | bmi :waitjob2 30 | cmp #2 31 | bcs :joberr 32 | rts 33 | ::joberr ldx #1 34 | jmp $e60a 35 | :Track b 2 36 | :Sektor b 0 37 | :TrackArea b 3 38 | :DataSignRW b NewDataSign,OldDataSign 39 | :Job b 0 40 | 41 | :LedOn lda $1c00 42 | ora #%0000 1000 43 | sta $1c00 44 | rts 45 | :LedOff lda $1c00 46 | and #%1111 0111 47 | sta $1c00 48 | rts 49 | :SetCopyProtection 50 | ::nextblock jsr LedOn 51 | MoveB DataSignRW,$47 52 | LoadB Job,$80 53 | jsr ReadWriteBlocks 54 | cmp #2 55 | bcs :joberr 56 | MoveB DataSignRW+1,$47 57 | LoadB Job,$90 58 | jsr ReadWriteBlocks 59 | cmp #2 60 | bcs :joberr 61 | jsr LedOff 62 | inc Sektor 63 | lda Sektor 64 | cmp #8 65 | bcc :nextblock 66 | LoadB Sektor,0 67 | inc Track 68 | lda Track 69 | cmp $fed7,y 70 | bcc :testend 71 | dey 72 | sty TrackArea 73 | ::testend cmp #EndTrack 74 | bcc :nextblock 75 | ::end LoadB $47,OldDataSign 76 | rts 77 | ::joberr pha 78 | jsr :end 79 | pla 80 | inx 81 | jmp $e60a 82 | 83 | :ReadWriteBlocks ldx #0 84 | ::readnext jsr :setjob 85 | bcs :next 86 | lda $01,x 87 | cmp #2 88 | bcs :err 89 | ::next inx 90 | cpx #3 91 | bcc :readnext 92 | lda #1 93 | ::err rts 94 | ::setjob txa 95 | asl 96 | tay 97 | asl 98 | asl 99 | clc 100 | adc Sektor 101 | sta $09,y 102 | pha 103 | lda Track 104 | sta $08,y 105 | pla 106 | ldy TrackArea 107 | cmp $fed1,y 108 | bcs :end 109 | lda Job 110 | sta $01,x 111 | ::waitjob lda $01,x 112 | bmi :waitjob 113 | clc 114 | ::end rts 115 | .CopyProtectionEnd 116 | -------------------------------------------------------------------------------- /64_de/Protect/Sources/RemProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | :IndexTrack = 10 8 | :IndexSektor = 00 9 | endif 10 | n "RemProt.mod" 11 | o $0300 12 | :Start jsr SetCopyProtection 13 | jsr LedOn 14 | LoadB $08,IndexTrack 15 | LoadB $09,IndexSektor 16 | LoadB $01,$80 17 | ::waitjob lda $01 18 | bmi :waitjob 19 | cmp #2 20 | bcs :joberr 21 | ldy #0 22 | ::loop lda $0404,y 23 | sta $0402,y 24 | iny 25 | cpy #$fc 26 | bcc :loop 27 | LoadB $01,$90 28 | ::waitjob2 lda $01 29 | bmi :waitjob2 30 | cmp #2 31 | bcs :joberr 32 | rts 33 | ::joberr ldx #1 34 | jmp $e60a 35 | :Track b 2 36 | :Sektor b 0 37 | :TrackArea b 3 38 | :DataSignRW b NewDataSign,OldDataSign 39 | :Job b 0 40 | 41 | :LedOn lda $1c00 42 | ora #%0000 1000 43 | sta $1c00 44 | rts 45 | :LedOff lda $1c00 46 | and #%1111 0111 47 | sta $1c00 48 | rts 49 | :SetCopyProtection 50 | ::nextblock jsr LedOn 51 | MoveB DataSignRW,$47 52 | LoadB Job,$80 53 | jsr ReadWriteBlocks 54 | cmp #2 55 | bcs :joberr 56 | MoveB DataSignRW+1,$47 57 | LoadB Job,$90 58 | jsr ReadWriteBlocks 59 | cmp #2 60 | bcs :joberr 61 | jsr LedOff 62 | inc Sektor 63 | lda Sektor 64 | cmp #8 65 | bcc :nextblock 66 | LoadB Sektor,0 67 | inc Track 68 | lda Track 69 | cmp $fed7,y 70 | bcc :testend 71 | dey 72 | sty TrackArea 73 | ::testend cmp #EndTrack 74 | bcc :nextblock 75 | ::end LoadB $47,OldDataSign 76 | rts 77 | ::joberr pha 78 | jsr :end 79 | pla 80 | inx 81 | jmp $e60a 82 | 83 | :ReadWriteBlocks ldx #0 84 | ::readnext jsr :setjob 85 | bcs :next 86 | lda $01,x 87 | cmp #2 88 | bcs :err 89 | ::next inx 90 | cpx #3 91 | bcc :readnext 92 | lda #1 93 | ::err rts 94 | ::setjob txa 95 | asl 96 | tay 97 | asl 98 | asl 99 | clc 100 | adc Sektor 101 | sta $09,y 102 | pha 103 | lda Track 104 | sta $08,y 105 | pla 106 | ldy TrackArea 107 | cmp $fed1,y 108 | bcs :end 109 | lda Job 110 | sta $01,x 111 | ::waitjob lda $01,x 112 | bmi :waitjob 113 | clc 114 | ::end rts 115 | .CopyProtectionEnd 116 | -------------------------------------------------------------------------------- /64_en/Protect/Sources/RemProt.mod.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | :NewDataSign = $9 5 | :OldDataSign = $7 6 | :EndTrack = 6 7 | :IndexTrack = 10 8 | :IndexSektor = 00 9 | endif 10 | n "RemProt.mod" 11 | o $0300 12 | :Start jsr SetCopyProtection 13 | jsr LedOn 14 | LoadB $08,IndexTrack 15 | LoadB $09,IndexSektor 16 | LoadB $01,$80 17 | ::waitjob lda $01 18 | bmi :waitjob 19 | cmp #2 20 | bcs :joberr 21 | ldy #0 22 | ::loop lda $0404,y 23 | sta $0402,y 24 | iny 25 | cpy #$fc 26 | bcc :loop 27 | LoadB $01,$90 28 | ::waitjob2 lda $01 29 | bmi :waitjob2 30 | cmp #2 31 | bcs :joberr 32 | rts 33 | ::joberr ldx #1 34 | jmp $e60a 35 | :Track b 2 36 | :Sektor b 0 37 | :TrackArea b 3 38 | :DataSignRW b NewDataSign,OldDataSign 39 | :Job b 0 40 | 41 | :LedOn lda $1c00 42 | ora #%0000 1000 43 | sta $1c00 44 | rts 45 | :LedOff lda $1c00 46 | and #%1111 0111 47 | sta $1c00 48 | rts 49 | :SetCopyProtection 50 | ::nextblock jsr LedOn 51 | MoveB DataSignRW,$47 52 | LoadB Job,$80 53 | jsr ReadWriteBlocks 54 | cmp #2 55 | bcs :joberr 56 | MoveB DataSignRW+1,$47 57 | LoadB Job,$90 58 | jsr ReadWriteBlocks 59 | cmp #2 60 | bcs :joberr 61 | jsr LedOff 62 | inc Sektor 63 | lda Sektor 64 | cmp #8 65 | bcc :nextblock 66 | LoadB Sektor,0 67 | inc Track 68 | lda Track 69 | cmp $fed7,y 70 | bcc :testend 71 | dey 72 | sty TrackArea 73 | ::testend cmp #EndTrack 74 | bcc :nextblock 75 | ::end LoadB $47,OldDataSign 76 | rts 77 | ::joberr pha 78 | jsr :end 79 | pla 80 | inx 81 | jmp $e60a 82 | 83 | :ReadWriteBlocks ldx #0 84 | ::readnext jsr :setjob 85 | bcs :next 86 | lda $01,x 87 | cmp #2 88 | bcs :err 89 | ::next inx 90 | cpx #3 91 | bcc :readnext 92 | lda #1 93 | ::err rts 94 | ::setjob txa 95 | asl 96 | tay 97 | asl 98 | asl 99 | clc 100 | adc Sektor 101 | sta $09,y 102 | pha 103 | lda Track 104 | sta $08,y 105 | pla 106 | ldy TrackArea 107 | cmp $fed1,y 108 | bcs :end 109 | lda Job 110 | sta $01,x 111 | ::waitjob lda $01,x 112 | bmi :waitjob 113 | clc 114 | ::end rts 115 | .CopyProtectionEnd 116 | -------------------------------------------------------------------------------- /64_de/Protect/Sources/ProtectDisk.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "ProtectDisk" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"ProtectDisk",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr ProtectDisk 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Folgende Disk sch}tzen:",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :CopyProtection d "SetProt.mod" 103 | :CopyProtectionEnd 104 | t "SetProtection.s" 105 | -------------------------------------------------------------------------------- /64_en/Protect/Sources/ProtectDisk.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "ProtectDisk" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"ProtectDisk",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr ProtectDisk 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Folgende Disk sch}tzen:",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :CopyProtection d "SetProt.mod" 103 | :CopyProtectionEnd 104 | t "SetProtection.s" 105 | -------------------------------------------------------------------------------- /128_de/Protect/Sources/ProtectDisk.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "ProtectDisk" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"ProtectDisk",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr ProtectDisk 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Folgende Disk sch}tzen:",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :CopyProtection d "SetProt.mod" 103 | :CopyProtectionEnd 104 | t "SetProtection.s" 105 | -------------------------------------------------------------------------------- /128_en/Protect/Sources/ProtectDisk.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "ProtectDisk" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"ProtectDisk",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr ProtectDisk 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Folgende Disk sch}tzen:",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :CopyProtection d "SetProt.mod" 103 | :CopyProtectionEnd 104 | t "SetProtection.s" 105 | -------------------------------------------------------------------------------- /128_de/GetDrivers/GetDrivers.s: -------------------------------------------------------------------------------- 1 | n "GetDrivers" 2 | c "GetDrivers V1.0" 3 | a "Walter Knupe" 4 | i $03,$18,$00,$0d,$00,$ab,$ff,$fe 5 | i $01,$00,$06,$02,$7f,$ca,$04,$00 6 | i $12,$09,$ff,$22,$10,$00,$42,$20 7 | i $00,$82,$40,$01,$04,$ff,$fe,$08 8 | i $80,$02,$10,$83,$82,$20,$9f,$f2 9 | i $40,$83,$82,$80,$80,$03,$00,$7f 10 | i $fc,$10,$00,$09,$b1 11 | if .p 12 | t "TopSym" 13 | t "TopMac" 14 | t "Sym128.erg" 15 | t "CiMac" 16 | endif 17 | :DRIVER_LEN = $d80 18 | :Start lda #2 19 | jsr SetPattern 20 | jsr i_Rectangle 21 | b 0,199 22 | w 0,319 23 | jsr LoadDrivers 24 | LoadW r0,Driver1541Space 25 | lda #1 26 | jsr SaveDriver 27 | LoadW r0,Driver1571Space 28 | lda #2 29 | jsr SaveDriver 30 | LoadW r0,Driver1581Space 31 | lda #3 32 | jsr SaveDriver 33 | jmp EnterDeskTop 34 | t "SaveDriver.s" 35 | 36 | :LoadDrivers LoadW r10,KonfClass 37 | lda c128Flag 38 | bpl :64 39 | LoadW r10,Konf128Class 40 | ::64 LoadB r7L,14 41 | LoadB r7H,1 42 | LoadW r6,KonfName 43 | jsr FindFTypes 44 | txa 45 | bne :err 46 | lda r7H 47 | bne :err2 48 | LoadW r0,KonfName 49 | jsr OpenRecordFile 50 | txa 51 | beq :geht 52 | ::err2 LoadW r0,:db 53 | jsr DoDlgBox 54 | jmp EnterDeskTop 55 | ::geht lda #2 56 | jsr PointRecord 57 | LoadW r7,Driver1541Space 58 | LoadW r2,-1 59 | jsr ReadRecord 60 | txa 61 | bne :err 62 | jsr NextRecord 63 | txa 64 | bne :err 65 | LoadW r7,Driver1571Space 66 | LoadW r2,-1 67 | jsr ReadRecord 68 | txa 69 | bne :err 70 | jsr NextRecord 71 | txa 72 | bne :err 73 | LoadW r7,Driver1581Space 74 | LoadW r2,-1 75 | jsr ReadRecord 76 | txa 77 | bne :err 78 | rts 79 | ::err LoadW r0,:db2 80 | jsr DoDlgBox 81 | jmp EnterDeskTop 82 | ::db b $81 83 | b $0b,$10,$10 84 | w :t1 85 | b $0b,$10,$20 86 | w :t2 87 | b OK,17,72,NULL 88 | ::t1 b BOLDON,"KONFIGURIEREN ist nicht",0 89 | ::t2 b "zu finden !",PLAINTEXT,0 90 | ::db2 b $81 91 | b $0b,$10,$10 92 | w :t3 93 | b $0b,$10,$20 94 | w :t4 95 | b OK,17,72,NULL 96 | ::t3 b "Fehler beim Lesen der ",0 97 | ::t4 b "DiskDriver",0 98 | :KonfClass b "Configure",0 99 | :Konf128Class b "128 Config",0 100 | :KonfName s 17 101 | 102 | :Driver1541Space 103 | :Driver1571Space = Driver1541Space+DRIVER_LEN 104 | :Driver1581Space = Driver1571Space+DRIVER_LEN 105 | 106 | -------------------------------------------------------------------------------- /128_en/GetDrivers/GetDrivers.s: -------------------------------------------------------------------------------- 1 | n "GetDrivers" 2 | c "GetDrivers V1.0" 3 | a "Walter Knupe" 4 | i $03,$18,$00,$0d,$00,$ab,$ff,$fe 5 | i $01,$00,$06,$02,$7f,$ca,$04,$00 6 | i $12,$09,$ff,$22,$10,$00,$42,$20 7 | i $00,$82,$40,$01,$04,$ff,$fe,$08 8 | i $80,$02,$10,$83,$82,$20,$9f,$f2 9 | i $40,$83,$82,$80,$80,$03,$00,$7f 10 | i $fc,$10,$00,$09,$b1 11 | if .p 12 | t "TopSym" 13 | t "TopMac" 14 | t "Sym128.erg" 15 | t "CiMac" 16 | endif 17 | :DRIVER_LEN = $d80 18 | :Start lda #2 19 | jsr SetPattern 20 | jsr i_Rectangle 21 | b 0,199 22 | w 0,319 23 | jsr LoadDrivers 24 | LoadW r0,Driver1541Space 25 | lda #1 26 | jsr SaveDriver 27 | LoadW r0,Driver1571Space 28 | lda #2 29 | jsr SaveDriver 30 | LoadW r0,Driver1581Space 31 | lda #3 32 | jsr SaveDriver 33 | jmp EnterDeskTop 34 | t "SaveDriver.s" 35 | 36 | :LoadDrivers LoadW r10,KonfClass 37 | lda c128Flag 38 | bpl :64 39 | LoadW r10,Konf128Class 40 | ::64 LoadB r7L,14 41 | LoadB r7H,1 42 | LoadW r6,KonfName 43 | jsr FindFTypes 44 | txa 45 | bne :err 46 | lda r7H 47 | bne :err2 48 | LoadW r0,KonfName 49 | jsr OpenRecordFile 50 | txa 51 | beq :geht 52 | ::err2 LoadW r0,:db 53 | jsr DoDlgBox 54 | jmp EnterDeskTop 55 | ::geht lda #2 56 | jsr PointRecord 57 | LoadW r7,Driver1541Space 58 | LoadW r2,-1 59 | jsr ReadRecord 60 | txa 61 | bne :err 62 | jsr NextRecord 63 | txa 64 | bne :err 65 | LoadW r7,Driver1571Space 66 | LoadW r2,-1 67 | jsr ReadRecord 68 | txa 69 | bne :err 70 | jsr NextRecord 71 | txa 72 | bne :err 73 | LoadW r7,Driver1581Space 74 | LoadW r2,-1 75 | jsr ReadRecord 76 | txa 77 | bne :err 78 | rts 79 | ::err LoadW r0,:db2 80 | jsr DoDlgBox 81 | jmp EnterDeskTop 82 | ::db b $81 83 | b $0b,$10,$10 84 | w :t1 85 | b $0b,$10,$20 86 | w :t2 87 | b OK,17,72,NULL 88 | ::t1 b BOLDON,"KONFIGURIEREN ist nicht",0 89 | ::t2 b "zu finden !",PLAINTEXT,0 90 | ::db2 b $81 91 | b $0b,$10,$10 92 | w :t3 93 | b $0b,$10,$20 94 | w :t4 95 | b OK,17,72,NULL 96 | ::t3 b "Fehler beim Lesen der ",0 97 | ::t4 b "DiskDriver",0 98 | :KonfClass b "Configure",0 99 | :Konf128Class b "128 Config",0 100 | :KonfName s 17 101 | 102 | :Driver1541Space 103 | :Driver1571Space = Driver1541Space+DRIVER_LEN 104 | :Driver1581Space = Driver1571Space+DRIVER_LEN 105 | 106 | -------------------------------------------------------------------------------- /64_de/GetDrivers/GetDrivers.s: -------------------------------------------------------------------------------- 1 | n "GetDrivers" 2 | c "GetDrivers V1.0" 3 | a "Walter Knupe" 4 | i $03,$18,$00,$0d,$00,$ab,$ff,$fe 5 | i $01,$00,$06,$02,$7f,$ca,$04,$00 6 | i $12,$09,$ff,$22,$10,$00,$42,$20 7 | i $00,$82,$40,$01,$04,$ff,$fe,$08 8 | i $80,$02,$10,$83,$82,$20,$9f,$f2 9 | i $40,$83,$82,$80,$80,$03,$00,$7f 10 | i $fc,$10,$00,$09,$b1 11 | if .p 12 | t "TopSym" 13 | t "TopMac" 14 | t "Sym128.erg" 15 | t "CiMac" 16 | endif 17 | :DRIVER_LEN = $d80 18 | :Start lda #2 19 | jsr SetPattern 20 | jsr i_Rectangle 21 | b 0,199 22 | w 0,319 23 | jsr LoadDrivers 24 | LoadW r0,Driver1541Space 25 | lda #1 26 | jsr SaveDriver 27 | LoadW r0,Driver1571Space 28 | lda #2 29 | jsr SaveDriver 30 | LoadW r0,Driver1581Space 31 | lda #3 32 | jsr SaveDriver 33 | jmp EnterDeskTop 34 | t "SaveDriver.s" 35 | 36 | :LoadDrivers LoadW r10,KonfClass 37 | lda c128Flag 38 | bpl :64 39 | LoadW r10,Konf128Class 40 | ::64 LoadB r7L,14 41 | LoadB r7H,1 42 | LoadW r6,KonfName 43 | jsr FindFTypes 44 | txa 45 | bne :err 46 | lda r7H 47 | bne :err2 48 | LoadW r0,KonfName 49 | jsr OpenRecordFile 50 | txa 51 | beq :geht 52 | ::err2 LoadW r0,:db 53 | jsr DoDlgBox 54 | jmp EnterDeskTop 55 | ::geht lda #2 56 | jsr PointRecord 57 | LoadW r7,Driver1541Space 58 | LoadW r2,-1 59 | jsr ReadRecord 60 | txa 61 | bne :err 62 | jsr NextRecord 63 | txa 64 | bne :err 65 | LoadW r7,Driver1571Space 66 | LoadW r2,-1 67 | jsr ReadRecord 68 | txa 69 | bne :err 70 | jsr NextRecord 71 | txa 72 | bne :err 73 | LoadW r7,Driver1581Space 74 | LoadW r2,-1 75 | jsr ReadRecord 76 | txa 77 | bne :err 78 | rts 79 | ::err LoadW r0,:db2 80 | jsr DoDlgBox 81 | jmp EnterDeskTop 82 | ::db b $81 83 | b $0b,$10,$10 84 | w :t1 85 | b $0b,$10,$20 86 | w :t2 87 | b OK,17,72,NULL 88 | ::t1 b BOLDON,"KONFIGURIEREN ist nicht",0 89 | ::t2 b "zu finden !",PLAINTEXT,0 90 | ::db2 b $81 91 | b $0b,$10,$10 92 | w :t3 93 | b $0b,$10,$20 94 | w :t4 95 | b OK,17,72,NULL 96 | ::t3 b "Fehler beim Lesen der ",0 97 | ::t4 b "DiskDriver",0 98 | :KonfClass b "Configure",0 99 | :Konf128Class b "128 Config",0 100 | :KonfName s 17 101 | 102 | :Driver1541Space 103 | :Driver1571Space = Driver1541Space+DRIVER_LEN 104 | :Driver1581Space = Driver1571Space+DRIVER_LEN 105 | 106 | -------------------------------------------------------------------------------- /64_en/GetDrivers/GetDrivers.s: -------------------------------------------------------------------------------- 1 | n "GetDrivers" 2 | c "GetDrivers V1.0" 3 | a "Walter Knupe" 4 | i $03,$18,$00,$0d,$00,$ab,$ff,$fe 5 | i $01,$00,$06,$02,$7f,$ca,$04,$00 6 | i $12,$09,$ff,$22,$10,$00,$42,$20 7 | i $00,$82,$40,$01,$04,$ff,$fe,$08 8 | i $80,$02,$10,$83,$82,$20,$9f,$f2 9 | i $40,$83,$82,$80,$80,$03,$00,$7f 10 | i $fc,$10,$00,$09,$b1 11 | if .p 12 | t "TopSym" 13 | t "TopMac" 14 | t "Sym128.erg" 15 | t "CiMac" 16 | endif 17 | :DRIVER_LEN = $d80 18 | :Start lda #2 19 | jsr SetPattern 20 | jsr i_Rectangle 21 | b 0,199 22 | w 0,319 23 | jsr LoadDrivers 24 | LoadW r0,Driver1541Space 25 | lda #1 26 | jsr SaveDriver 27 | LoadW r0,Driver1571Space 28 | lda #2 29 | jsr SaveDriver 30 | LoadW r0,Driver1581Space 31 | lda #3 32 | jsr SaveDriver 33 | jmp EnterDeskTop 34 | t "SaveDriver.s" 35 | 36 | :LoadDrivers LoadW r10,KonfClass 37 | lda c128Flag 38 | bpl :64 39 | LoadW r10,Konf128Class 40 | ::64 LoadB r7L,14 41 | LoadB r7H,1 42 | LoadW r6,KonfName 43 | jsr FindFTypes 44 | txa 45 | bne :err 46 | lda r7H 47 | bne :err2 48 | LoadW r0,KonfName 49 | jsr OpenRecordFile 50 | txa 51 | beq :geht 52 | ::err2 LoadW r0,:db 53 | jsr DoDlgBox 54 | jmp EnterDeskTop 55 | ::geht lda #2 56 | jsr PointRecord 57 | LoadW r7,Driver1541Space 58 | LoadW r2,-1 59 | jsr ReadRecord 60 | txa 61 | bne :err 62 | jsr NextRecord 63 | txa 64 | bne :err 65 | LoadW r7,Driver1571Space 66 | LoadW r2,-1 67 | jsr ReadRecord 68 | txa 69 | bne :err 70 | jsr NextRecord 71 | txa 72 | bne :err 73 | LoadW r7,Driver1581Space 74 | LoadW r2,-1 75 | jsr ReadRecord 76 | txa 77 | bne :err 78 | rts 79 | ::err LoadW r0,:db2 80 | jsr DoDlgBox 81 | jmp EnterDeskTop 82 | ::db b $81 83 | b $0b,$10,$10 84 | w :t1 85 | b $0b,$10,$20 86 | w :t2 87 | b OK,17,72,NULL 88 | ::t1 b BOLDON,"KONFIGURIEREN ist nicht",0 89 | ::t2 b "zu finden !",PLAINTEXT,0 90 | ::db2 b $81 91 | b $0b,$10,$10 92 | w :t3 93 | b $0b,$10,$20 94 | w :t4 95 | b OK,17,72,NULL 96 | ::t3 b "Fehler beim Lesen der ",0 97 | ::t4 b "DiskDriver",0 98 | :KonfClass b "Configure",0 99 | :Konf128Class b "128 Config",0 100 | :KonfName s 17 101 | 102 | :Driver1541Space 103 | :Driver1571Space = Driver1541Space+DRIVER_LEN 104 | :Driver1581Space = Driver1571Space+DRIVER_LEN 105 | 106 | -------------------------------------------------------------------------------- /64_de/Protect/Sources/SetBAM.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "SetBAM" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"SetBAM",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr SetBAM 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Systemdiskette einlegen",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :SetBAM LoadB r6L,20 103 | LoadB r6H,0 104 | ::next PushW r6 105 | jsr :alloc 106 | PopW r6 107 | inc r6H 108 | lda r6H 109 | cmp #19 110 | bcc :next 111 | jmp PutDirHead 112 | ::alloc ldy curType 113 | and #%0000 1111 114 | cmp #2 115 | bcc :alloc1541 116 | jmp AllocateBlock 117 | ::alloc1541 jsr FindBAMBit 118 | beq :10 119 | MoveW r6,r3 120 | jsr SetNextFree 121 | ::10 rts 122 | -------------------------------------------------------------------------------- /64_en/Protect/Sources/SetBAM.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "SetBAM" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"SetBAM",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr SetBAM 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Systemdiskette einlegen",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :SetBAM LoadB r6L,20 103 | LoadB r6H,0 104 | ::next PushW r6 105 | jsr :alloc 106 | PopW r6 107 | inc r6H 108 | lda r6H 109 | cmp #19 110 | bcc :next 111 | jmp PutDirHead 112 | ::alloc ldy curType 113 | and #%0000 1111 114 | cmp #2 115 | bcc :alloc1541 116 | jmp AllocateBlock 117 | ::alloc1541 jsr FindBAMBit 118 | beq :10 119 | MoveW r6,r3 120 | jsr SetNextFree 121 | ::10 rts 122 | -------------------------------------------------------------------------------- /128_de/Protect/Sources/SetBAM.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "SetBAM" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"SetBAM",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr SetBAM 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Systemdiskette einlegen",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :SetBAM LoadB r6L,20 103 | LoadB r6H,0 104 | ::next PushW r6 105 | jsr :alloc 106 | PopW r6 107 | inc r6H 108 | lda r6H 109 | cmp #19 110 | bcc :next 111 | jmp PutDirHead 112 | ::alloc ldy curType 113 | and #%0000 1111 114 | cmp #2 115 | bcc :alloc1541 116 | jmp AllocateBlock 117 | ::alloc1541 jsr FindBAMBit 118 | beq :10 119 | MoveW r6,r3 120 | jsr SetNextFree 121 | ::10 rts 122 | -------------------------------------------------------------------------------- /128_en/Protect/Sources/SetBAM.s: -------------------------------------------------------------------------------- 1 | if .p 2 | t "TopSym" 3 | t "TopMac(a)" 4 | endif 5 | n "SetBAM" 6 | :Start jsr i_GraphicsString 7 | NewPattern 2 8 | MovePenTo 0,0 9 | RectangleTo 319,199 10 | NewPattern 0 11 | MovePenTo 64,14 12 | RectangleTo 255,28 13 | FrameRecTo 64,14 14 | EscPutstring 68,25 15 | b PLAINTEXT,OUTLINEON,"SetBAM",PLAINTEXT," v. V. Goehrke",0 16 | lda driveType 17 | beq :next 18 | and #%1000 1111 19 | cmp #3 20 | bcs :next 21 | lda #8 22 | jsr SetDevice 23 | jmp SetCopy 24 | ::next lda driveType+1 25 | beq :next2 26 | and #%1000 1111 27 | cmp #3 28 | bcs :next2 29 | lda #9 30 | jsr SetDevice 31 | jmp SetCopy 32 | ::next2 LoadW r0,:db 33 | jsr DoDlgBox 34 | jmp EnterDeskTop 35 | ::db b $81 36 | b DBTXTSTR,8,$10 37 | w :t1 38 | b DBTXTSTR,8,$20 39 | w :t2 40 | b OK,1,72 41 | b 0 42 | ::t1 b PLAINTEXT,"Auf Lfwerk 8 oder 9 keine",0 43 | ::t2 b "1541 oder 1571 vorhanden.",0 44 | 45 | :SetCopy jsr OpenDisk 46 | stx Fehler 47 | lda curDrive 48 | clc 49 | adc #"A"-8 50 | sta :lfwerk 51 | MoveW r5,r0 52 | LoadW r1,:name 53 | LoadW r2,16 54 | jsr MoveData 55 | ldy #15 56 | ::loop lda :name,y 57 | cmp #$a0 58 | bne :noa0 59 | lda #0 60 | sta :name,y 61 | ::noa0 dey 62 | bpl :loop 63 | ::dodb LoadW r0,:db 64 | jsr DoDlgBox 65 | lda r0L 66 | cmp #CANCEL 67 | beq :end 68 | lda r0L 69 | cmp #DISK 70 | beq SetCopy 71 | jsr OpenDisk 72 | jsr SetBAM 73 | stx Fehler 74 | jmp :dodb 75 | ::end jmp EnterDeskTop 76 | ::db b $81 77 | b DBTXTSTR,8,$10 78 | w :t1 79 | b DBTXTSTR,8,$20 80 | w :t2 81 | b DBTXTSTR,8,$30 82 | w :t3 83 | b DB_USR_ROUT 84 | w :usrrout 85 | b OK,1,72 86 | b DISK,9,72 87 | b CANCEL,17,72 88 | b 0 89 | ::t1 b PLAINTEXT,"Systemdiskette einlegen",0 90 | ::t2 b "Disk " 91 | ::lfwerk b "X:" 92 | ::name s 17 93 | ::t3 b "Fehlernummer:",0 94 | ::usrrout MoveB Fehler,r0L 95 | LoadB r0H,0 96 | LoadW r11,140 97 | LoadB r1H,32+$30 98 | lda #$c0 99 | jmp PutDecimal 100 | :Fehler b 0 101 | 102 | :SetBAM LoadB r6L,20 103 | LoadB r6H,0 104 | ::next PushW r6 105 | jsr :alloc 106 | PopW r6 107 | inc r6H 108 | lda r6H 109 | cmp #19 110 | bcc :next 111 | jmp PutDirHead 112 | ::alloc ldy curType 113 | and #%0000 1111 114 | cmp #2 115 | bcc :alloc1541 116 | jmp AllocateBlock 117 | ::alloc1541 jsr FindBAMBit 118 | beq :10 119 | MoveW r6,r3 120 | jsr SetNextFree 121 | ::10 rts 122 | -------------------------------------------------------------------------------- /64_en/WinInclude/InvFrame.s: -------------------------------------------------------------------------------- 1 | .InvFrame 2 | ; Parameter: r2-r4 Akku: Muster 3 | ; Zur}ck: ---- 4 | ; Zerst|rt: r0,r1,r5-r7,a,x,y 5 | ::64n jsr VLine 6 | lda #%10101010 7 | :InvHLine sta r1L 8 | lda r3L 9 | and #%1111 1000 10 | clc 11 | adc #8 12 | sta r0L 13 | lda r3H 14 | adc #00 15 | sta r0H 16 | lda r4L 17 | and #%1111 1000 18 | sec 19 | sbc r0L 20 | sta r1H 21 | lda r4H 22 | sbc r0H 23 | 24 | ldy #3 25 | ::10 lsr 26 | ror r1H 27 | dey 28 | bne :10 29 | 30 | ldx r2L 31 | jsr :15 32 | ldx r2H 33 | ::15 jsr GetScanLine 34 | lda r5L 35 | clc 36 | adc r0L 37 | sta r5L 38 | lda r5H 39 | adc r0H 40 | sta r5H 41 | lda r5L 42 | sec 43 | sbc #8 44 | sta r6L 45 | lda r5H 46 | sbc #0 47 | sta r6H 48 | ldx r1H 49 | ldy #0 50 | ::20 lda (r5),y 51 | eor r1L 52 | sta (r5),y 53 | lda r5L 54 | clc 55 | adc #8 56 | sta r5L 57 | bcc :22 58 | inc r5H 59 | ::22 dex 60 | bne :20 61 | 62 | ldy #0 63 | lda r3L 64 | and #%00000111 65 | tax 66 | lda :maskTab,x 67 | and r1L 68 | eor (r6),y 69 | sta (r6),y 70 | ::129 lda r4L 71 | and #%00000111 72 | tax 73 | lda :maskTab,x 74 | eor #$ff 75 | and r1L 76 | eor (r5),y 77 | sta (r5),y 78 | rts 79 | ::maskTab b %11111111,%01111111,%00111111,%00011111 80 | b %00001111,%00000011,%00000001,%00000000 81 | 82 | :VLine ldy #1 83 | ::05 lda r2L,y 84 | and #%1111 1000 85 | sta r0L,y 86 | dey 87 | bpl :05 88 | ldx r0L 89 | jsr GetScanLine ; Card 90 | lda r3L 91 | ldy r3H 92 | jsr :07 93 | lda r4L 94 | ldy r4H 95 | ::07 tax 96 | and #%11111000 97 | clc 98 | adc r5L 99 | sta r6L 100 | tya 101 | adc r5H 102 | sta r6H 103 | txa 104 | and #7 105 | tax 106 | lda Masken,x 107 | sta r1L 108 | ; Einzeichnen des oberen Restes: 109 | lda r2L 110 | and #7 111 | tay 112 | ::10 jsr :110 113 | tya 114 | sec 115 | sbc #8 116 | ::20 sta r1H ; AnfangsPkt (gerade ung.) 117 | ; Mitte: 118 | lda r0H 119 | sec 120 | sbc r0L 121 | lsr 122 | lsr 123 | lsr 124 | tax ; x+1 Durchl{ufe 125 | dex 126 | beq :50 127 | ::40 ldy r1H 128 | ::30 jsr :110 129 | dex 130 | bne :40 131 | ; Rest Unten: 132 | ::50 lda r2H 133 | and #7 134 | cmp r1H 135 | blt :60 136 | sta r7L 137 | ldy r1H 138 | ::55 jsr :100 139 | cpy r7L 140 | ble :55 141 | ::60 rts 142 | 143 | ::100 lda (r6L),y 144 | eor r1L 145 | sta (r6L),y 146 | iny 147 | iny 148 | rts 149 | ::110 jsr :100 150 | cpy #8 151 | blt :110 152 | AddVW 320,r6 153 | rts 154 | 155 | :Masken b 128,64,32,16,8,4,2,1 156 | -------------------------------------------------------------------------------- /64_en/WinInclude/InvFrame.old.s: -------------------------------------------------------------------------------- 1 | :InvFrame 2 | ; Parameter: r2-r4 Akku: Muster 3 | ; Zur}ck: ---- 4 | ; Zerst|rt: r0,r1,r5-r7,a,x,y 5 | jsr VLine 6 | lda #%10101010 7 | :InvHLine sta r1L 8 | lda r3L 9 | and #%1111 1000 10 | clc 11 | adc #8 12 | sta r0L 13 | lda r3H 14 | adc #00 15 | sta r0H 16 | lda r4L 17 | and #%1111 1000 18 | sec 19 | sbc r0L 20 | sta r1H 21 | lda r4H 22 | sbc r0H 23 | 24 | ldy #3 25 | ::10 lsr 26 | ror r1H 27 | dey 28 | bne :10 29 | 30 | ldx r2L 31 | jsr :15 32 | 33 | ldx r2H 34 | 35 | ::15 jsr GetScanLine 36 | lda r5L 37 | clc 38 | adc r0L 39 | sta r5L 40 | lda r5H 41 | adc r0H 42 | sta r5H 43 | 44 | lda r5L 45 | sec 46 | sbc #8 47 | sta r6L 48 | lda r5H 49 | sbc #0 50 | sta r6H 51 | ldx r1H 52 | ldy #0 53 | ::20 lda (r5),y 54 | eor r1L 55 | sta (r5),y 56 | lda r5L 57 | clc 58 | adc #8 59 | sta r5L 60 | bcc :22 61 | inc r5H 62 | ::22 dex 63 | bne :20 64 | 65 | ldy #0 66 | lda r3L 67 | and #%00000111 68 | tax 69 | lda :maskTab,x 70 | and r1L 71 | eor (r6),y 72 | sta (r6),y 73 | lda r4L 74 | and #%00000111 75 | tax 76 | lda :maskTab,x 77 | eor #$ff 78 | and r1L 79 | eor (r5),y 80 | sta (r5),y 81 | rts 82 | ::maskTab b %11111111,%01111111,%00111111,%00011111 83 | b %00001111,%00000011,%00000001,%00000000 84 | 85 | :VLine ldy #1 86 | ::05 lda r2L,y 87 | and #%1111 1000 88 | sta r0L,y 89 | dey 90 | bpl :05 91 | ldx r0L 92 | jsr GetScanLine ; Card 93 | lda r3L 94 | ldy r3H 95 | jsr :07 96 | lda r4L 97 | ldy r4H 98 | ::07 tax 99 | and #%11111000 100 | clc 101 | adc r5L 102 | sta r6L 103 | tya 104 | adc r5H 105 | sta r6H 106 | txa 107 | and #7 108 | tax 109 | lda Masken,x 110 | sta r1L 111 | ; Einzeichnen des oberen Restes: 112 | lda r2L 113 | and #7 114 | tay 115 | ::10 jsr :110 116 | tya 117 | sec 118 | sbc #8 119 | ::20 sta r1H ; AnfangsPkt (gerade ung.) 120 | ; Mitte: 121 | lda r0H 122 | sec 123 | sbc r0L 124 | lsr 125 | lsr 126 | lsr 127 | tax ; x+1 Durchl{ufe 128 | dex 129 | beq :50 130 | ::40 ldy r1H 131 | ::30 jsr :110 132 | dex 133 | bne :40 134 | ; Rest Unten: 135 | ::50 lda r2H 136 | and #7 137 | cmp r1H 138 | blt :60 139 | sta r7L 140 | ldy r1H 141 | ::55 jsr :100 142 | cpy r7L 143 | ble :55 144 | ::60 rts 145 | 146 | ::100 lda (r6L),y 147 | eor r1L 148 | sta (r6L),y 149 | iny 150 | iny 151 | rts 152 | ::110 jsr :100 153 | cpy #8 154 | blt :110 155 | AddVW 320,r6 156 | rts 157 | 158 | :Masken b 128,64,32,16,8,4,2,1 159 | -------------------------------------------------------------------------------- /128_de/DeskInclude/DosFormat.s: -------------------------------------------------------------------------------- 1 | ;DosFormat (27.06.1991) 2 | ;formatiert die Diskette im aktuellen Laufwerk 3 | ;Das aktuelle Laufwerk darf keine RAM sein !!! 4 | ; Par: r0: Zeiger auf Name als Geos-String 5 | ; r1L: Flag bei 1571-Floppies 6 | ; = 0 -> ein- sonst doppelseitig formatieren 7 | ;Des: r0-r15 (Durch InitForIO und Kernalroutinen ?) 8 | ; a0,a1,a,x,y 9 | if .p 10 | :WaitTime = $2000 11 | :SetFilePar = $ffba 12 | :SetFileName = $ffbd 13 | :Open = $ffc0 14 | :Close = $ffc3 15 | :Listen = $ffb1 16 | :SecListen = $ff93 17 | :UnListen = $ffae 18 | :Talk = $ffb4 19 | :SecTalk = $ff96 20 | :UnTalk = $ffab 21 | :IECIn = $ffa5 22 | :IECOut = $ffa8 23 | endif 24 | 25 | :DosFormat PushW r0 26 | MoveB r1L,a1L 27 | jsr PurgeTurbo 28 | jsr InitForIO 29 | lda #$01 ;Open 30 | ldx curDrive 31 | ldy #$6f 32 | jsr SetFilePar 33 | lda #$00 34 | jsr SetFileName 35 | jsr Open 36 | lda curDrive 37 | jsr Listen 38 | lda #$6f 39 | jsr SecListen 40 | lda curType 41 | and #DRIVE_MASK 42 | cmp #02 43 | bne :10 44 | LoadW a0,:u0mx 45 | LoadB :u0mx+4,"0" 46 | lda a1L 47 | beq :20 48 | LoadB :u0mx+4,"1" 49 | ::20 jsr SendString 50 | ::10 lda #"N" 51 | jsr IECOut 52 | lda #"0" 53 | jsr IECOut 54 | lda #":" 55 | jsr IECOut 56 | PopW a0 57 | jsr SendString 58 | LoadW a0,:fm 59 | jsr SendString 60 | lda curType 61 | and #DRIVE_MASK 62 | cmp #2 63 | bne :30 64 | lda a1L 65 | bne :30 66 | LoadW a0,:u0mx 67 | LoadB :u0mx+4,"1" 68 | jsr SendString 69 | ::30 lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jsr OpenDisk 108 | txa 109 | bne :err 110 | jmp SetGEOSDisk 111 | ::err rts 112 | 113 | ::fm b ",TD",$0d,0 114 | ::u0mx b "U0>MX",$0d,"I",$0d,0 115 | :SendString ldy #0 116 | ::10 lda (a0),y 117 | beq :20 118 | sty a1H 119 | pha 120 | jsr IECOut 121 | pla 122 | cmp #$0d 123 | bne :nocr 124 | lda curDrive 125 | jsr UnListen 126 | lda curDrive 127 | jsr Listen 128 | lda #$6f 129 | jsr SecListen 130 | ::nocr ldy a1H 131 | iny 132 | bne :10 133 | ::20 rts 134 | -------------------------------------------------------------------------------- /128_en/DeskInclude/DosFormat.s: -------------------------------------------------------------------------------- 1 | ;DosFormat (27.06.1991) 2 | ;formatiert die Diskette im aktuellen Laufwerk 3 | ;Das aktuelle Laufwerk darf keine RAM sein !!! 4 | ; Par: r0: Zeiger auf Name als Geos-String 5 | ; r1L: Flag bei 1571-Floppies 6 | ; = 0 -> ein- sonst doppelseitig formatieren 7 | ;Des: r0-r15 (Durch InitForIO und Kernalroutinen ?) 8 | ; a0,a1,a,x,y 9 | if .p 10 | :WaitTime = $2000 11 | :SetFilePar = $ffba 12 | :SetFileName = $ffbd 13 | :Open = $ffc0 14 | :Close = $ffc3 15 | :Listen = $ffb1 16 | :SecListen = $ff93 17 | :UnListen = $ffae 18 | :Talk = $ffb4 19 | :SecTalk = $ff96 20 | :UnTalk = $ffab 21 | :IECIn = $ffa5 22 | :IECOut = $ffa8 23 | endif 24 | 25 | :DosFormat PushW r0 26 | MoveB r1L,a1L 27 | jsr PurgeTurbo 28 | jsr InitForIO 29 | lda #$01 ;Open 30 | ldx curDrive 31 | ldy #$6f 32 | jsr SetFilePar 33 | lda #$00 34 | jsr SetFileName 35 | jsr Open 36 | lda curDrive 37 | jsr Listen 38 | lda #$6f 39 | jsr SecListen 40 | lda curType 41 | and #DRIVE_MASK 42 | cmp #02 43 | bne :10 44 | LoadW a0,:u0mx 45 | LoadB :u0mx+4,"0" 46 | lda a1L 47 | beq :20 48 | LoadB :u0mx+4,"1" 49 | ::20 jsr SendString 50 | ::10 lda #"N" 51 | jsr IECOut 52 | lda #"0" 53 | jsr IECOut 54 | lda #":" 55 | jsr IECOut 56 | PopW a0 57 | jsr SendString 58 | LoadW a0,:fm 59 | jsr SendString 60 | lda curType 61 | and #DRIVE_MASK 62 | cmp #2 63 | bne :30 64 | lda a1L 65 | bne :30 66 | LoadW a0,:u0mx 67 | LoadB :u0mx+4,"1" 68 | jsr SendString 69 | ::30 lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jsr OpenDisk 108 | txa 109 | bne :err 110 | jmp SetGEOSDisk 111 | ::err rts 112 | 113 | ::fm b ",TD",$0d,0 114 | ::u0mx b "U0>MX",$0d,"I",$0d,0 115 | :SendString ldy #0 116 | ::10 lda (a0),y 117 | beq :20 118 | sty a1H 119 | pha 120 | jsr IECOut 121 | pla 122 | cmp #$0d 123 | bne :nocr 124 | lda curDrive 125 | jsr UnListen 126 | lda curDrive 127 | jsr Listen 128 | lda #$6f 129 | jsr SecListen 130 | ::nocr ldy a1H 131 | iny 132 | bne :10 133 | ::20 rts 134 | -------------------------------------------------------------------------------- /64_de/DeskInclude/DosFormat.s: -------------------------------------------------------------------------------- 1 | ;DosFormat (27.06.1991) 2 | ;formatiert die Diskette im aktuellen Laufwerk 3 | ;Das aktuelle Laufwerk darf keine RAM sein !!! 4 | ; Par: r0: Zeiger auf Name als Geos-String 5 | ; r1L: Flag bei 1571-Floppies 6 | ; = 0 -> ein- sonst doppelseitig formatieren 7 | ;Des: r0-r15 (Durch InitForIO und Kernalroutinen ?) 8 | ; a0,a1,a,x,y 9 | if .p 10 | :WaitTime = $2000 11 | :SetFilePar = $ffba 12 | :SetFileName = $ffbd 13 | :Open = $ffc0 14 | :Close = $ffc3 15 | :Listen = $ffb1 16 | :SecListen = $ff93 17 | :UnListen = $ffae 18 | :Talk = $ffb4 19 | :SecTalk = $ff96 20 | :UnTalk = $ffab 21 | :IECIn = $ffa5 22 | :IECOut = $ffa8 23 | endif 24 | 25 | :DosFormat PushW r0 26 | MoveB r1L,a1L 27 | jsr PurgeTurbo 28 | jsr InitForIO 29 | lda #$01 ;Open 30 | ldx curDrive 31 | ldy #$6f 32 | jsr SetFilePar 33 | lda #$00 34 | jsr SetFileName 35 | jsr Open 36 | lda curDrive 37 | jsr Listen 38 | lda #$6f 39 | jsr SecListen 40 | lda curType 41 | and #DRIVE_MASK 42 | cmp #02 43 | bne :10 44 | LoadW a0,:u0mx 45 | LoadB :u0mx+4,"0" 46 | lda a1L 47 | beq :20 48 | LoadB :u0mx+4,"1" 49 | ::20 jsr SendString 50 | ::10 lda #"N" 51 | jsr IECOut 52 | lda #"0" 53 | jsr IECOut 54 | lda #":" 55 | jsr IECOut 56 | PopW a0 57 | jsr SendString 58 | LoadW a0,:fm 59 | jsr SendString 60 | lda curType 61 | and #DRIVE_MASK 62 | cmp #2 63 | bne :30 64 | lda a1L 65 | bne :30 66 | LoadW a0,:u0mx 67 | LoadB :u0mx+4,"1" 68 | jsr SendString 69 | ::30 lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jsr OpenDisk 108 | txa 109 | bne :err 110 | jmp SetGEOSDisk 111 | ::err rts 112 | 113 | ::fm b ",TD",$0d,0 114 | ::u0mx b "U0>MX",$0d,"I",$0d,0 115 | :SendString ldy #0 116 | ::10 lda (a0),y 117 | beq :20 118 | sty a1H 119 | pha 120 | jsr IECOut 121 | pla 122 | cmp #$0d 123 | bne :nocr 124 | lda curDrive 125 | jsr UnListen 126 | lda curDrive 127 | jsr Listen 128 | lda #$6f 129 | jsr SecListen 130 | ::nocr ldy a1H 131 | iny 132 | bne :10 133 | ::20 rts 134 | -------------------------------------------------------------------------------- /64_en/DeskInclude/DosFormat.s: -------------------------------------------------------------------------------- 1 | ;DosFormat (27.06.1991) 2 | ;formatiert die Diskette im aktuellen Laufwerk 3 | ;Das aktuelle Laufwerk darf keine RAM sein !!! 4 | ; Par: r0: Zeiger auf Name als Geos-String 5 | ; r1L: Flag bei 1571-Floppies 6 | ; = 0 -> ein- sonst doppelseitig formatieren 7 | ;Des: r0-r15 (Durch InitForIO und Kernalroutinen ?) 8 | ; a0,a1,a,x,y 9 | if .p 10 | :WaitTime = $2000 11 | :SetFilePar = $ffba 12 | :SetFileName = $ffbd 13 | :Open = $ffc0 14 | :Close = $ffc3 15 | :Listen = $ffb1 16 | :SecListen = $ff93 17 | :UnListen = $ffae 18 | :Talk = $ffb4 19 | :SecTalk = $ff96 20 | :UnTalk = $ffab 21 | :IECIn = $ffa5 22 | :IECOut = $ffa8 23 | endif 24 | 25 | :DosFormat PushW r0 26 | MoveB r1L,a1L 27 | jsr PurgeTurbo 28 | jsr InitForIO 29 | lda #$01 ;Open 30 | ldx curDrive 31 | ldy #$6f 32 | jsr SetFilePar 33 | lda #$00 34 | jsr SetFileName 35 | jsr Open 36 | lda curDrive 37 | jsr Listen 38 | lda #$6f 39 | jsr SecListen 40 | lda curType 41 | and #DRIVE_MASK 42 | cmp #02 43 | bne :10 44 | LoadW a0,:u0mx 45 | LoadB :u0mx+4,"0" 46 | lda a1L 47 | beq :20 48 | LoadB :u0mx+4,"1" 49 | ::20 jsr SendString 50 | ::10 lda #"N" 51 | jsr IECOut 52 | lda #"0" 53 | jsr IECOut 54 | lda #":" 55 | jsr IECOut 56 | PopW a0 57 | jsr SendString 58 | LoadW a0,:fm 59 | jsr SendString 60 | lda curType 61 | and #DRIVE_MASK 62 | cmp #2 63 | bne :30 64 | lda a1L 65 | bne :30 66 | LoadW a0,:u0mx 67 | LoadB :u0mx+4,"1" 68 | jsr SendString 69 | ::30 lda curDrive 70 | jsr UnListen 71 | 72 | LoadB $90,0 73 | lda curDrive 74 | jsr Talk 75 | lda #$6f 76 | jsr SecTalk 77 | jsr IECIn 78 | sec 79 | sbc #$30 80 | asl 81 | sta a1H 82 | asl 83 | asl 84 | clc 85 | adc a1H 86 | sta a1H 87 | jsr IECIn 88 | sec 89 | sbc #$30 90 | clc 91 | adc a1H 92 | sta a1H 93 | ::40 jsr IECIn 94 | bit $90 95 | bvc :40 96 | lda curDrive 97 | jsr UnTalk 98 | lda #$01 99 | jsr Close 100 | jsr DoneWithIO 101 | ldx a1H 102 | bne :err 103 | LoadW r0,WaitTime 104 | ::waitloop ldx #r0L 105 | jsr Ddec 106 | bne :waitloop 107 | jsr OpenDisk 108 | txa 109 | bne :err 110 | jmp SetGEOSDisk 111 | ::err rts 112 | 113 | ::fm b ",TD",$0d,0 114 | ::u0mx b "U0>MX",$0d,"I",$0d,0 115 | :SendString ldy #0 116 | ::10 lda (a0),y 117 | beq :20 118 | sty a1H 119 | pha 120 | jsr IECOut 121 | pla 122 | cmp #$0d 123 | bne :nocr 124 | lda curDrive 125 | jsr UnListen 126 | lda curDrive 127 | jsr Listen 128 | lda #$6f 129 | jsr SecListen 130 | ::nocr ldy a1H 131 | iny 132 | bne :10 133 | ::20 rts 134 | -------------------------------------------------------------------------------- /64_en/Main/DeskTop.sub2.s: -------------------------------------------------------------------------------- 1 | n "DeskMod B" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | ; jmp SelectPage 13 | nop 14 | nop 15 | nop 16 | jmp EmptyAllDirs 17 | jmp DispInfo 18 | jmp Rename 19 | jmp Duplicate 20 | ; jmp SelectAll 21 | 22 | :DispInfo LoadW r0,:db 23 | jmp NewDoDlgBox 24 | ::db b $01 25 | b 32,138 26 | w 54,265 27 | b $0b,$10,$10 28 | w :t1 29 | b $0b,$10,$20 30 | w :t2 31 | b $0b,$10,$30 32 | w :t3 33 | b $0b,$10,$30+10 34 | w :t4 35 | b $0b,$10,$30+20 36 | w :t5 37 | b $0b,$0a,$5e 38 | w :t7 39 | b $0e,NULL 40 | ::t1 b BOLDON,"TopDesk",PLAINTEXT," Version 1.2",0 41 | ::t2 b "written by",BOLDON,0 42 | ::t3 b "Walter Knupe",0 43 | ::t4 b "H.J. Ciprina",0 44 | ::t5 b "Volker Goehrke",PLAINTEXT,0 45 | ::t7 b "(C) 1991 by GEOS-USER-CLUB, GbR",0 46 | 47 | 48 | :EmptyAllDirs rts 49 | if 0 50 | jsr GotoFirstMenu 51 | jsr GetAktlDisk 52 | ::05 lda curDirHead 53 | bne :10 54 | jsr GetDirHead 55 | jmp ReLoadAll 56 | ::10 sta r1L 57 | MoveB curDirHead+1,r1H 58 | LoadW r4,$8000 59 | jsr GetBlock 60 | lda #00 61 | sta $8020 62 | ldy #$21 63 | ::20 lda #00 64 | sta $8000,y 65 | tya 66 | clc 67 | adc #$20 68 | bcs :30 69 | tay 70 | bne :20 71 | ::30 jsr PutBlock 72 | MoveW $8000,curDirHead 73 | jmp :05 74 | endif 75 | 76 | :RenameFlag b 0 77 | :Duplicate ldx MultiCount 78 | dex 79 | bpl :geht 80 | rts 81 | ::geht lda #$ff 82 | bne RenameDupl 83 | :Rename ldx MultiCount 84 | dex 85 | bpl :geht 86 | rts 87 | ::geht lda #0 88 | :RenameDupl sta RenameFlag 89 | jsr GetAktlDisk 90 | tax 91 | beq :05 92 | jsr ClearMultiFile2 93 | cpx #12 94 | beq :15 95 | jmp FehlerAusgabe 96 | ::05 LoadW r2,MultiFileTab 97 | ::10 jsr GetMark 98 | tax 99 | bmi :20 100 | jsr GetFileName 101 | jsr MyRename 102 | bcc :10 103 | ::15 rts 104 | ::20 LoadB DialBoxFlag,0 105 | jmp RecoverActiveWindow 106 | 107 | :MyRename lda RenameFlag 108 | beq :05 109 | LoadW r6,Name 110 | jsr FindFile 111 | txa 112 | bne :err 113 | lda $8400+22 114 | cmp #11 ; Directory 115 | bne :05 116 | ldx #10 117 | bne :err 118 | ::05 LoadB :t2,0 119 | ldy #0 120 | ::10 lda Name,y 121 | sta Name2,y 122 | beq :20 123 | iny 124 | bne :10 125 | ::20 LoadB DialBoxFlag,2 126 | LoadW a1,Name2 127 | LoadW r0,:db 128 | jsr NewDoDlgBox 129 | lda r0L 130 | cmp #2 131 | bne :22 132 | clc 133 | rts 134 | ::22 LoadW r6,Name2 135 | jsr FindFile 136 | txa 137 | beq :schonda 138 | cpx #5 139 | beq :geht 140 | ::err jsr FehlerAusgabe 141 | sec 142 | rts 143 | ::schonda LoadB :t2,BOLDON 144 | bne :20 145 | ::geht lda RenameFlag 146 | beq :25 147 | LoadW r12,Name ; Filename 148 | LoadW r10,DiskName+2 ; SourceDisk (ohne 'x:') 149 | MoveW r10,r11 150 | LoadW r13,Name2 ; NewFilename 151 | ldx messageBuffer+1 152 | lda aktl_Sub,x 153 | sta DestinationDir ; Ziel-Dir setzen 154 | PushB CopyMemLow 155 | LoadB CopyMemLow,DuplCopyMem 156 | jsr CopyFile 157 | PopB CopyMemLow 158 | txa 159 | bne :err 160 | clc 161 | rts 162 | ::25 LoadW r0,Name2 163 | LoadW r6,Name 164 | jsr RenameFile 165 | txa 166 | beq :30 167 | jmp :err 168 | ::30 clc 169 | rts 170 | ::db b $81 171 | b $0b,$10,$10 172 | w :t2 173 | b $0b,$10,$20 174 | w :t1 175 | b $0d,$10,$35,a1,16 176 | b $02,17,72 177 | b NULL 178 | ::t1 b "Enter new file name:",0 179 | ::t2 b 0,"Name already in use!",PLAINTEXT,0 180 | 181 | :ModEnde 182 | :DuplCopyMem = >ModEnde+$100 183 | -------------------------------------------------------------------------------- /64_de/Main/DeskTop.sub2.s: -------------------------------------------------------------------------------- 1 | n "DeskMod B" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | ; jmp SelectPage 13 | nop 14 | nop 15 | nop 16 | jmp EmptyAllDirs 17 | jmp DispInfo 18 | jmp Rename 19 | jmp Duplicate 20 | ; jmp SelectAll 21 | 22 | :DispInfo LoadW r0,:db 23 | jmp NewDoDlgBox 24 | ::db b $01 25 | b 32,138 26 | w 54,265 27 | b $0b,$10,$10 28 | w :t1 29 | b $0b,$10,$20 30 | w :t2 31 | b $0b,$10,$30 32 | w :t3 33 | b $0b,$10,$30+10 34 | w :t4 35 | b $0b,$10,$30+20 36 | w :t5 37 | b $0b,$0a,$5e 38 | w :t7 39 | b $0e,NULL 40 | ::t1 b BOLDON,"TopDesk",PLAINTEXT," Version 1.2",0 41 | ::t2 b "geschrieben von",BOLDON,0 42 | ::t3 b "Walter Knupe",0 43 | ::t4 b "H.J. Ciprina",0 44 | ::t5 b "Volker Goehrke",PLAINTEXT,0 45 | ::t7 b "(C) 1991 by GEOS-USER-CLUB, GbR",0 46 | 47 | 48 | :EmptyAllDirs rts 49 | if 0 50 | jsr GotoFirstMenu 51 | jsr GetAktlDisk 52 | ::05 lda curDirHead 53 | bne :10 54 | jsr GetDirHead 55 | jmp ReLoadAll 56 | ::10 sta r1L 57 | MoveB curDirHead+1,r1H 58 | LoadW r4,$8000 59 | jsr GetBlock 60 | lda #00 61 | sta $8020 62 | ldy #$21 63 | ::20 lda #00 64 | sta $8000,y 65 | tya 66 | clc 67 | adc #$20 68 | bcs :30 69 | tay 70 | bne :20 71 | ::30 jsr PutBlock 72 | MoveW $8000,curDirHead 73 | jmp :05 74 | endif 75 | 76 | :RenameFlag b 0 77 | :Duplicate ldx MultiCount 78 | dex 79 | bpl :geht 80 | rts 81 | ::geht lda #$ff 82 | bne RenameDupl 83 | :Rename ldx MultiCount 84 | dex 85 | bpl :geht 86 | rts 87 | ::geht lda #0 88 | :RenameDupl sta RenameFlag 89 | jsr GetAktlDisk 90 | tax 91 | beq :05 92 | jsr ClearMultiFile2 93 | cpx #12 94 | beq :15 95 | jmp FehlerAusgabe 96 | ::05 LoadW r2,MultiFileTab 97 | ::10 jsr GetMark 98 | tax 99 | bmi :20 100 | jsr GetFileName 101 | jsr MyRename 102 | bcc :10 103 | ::15 rts 104 | ::20 LoadB DialBoxFlag,0 105 | jmp RecoverActiveWindow 106 | 107 | :MyRename lda RenameFlag 108 | beq :05 109 | LoadW r6,Name 110 | jsr FindFile 111 | txa 112 | bne :err 113 | lda $8400+22 114 | cmp #11 ; Directory 115 | bne :05 116 | ldx #10 117 | bne :err 118 | ::05 LoadB :t2,0 119 | ldy #0 120 | ::10 lda Name,y 121 | sta Name2,y 122 | beq :20 123 | iny 124 | bne :10 125 | ::20 LoadB DialBoxFlag,2 126 | LoadW a1,Name2 127 | LoadW r0,:db 128 | jsr NewDoDlgBox 129 | lda r0L 130 | cmp #2 131 | bne :22 132 | clc 133 | rts 134 | ::22 LoadW r6,Name2 135 | jsr FindFile 136 | txa 137 | beq :schonda 138 | cpx #5 139 | beq :geht 140 | ::err jsr FehlerAusgabe 141 | sec 142 | rts 143 | ::schonda LoadB :t2,BOLDON 144 | bne :20 145 | ::geht lda RenameFlag 146 | beq :25 147 | LoadW r12,Name ; Filename 148 | LoadW r10,DiskName+2 ; SourceDisk (ohne 'x:') 149 | MoveW r10,r11 150 | LoadW r13,Name2 ; NewFilename 151 | ldx messageBuffer+1 152 | lda aktl_Sub,x 153 | sta DestinationDir ; Ziel-Dir setzen 154 | PushB CopyMemLow 155 | LoadB CopyMemLow,DuplCopyMem 156 | jsr CopyFile 157 | PopB CopyMemLow 158 | txa 159 | bne :err 160 | clc 161 | rts 162 | ::25 LoadW r0,Name2 163 | LoadW r6,Name 164 | jsr RenameFile 165 | txa 166 | beq :30 167 | jmp :err 168 | ::30 clc 169 | rts 170 | ::db b $81 171 | b $0b,$10,$10 172 | w :t2 173 | b $0b,$10,$20 174 | w :t1 175 | b $0d,$10,$35,a1,16 176 | b $02,17,72 177 | b NULL 178 | ::t1 b "Neuen Filenamen eingeben:",0 179 | ::t2 b 0,"Name schon vergeben!",PLAINTEXT,0 180 | 181 | :ModEnde 182 | :DuplCopyMem = >ModEnde+$100 183 | -------------------------------------------------------------------------------- /128_en/Main/DeskTop.sub2.s: -------------------------------------------------------------------------------- 1 | n "DeskMod B" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | ; jmp SelectPage 13 | nop 14 | nop 15 | nop 16 | jmp EmptyAllDirs 17 | jmp DispInfo 18 | jmp Rename 19 | jmp Duplicate 20 | ; jmp SelectAll 21 | 22 | :DispInfo LoadW r0,:db 23 | jmp NewDoDlgBox 24 | ::db b $01 25 | b 32,138 26 | w 54+DOUBLE_W,265+DOUBLE_W 27 | b $0b,$10,$10 28 | w :t1 29 | b $0b,$10,$20 30 | w :t2 31 | b $0b,$10,$30 32 | w :t3 33 | b $0b,$10,$30+10 34 | w :t4 35 | b $0b,$10,$30+20 36 | w :t5 37 | b $0b,$0a,$5e 38 | w :t7 39 | b $0e,NULL 40 | ::t1 b BOLDON,"TopDesk",PLAINTEXT," Version 1.3",0 41 | ::t2 b "written by",BOLDON,0 42 | ::t3 b "Walter Knupe",0 43 | ::t4 b "H.J. Ciprina",0 44 | ::t5 b "Volker Goehrke",PLAINTEXT,0 45 | ::t7 b "(C) 1991 by GEOS-USER-CLUB, GbR",0 46 | 47 | 48 | :EmptyAllDirs rts 49 | if 0 50 | jsr GotoFirstMenu 51 | jsr GetAktlDisk 52 | ::05 lda curDirHead 53 | bne :10 54 | jsr GetDirHead 55 | jmp ReLoadAll 56 | ::10 sta r1L 57 | MoveB curDirHead+1,r1H 58 | LoadW r4,$8000 59 | jsr GetBlock 60 | lda #00 61 | sta $8020 62 | ldy #$21 63 | ::20 lda #00 64 | sta $8000,y 65 | tya 66 | clc 67 | adc #$20 68 | bcs :30 69 | tay 70 | bne :20 71 | ::30 jsr PutBlock 72 | MoveW $8000,curDirHead 73 | jmp :05 74 | endif 75 | 76 | :RenameFlag b 0 77 | :Duplicate ldx MultiCount 78 | dex 79 | bpl :geht 80 | rts 81 | ::geht lda #$ff 82 | bne RenameDupl 83 | :Rename ldx MultiCount 84 | dex 85 | bpl :geht 86 | rts 87 | ::geht lda #0 88 | :RenameDupl sta RenameFlag 89 | jsr GetAktlDisk 90 | tax 91 | beq :05 92 | jsr ClearMultiFile2 93 | cpx #12 94 | beq :15 95 | jmp FehlerAusgabe 96 | ::05 LoadW r2,MultiFileTab 97 | ::10 jsr GetMark 98 | tax 99 | bmi :20 100 | jsr GetFileName 101 | jsr MyRename 102 | bcc :10 103 | ::15 rts 104 | ::20 LoadB DialBoxFlag,0 105 | jmp RecoverActiveWindow 106 | 107 | :MyRename lda RenameFlag 108 | beq :05 109 | LoadW r6,Name 110 | jsr FindFile 111 | txa 112 | bne :err 113 | lda $8400+22 114 | cmp #11 ; Directory 115 | bne :05 116 | ldx #10 117 | bne :err 118 | ::05 LoadB :t2,0 119 | ldy #0 120 | ::10 lda Name,y 121 | sta Name2,y 122 | beq :20 123 | iny 124 | bne :10 125 | ::20 LoadB DialBoxFlag,2 126 | LoadW a1,Name2 127 | LoadW r0,:db 128 | jsr NewDoDlgBox 129 | lda r0L 130 | cmp #2 131 | bne :22 132 | clc 133 | rts 134 | ::22 LoadW r6,Name2 135 | jsr FindFile 136 | txa 137 | beq :schonda 138 | cpx #5 139 | beq :geht 140 | ::err jsr FehlerAusgabe 141 | sec 142 | rts 143 | ::schonda LoadB :t2,BOLDON 144 | bne :20 145 | ::geht lda RenameFlag 146 | beq :25 147 | LoadW r12,Name ; Filename 148 | LoadW r10,DiskName+2 ; SourceDisk (ohne 'x:') 149 | MoveW r10,r11 150 | LoadW r13,Name2 ; NewFilename 151 | ldx messageBuffer+1 152 | lda aktl_Sub,x 153 | sta DestinationDir ; Ziel-Dir setzen 154 | PushB CopyMemLow 155 | LoadB CopyMemLow,DuplCopyMem 156 | jsr CopyFile 157 | PopB CopyMemLow 158 | txa 159 | bne :err 160 | clc 161 | rts 162 | ::25 LoadW r0,Name2 163 | LoadW r6,Name 164 | jsr RenameFile 165 | txa 166 | beq :30 167 | jmp :err 168 | ::30 clc 169 | rts 170 | ::db b $81 171 | b $0b,$10,$10 172 | w :t2 173 | b $0b,$10,$20 174 | w :t1 175 | b $0d,$10,$35,a1,16 176 | b $02,17,72 177 | b NULL 178 | ::t1 b "Enter new file name:",0 179 | ::t2 b 0,"Name already in use!",PLAINTEXT,0 180 | 181 | :ModEnde 182 | :DuplCopyMem = >ModEnde+$100 183 | -------------------------------------------------------------------------------- /128_de/Main/DeskTop.sub2.s: -------------------------------------------------------------------------------- 1 | n "DeskMod B" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | ; jmp SelectPage 13 | nop 14 | nop 15 | nop 16 | jmp EmptyAllDirs 17 | jmp DispInfo 18 | jmp Rename 19 | jmp Duplicate 20 | ; jmp SelectAll 21 | 22 | :DispInfo LoadW r0,:db 23 | jmp NewDoDlgBox 24 | ::db b $01 25 | b 32,138 26 | w 54+DOUBLE_W,265+DOUBLE_W 27 | b $0b,$10,$10 28 | w :t1 29 | b $0b,$10,$20 30 | w :t2 31 | b $0b,$10,$30 32 | w :t3 33 | b $0b,$10,$30+10 34 | w :t4 35 | b $0b,$10,$30+20 36 | w :t5 37 | b $0b,$0a,$5e 38 | w :t7 39 | b $0e,NULL 40 | ::t1 b BOLDON,"TopDesk",PLAINTEXT," Version 1.2",0 41 | ::t2 b "geschrieben von",BOLDON,0 42 | ::t3 b "Walter Knupe",0 43 | ::t4 b "H.J. Ciprina",0 44 | ::t5 b "Volker Goehrke",PLAINTEXT,0 45 | ::t7 b "(C) 1991 by GEOS-USER-CLUB, GbR",0 46 | 47 | 48 | :EmptyAllDirs rts 49 | if 0 50 | jsr GotoFirstMenu 51 | jsr GetAktlDisk 52 | ::05 lda curDirHead 53 | bne :10 54 | jsr GetDirHead 55 | jmp ReLoadAll 56 | ::10 sta r1L 57 | MoveB curDirHead+1,r1H 58 | LoadW r4,$8000 59 | jsr GetBlock 60 | lda #00 61 | sta $8020 62 | ldy #$21 63 | ::20 lda #00 64 | sta $8000,y 65 | tya 66 | clc 67 | adc #$20 68 | bcs :30 69 | tay 70 | bne :20 71 | ::30 jsr PutBlock 72 | MoveW $8000,curDirHead 73 | jmp :05 74 | endif 75 | 76 | :RenameFlag b 0 77 | :Duplicate ldx MultiCount 78 | dex 79 | bpl :geht 80 | rts 81 | ::geht lda #$ff 82 | bne RenameDupl 83 | :Rename ldx MultiCount 84 | dex 85 | bpl :geht 86 | rts 87 | ::geht lda #0 88 | :RenameDupl sta RenameFlag 89 | jsr GetAktlDisk 90 | tax 91 | beq :05 92 | jsr ClearMultiFile2 93 | cpx #12 94 | beq :15 95 | jmp FehlerAusgabe 96 | ::05 LoadW r2,MultiFileTab 97 | ::10 jsr GetMark 98 | tax 99 | bmi :20 100 | jsr GetFileName 101 | jsr MyRename 102 | bcc :10 103 | ::15 rts 104 | ::20 LoadB DialBoxFlag,0 105 | jmp RecoverActiveWindow 106 | 107 | :MyRename lda RenameFlag 108 | beq :05 109 | LoadW r6,Name 110 | jsr FindFile 111 | txa 112 | bne :err 113 | lda $8400+22 114 | cmp #11 ; Directory 115 | bne :05 116 | ldx #10 117 | bne :err 118 | ::05 LoadB :t2,0 119 | ldy #0 120 | ::10 lda Name,y 121 | sta Name2,y 122 | beq :20 123 | iny 124 | bne :10 125 | ::20 LoadB DialBoxFlag,2 126 | LoadW a1,Name2 127 | LoadW r0,:db 128 | jsr NewDoDlgBox 129 | lda r0L 130 | cmp #2 131 | bne :22 132 | clc 133 | rts 134 | ::22 LoadW r6,Name2 135 | jsr FindFile 136 | txa 137 | beq :schonda 138 | cpx #5 139 | beq :geht 140 | ::err jsr FehlerAusgabe 141 | sec 142 | rts 143 | ::schonda LoadB :t2,BOLDON 144 | bne :20 145 | ::geht lda RenameFlag 146 | beq :25 147 | LoadW r12,Name ; Filename 148 | LoadW r10,DiskName+2 ; SourceDisk (ohne 'x:') 149 | MoveW r10,r11 150 | LoadW r13,Name2 ; NewFilename 151 | ldx messageBuffer+1 152 | lda aktl_Sub,x 153 | sta DestinationDir ; Ziel-Dir setzen 154 | PushB CopyMemLow 155 | LoadB CopyMemLow,DuplCopyMem 156 | jsr CopyFile 157 | PopB CopyMemLow 158 | txa 159 | bne :err 160 | clc 161 | rts 162 | ::25 LoadW r0,Name2 163 | LoadW r6,Name 164 | jsr RenameFile 165 | txa 166 | beq :30 167 | jmp :err 168 | ::30 clc 169 | rts 170 | ::db b $81 171 | b $0b,$10,$10 172 | w :t2 173 | b $0b,$10,$20 174 | w :t1 175 | b $0d,$10,$35,a1,16 176 | b $02,17,72 177 | b NULL 178 | ::t1 b "Neuen Filenamen eingeben:",0 179 | ::t2 b 0,"Name schon vergeben!",PLAINTEXT,0 180 | 181 | :ModEnde 182 | :DuplCopyMem = >ModEnde+$100 183 | -------------------------------------------------------------------------------- /64_en/DeskInclude/SearchDisk.s: -------------------------------------------------------------------------------- 1 | ; SearchDisk (11.02.1991) sucht nach der korrekten Diskette 2 | ; NewSearchDisk sucht nach der korrekten Diskette, ohne DirHead zu zerst|ren 3 | ; Par: r6: Diskettenname als String 4 | ; Ret: curType: (1571 einseitig=1541) ??? 5 | ; x: Fehlernummer 6 | ; x: CANCEL_ERR Vorgang abgebrochen 7 | ; Des: a,y,curDirHead(SearchDisk),diskBlkBuf(NewSearchDisk) 8 | .DRIVE_MASK = %0000 1111 9 | .CANCEL_ERR = $0c 10 | .SearchDisk LoadB OpenDiskFlag,1 11 | jsr MemSearchDisk 12 | jsr DriveSearchDisk 13 | txa 14 | bne Ende 15 | lda curType 16 | cmp #2 ; 1571 ? 17 | bne :10 18 | LoadB interleave,8 19 | ::10 jmp OpenDisk 20 | :Ende rts 21 | .NewSearchDisk LoadB OpenDiskFlag,0 22 | jsr MemSearchDisk 23 | txa 24 | bne DriveSearchDisk 25 | lda curType 26 | cmp #2 ; 1571 ? 27 | bne Ende 28 | LoadB interleave,8 29 | bne Ende 30 | :DriveSearchDisk ldx #1 31 | b $2c 32 | :MemSearchDisk ldx #0 33 | LoadB :d,0 34 | ldy #29 35 | ::20 lda r0L,y 36 | pha 37 | dey 38 | bpl :20 39 | stx r7H 40 | ::50 ldy curDrive 41 | sty r7L 42 | ::10 tya 43 | jsr :TestDisk 44 | txa 45 | beq :end 46 | ldy numDrives 47 | dey 48 | beq :19 49 | ldy curDrive 50 | ::18 iny 51 | lda driveType-8,y 52 | beq :18 53 | cpy #12 54 | bcc :17 55 | ldy #8 56 | ::17 cpy r7L 57 | bne :10 58 | ::19 lda r7H 59 | beq :err 60 | lda AskDiskFlag 61 | beq :err 62 | PushW r6 63 | PushW r7 64 | LoadW r0,:insertdial 65 | jsr NewDoDlgBox 66 | ldx r0L 67 | PopW r7 68 | PopW r6 69 | cpx #CANCEL 70 | bne :50 71 | ::err ldx #CANCEL_ERR 72 | ::end ldy #0 73 | ::30 pla 74 | sta r0L,y 75 | iny 76 | cpy #30 77 | bcc :30 78 | lda :d 79 | bne :n30 80 | clc 81 | ::n30 rts 82 | ::insertdial 83 | b $81 84 | b $0b,$10,$10 85 | w :t1 86 | b $0c,$10,$20,r6 87 | b $0b,$10,$30 88 | w :t2 89 | b OK 90 | b 1,72 91 | b CANCEL 92 | b 17,72 93 | b NULL 94 | ::t1 b $18,"Please insert disk",$1b,NULL 95 | ::t2 b $18," ",$1b,NULL 96 | 97 | ::TestDisk 98 | ; cmp curDrive 99 | ; beq :n10 100 | ; inc :d 101 | jsr NewSetDevice 102 | ldy r7H 103 | beq :110 ;beq :n10 104 | lda OpenDiskFlag 105 | beq :n01 106 | jsr OpenDisk 107 | txa 108 | beq :n10 109 | jmp :240 110 | ::n01 jsr NewDisk 111 | ::n10 ldy r7H 112 | beq :110 113 | LoadB r1H,0 114 | lda curType 115 | and #DRIVE_MASK 116 | cmp #2 117 | beq :d05 118 | cmp #1 119 | bne :d10 120 | ::d05 LoadB r1L,18 121 | bne :d20 122 | ::d10 cmp #3 123 | bne :d05 ; bei unbek. Laufwerk wird von 1541 ausgegangen 124 | LoadB r1L,40 125 | ::d20 LoadW r4,$8000 126 | jsr GetBlock 127 | LoadW r5,$8000+144 128 | txa 129 | bne :240 130 | beq :120 131 | ::110 ldx #r5L 132 | jsr GetPtrCurDkNm 133 | ::120 ;jsr ConvCurType 134 | ldy #0 135 | ::210 lda (r6),y 136 | beq :220 137 | cmp (r5),y 138 | bne :240 139 | iny 140 | cpy #16 141 | bne :210 142 | beq :230 143 | ::220 lda (r5),y 144 | cmp #$a0 145 | bne :240 146 | ::230 jsr :sub 147 | ldx #0 148 | rts 149 | ::240 jsr :sub 150 | ldx #1 151 | rts 152 | ::d b 0 153 | ::sub lda r7H 154 | beq :e10 155 | ldx #r4 156 | jsr GetPtrCurDkNm 157 | ldy #15 158 | ::loop lda $8000+144,y 159 | sta (r4),y 160 | dey 161 | bpl :loop 162 | ::e10 rts 163 | 164 | if 0 165 | .ConvCurType 166 | ;Par: r4 - Zeiger auf den ersten BAM-Block einer Diskette 167 | ;Ret: curType (1571 einseitig = 1541) 168 | ;Des: a,y 169 | lda curType 170 | and #DRIVE_MASK 171 | cmp #2 172 | bne :10 173 | ldy #3 174 | lda (r4),y 175 | bne :10 176 | lda curType 177 | and #%1100 0000 178 | ora #1 179 | sta curType 180 | ::10 rts 181 | endif 182 | -------------------------------------------------------------------------------- /64_en/Main/DeskTop.sub.s: -------------------------------------------------------------------------------- 1 | n "DeskMod A" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | jmp DeskDosNew 13 | jmp _Validate 14 | rts 15 | w 0 16 | ; jmp GetWindowStat 17 | jmp GetDDrivers 18 | ;:INV_TRACK = 2 19 | 20 | :GetDDrivers lda ramExpSize 21 | beq :noram 22 | ::rts rts 23 | ::noram lda c128Flag 24 | bmi :rts ; C128 hat seine Driver schon 25 | lda driveType 26 | cmp driveType+1 ; zwei Gleichartige Laufwerke ? 27 | beq :rts ; >ja 28 | lda driveType 29 | cmp curType 30 | bne :10 31 | lda driveType+1 32 | ::10 pha 33 | jsr GetDriver ; Treiber nach $7200 laden 34 | txa 35 | beq :20 36 | LoadB DiskDriverFlag,$80 37 | ::20 pla 38 | sta DiskDriverFlag 39 | rts 40 | 41 | :GetDriver ; Par: a - DriveTyp 42 | pha 43 | jsr MaxTextWin 44 | pla 45 | pha 46 | tax 47 | dex 48 | bne :10 49 | LoadB DriverType,$34 50 | bne :30 51 | ::10 dex 52 | bne :20 53 | LoadB DriverType,$37 54 | bne :30 55 | ::20 ;dex 56 | ;bne :flash 57 | LoadB DriverType,$38 58 | ; bne :30 59 | ::30 LoadW r6,DriverName 60 | jsr FindFile 61 | txa 62 | beq :40 63 | LoadB r7L,14 ; autoexec 64 | LoadB r7H,1 65 | LoadW r10,KonfClass 66 | LoadW r6,KonfName 67 | jsr FindFTypes 68 | txa 69 | bne :34 70 | lda r7H 71 | bne :34 72 | LoadW r6,KonfName 73 | jsr FindFile 74 | txa 75 | beq :35 76 | ::34 pla 77 | LoadB numDrives,1 78 | tax 79 | rts 80 | ::35 MoveW $8401,r1 81 | LoadW r4,$8000 82 | jsr GetBlock 83 | pla 84 | asl 85 | tax 86 | lda $8004,x 87 | sta r1L 88 | lda $8005,x 89 | sta r1H 90 | jmp :45 91 | ::40 pla 92 | MoveW $8401,r1 93 | ::45 LoadW r7,$7200 94 | LoadW r2,$d90 95 | jsr ReadFile 96 | txa 97 | bne :50 98 | LoadB CopyMemHigh,$71 99 | ldx #0 100 | ::50 rts 101 | :DriverName b "Drive 15" 102 | :DriverType b "x1",0 103 | :KonfClass b "Configure",0 104 | 105 | :DeskDosNew jsr DeskDosSub1 106 | jsr DosNew 107 | ldx activeWindow 108 | jsr GetSubDirXList 109 | jsr ClearList 110 | ldx activeWindow 111 | lda #0 112 | sta aktl_Sub,x ; aktl Ebene setzen 113 | ::loop jsr RemSubName ; alle SubDir-namen entfernen 114 | bcc :loop 115 | LoadB DialBoxFlag,0 116 | jmp RecoverActiveWindow 117 | 118 | :DeskDosSub1 LoadB DialBoxFlag,25 ; irgendein Wert, m|glichst hoher Wert 119 | jsr GotoFirstMenu 120 | jsr GetAktlWinDisk 121 | LoadW r6,DiskName+2 122 | lda DiskName 123 | tax 124 | lda driveType-65,x 125 | sta r7L 126 | rts 127 | 128 | :_Validate jsr ClearMultiFile2 129 | jsr GetAktlDisk 130 | tax 131 | bne :err 132 | jsr Validate 133 | txa 134 | beq :10 135 | ::err cpx #12 136 | beq :10 137 | jmp FehlerAusgabe 138 | ::10 jmp ReloadActiveWindow 139 | 140 | ;DosNew 141 | ;l|scht eine Diskette 142 | ;Par: r6 - name der Diskette 143 | ;Ret: x - Fehlernummer 144 | ;Des: a,y,r0-r15 145 | :DosNew 146 | jsr SearchDisk 147 | txa 148 | bne :end 149 | LoadW r0,:box 150 | jsr NewDoDlgBox 151 | ldy r0L 152 | cpy #CANCEL 153 | beq :canceled 154 | jsr ClearBAM 155 | lda curType 156 | jsr Get1stDirBlock 157 | LoadW r4,diskBlkBuf 158 | jsr EnterTurbo 159 | txa 160 | bne :20 161 | jsr InitForIO 162 | ::10 jsr ReadBlock 163 | txa 164 | bne :20 165 | ldy #2 166 | ::15 lda #0 167 | sta diskBlkBuf,y 168 | tya 169 | clc 170 | adc #32 171 | tay 172 | bcc :15 173 | jsr WriteBlock 174 | txa 175 | bne :20 176 | lda diskBlkBuf+1 177 | sta r1H 178 | lda diskBlkBuf 179 | sta r1L 180 | bne :10 181 | ::20 jsr DoneWithIO 182 | jmp PutDirHead 183 | ::canceled ldx #CANCEL_ERR 184 | ::end rts 185 | ::box b $81 186 | b $0b,$10,$10 187 | w :t1 188 | b $0c,$10,$20,r6 189 | b $0b,$10,$30 190 | w :t2 191 | b OK 192 | b 4,72 193 | b CANCEL 194 | b 17,72 195 | b NULL 196 | ::t1 b "Erase contents of",NULL 197 | ::t2 b "?",NULL 198 | 199 | t "Validate+Undelet" 200 | :KonfName 201 | -------------------------------------------------------------------------------- /128_de/DeskInclude/SearchDisk.s: -------------------------------------------------------------------------------- 1 | ; SearchDisk (11.02.1991) sucht nach der korrekten Diskette 2 | ; NewSearchDisk sucht nach der korrekten Diskette, ohne DirHead zu zerst|ren 3 | ; Par: r6: Diskettenname als String 4 | ; Ret: curType: (1571 einseitig=1541) ??? 5 | ; x: Fehlernummer 6 | ; x: CANCEL_ERR Vorgang abgebrochen 7 | ; Des: a,y,curDirHead(SearchDisk),diskBlkBuf(NewSearchDisk) 8 | .DRIVE_MASK = %0001 1111 9 | .CANCEL_ERR = $0c 10 | .SearchDisk LoadB OpenDiskFlag,1 11 | jsr MemSearchDisk 12 | jsr DriveSearchDisk 13 | txa 14 | bne Ende 15 | lda curType 16 | cmp #2 ; 1571 ? 17 | bne :10 18 | LoadB interleave,8 19 | ::10 jmp OpenDisk 20 | if 0 21 | jsr MemSearchDisk 22 | lda OpenDiskFlag 23 | beq :03 24 | LoadB OpenDiskFlag,0 25 | jsr OpenDisk 26 | clc 27 | ::03 bcc :05 28 | php 29 | jsr NewDisk 30 | plp 31 | ::05 php 32 | jsr DriveSearchDisk 33 | txa 34 | bne :end 35 | bcs :10 ; wenn kein SetDevice u. NewDisk ausgef}hrt 36 | plp 37 | bcc Ende 38 | bcs :20 39 | ::10 pla 40 | ::20 jmp OpenDisk ; wurde, braucht auch kein OpenDisk ausgef}hrt 41 | ::end pla 42 | endif 43 | :Ende rts ; zu werden 44 | .NewSearchDisk LoadB OpenDiskFlag,0 45 | jsr MemSearchDisk 46 | txa 47 | bne DriveSearchDisk 48 | lda curType 49 | cmp #2 ; 1571 ? 50 | bne Ende 51 | LoadB interleave,8 52 | bne Ende 53 | :DriveSearchDisk ldx #1 54 | b $2c 55 | :MemSearchDisk ldx #0 56 | LoadB :d,0 57 | ldy #29 58 | ::20 lda r0L,y 59 | pha 60 | dey 61 | bpl :20 62 | stx r7H 63 | ::50 ldy curDrive 64 | sty r7L 65 | ::10 tya 66 | jsr :TestDisk 67 | txa 68 | beq :end 69 | ldy numDrives 70 | dey 71 | beq :19 72 | ldy curDrive 73 | ::18 iny 74 | lda driveType-8,y 75 | beq :18 76 | cpy #12 77 | bcc :17 78 | ldy #8 79 | ::17 cpy r7L 80 | bne :10 81 | ::19 lda r7H 82 | beq :err 83 | lda AskDiskFlag 84 | beq :err 85 | PushW r6 86 | PushW r7 87 | LoadW r0,:insertdial 88 | jsr NewDoDlgBox 89 | ldx r0L 90 | PopW r7 91 | PopW r6 92 | cpx #CANCEL 93 | bne :50 94 | ::err ldx #CANCEL_ERR 95 | ::end ldy #0 96 | ::30 pla 97 | sta r0L,y 98 | iny 99 | cpy #30 100 | bcc :30 101 | lda :d 102 | bne :n30 103 | clc 104 | ::n30 rts 105 | ::insertdial 106 | b $81 107 | b $0b,$10,$10 108 | w :t1 109 | b $0c,$10,$20,r6 110 | b $0b,$10,$30 111 | w :t2 112 | b OK 113 | b 1,72 114 | b CANCEL 115 | b 17,72 116 | b NULL 117 | ::t1 b $18,"Bitte legen Sie die Disk",$1b,NULL 118 | ::t2 b $18,"ein.",$1b,NULL 119 | 120 | ::TestDisk 121 | ; cmp curDrive 122 | ; beq :n10 123 | ; inc :d 124 | jsr NewSetDevice 125 | ldy r7H 126 | beq :110 ;beq :n10 127 | lda OpenDiskFlag 128 | beq :n01 129 | jsr OpenDisk 130 | txa 131 | beq :n10 132 | jmp :240 133 | ::n01 jsr NewDisk 134 | ::n10 ldy r7H 135 | beq :110 136 | LoadB r1H,0 137 | lda curType 138 | and #DRIVE_MASK 139 | cmp #2 140 | beq :d05 141 | cmp #1 142 | bne :d10 143 | ::d05 LoadB r1L,18 144 | bne :d20 145 | ::d10 cmp #3 146 | bne :d05 ; bei unbek. Laufwerk wird von 1541 ausgegangen 147 | LoadB r1L,40 148 | ::d20 LoadW r4,$8000 149 | jsr GetBlock 150 | LoadW r5,$8000+144 151 | txa 152 | bne :240 153 | beq :120 154 | ::110 ldx #r5L 155 | jsr GetPtrCurDkNm 156 | ::120 ;jsr ConvCurType 157 | ldy #0 158 | ::210 lda (r6),y 159 | beq :220 160 | cmp (r5),y 161 | bne :240 162 | iny 163 | cpy #16 164 | bne :210 165 | beq :230 166 | ::220 lda (r5),y 167 | cmp #$a0 168 | bne :240 169 | ::230 jsr :sub 170 | ldx #0 171 | rts 172 | ::240 jsr :sub 173 | ldx #1 174 | rts 175 | ::d b 0 176 | ::sub lda r7H 177 | beq :e10 178 | ldx #r4 179 | jsr GetPtrCurDkNm 180 | ldy #15 181 | ::loop lda $8000+144,y 182 | sta (r4),y 183 | dey 184 | bpl :loop 185 | ::e10 rts 186 | 187 | if 0 188 | .ConvCurType 189 | ;Par: r4 - Zeiger auf den ersten BAM-Block einer Diskette 190 | ;Ret: curType (1571 einseitig = 1541) 191 | ;Des: a,y 192 | lda curType 193 | and #DRIVE_MASK 194 | cmp #2 195 | bne :10 196 | ldy #3 197 | lda (r4),y 198 | bne :10 199 | lda curType 200 | and #%1100 0000 201 | ora #1 202 | sta curType 203 | ::10 rts 204 | endif 205 | -------------------------------------------------------------------------------- /128_en/DeskInclude/SearchDisk.s: -------------------------------------------------------------------------------- 1 | ; SearchDisk (11.02.1991) sucht nach der korrekten Diskette 2 | ; NewSearchDisk sucht nach der korrekten Diskette, ohne DirHead zu zerst|ren 3 | ; Par: r6: Diskettenname als String 4 | ; Ret: curType: (1571 einseitig=1541) ??? 5 | ; x: Fehlernummer 6 | ; x: CANCEL_ERR Vorgang abgebrochen 7 | ; Des: a,y,curDirHead(SearchDisk),diskBlkBuf(NewSearchDisk) 8 | .DRIVE_MASK = %0001 1111 9 | .CANCEL_ERR = $0c 10 | .SearchDisk LoadB OpenDiskFlag,1 11 | jsr MemSearchDisk 12 | jsr DriveSearchDisk 13 | txa 14 | bne Ende 15 | lda curType 16 | cmp #2 ; 1571 ? 17 | bne :10 18 | LoadB interleave,8 19 | ::10 jmp OpenDisk 20 | if 0 21 | jsr MemSearchDisk 22 | lda OpenDiskFlag 23 | beq :03 24 | LoadB OpenDiskFlag,0 25 | jsr OpenDisk 26 | clc 27 | ::03 bcc :05 28 | php 29 | jsr NewDisk 30 | plp 31 | ::05 php 32 | jsr DriveSearchDisk 33 | txa 34 | bne :end 35 | bcs :10 ; wenn kein SetDevice u. NewDisk ausgef}hrt 36 | plp 37 | bcc Ende 38 | bcs :20 39 | ::10 pla 40 | ::20 jmp OpenDisk ; wurde, braucht auch kein OpenDisk ausgef}hrt 41 | ::end pla 42 | endif 43 | :Ende rts ; zu werden 44 | .NewSearchDisk LoadB OpenDiskFlag,0 45 | jsr MemSearchDisk 46 | txa 47 | bne DriveSearchDisk 48 | lda curType 49 | cmp #2 ; 1571 ? 50 | bne Ende 51 | LoadB interleave,8 52 | bne Ende 53 | :DriveSearchDisk ldx #1 54 | b $2c 55 | :MemSearchDisk ldx #0 56 | LoadB :d,0 57 | ldy #29 58 | ::20 lda r0L,y 59 | pha 60 | dey 61 | bpl :20 62 | stx r7H 63 | ::50 ldy curDrive 64 | sty r7L 65 | ::10 tya 66 | jsr :TestDisk 67 | txa 68 | beq :end 69 | ldy numDrives 70 | dey 71 | beq :19 72 | ldy curDrive 73 | ::18 iny 74 | lda driveType-8,y 75 | beq :18 76 | cpy #12 77 | bcc :17 78 | ldy #8 79 | ::17 cpy r7L 80 | bne :10 81 | ::19 lda r7H 82 | beq :err 83 | lda AskDiskFlag 84 | beq :err 85 | PushW r6 86 | PushW r7 87 | LoadW r0,:insertdial 88 | jsr NewDoDlgBox 89 | ldx r0L 90 | PopW r7 91 | PopW r6 92 | cpx #CANCEL 93 | bne :50 94 | ::err ldx #CANCEL_ERR 95 | ::end ldy #0 96 | ::30 pla 97 | sta r0L,y 98 | iny 99 | cpy #30 100 | bcc :30 101 | lda :d 102 | bne :n30 103 | clc 104 | ::n30 rts 105 | ::insertdial 106 | b $81 107 | b $0b,$10,$10 108 | w :t1 109 | b $0c,$10,$20,r6 110 | b $0b,$10,$30 111 | w :t2 112 | b OK 113 | b 1,72 114 | b CANCEL 115 | b 17,72 116 | b NULL 117 | ::t1 b $18,"Bitte legen Sie die Disk",$1b,NULL 118 | ::t2 b $18,"ein.",$1b,NULL 119 | 120 | ::TestDisk 121 | ; cmp curDrive 122 | ; beq :n10 123 | ; inc :d 124 | jsr NewSetDevice 125 | ldy r7H 126 | beq :110 ;beq :n10 127 | lda OpenDiskFlag 128 | beq :n01 129 | jsr OpenDisk 130 | txa 131 | beq :n10 132 | jmp :240 133 | ::n01 jsr NewDisk 134 | ::n10 ldy r7H 135 | beq :110 136 | LoadB r1H,0 137 | lda curType 138 | and #DRIVE_MASK 139 | cmp #2 140 | beq :d05 141 | cmp #1 142 | bne :d10 143 | ::d05 LoadB r1L,18 144 | bne :d20 145 | ::d10 cmp #3 146 | bne :d05 ; bei unbek. Laufwerk wird von 1541 ausgegangen 147 | LoadB r1L,40 148 | ::d20 LoadW r4,$8000 149 | jsr GetBlock 150 | LoadW r5,$8000+144 151 | txa 152 | bne :240 153 | beq :120 154 | ::110 ldx #r5L 155 | jsr GetPtrCurDkNm 156 | ::120 ;jsr ConvCurType 157 | ldy #0 158 | ::210 lda (r6),y 159 | beq :220 160 | cmp (r5),y 161 | bne :240 162 | iny 163 | cpy #16 164 | bne :210 165 | beq :230 166 | ::220 lda (r5),y 167 | cmp #$a0 168 | bne :240 169 | ::230 jsr :sub 170 | ldx #0 171 | rts 172 | ::240 jsr :sub 173 | ldx #1 174 | rts 175 | ::d b 0 176 | ::sub lda r7H 177 | beq :e10 178 | ldx #r4 179 | jsr GetPtrCurDkNm 180 | ldy #15 181 | ::loop lda $8000+144,y 182 | sta (r4),y 183 | dey 184 | bpl :loop 185 | ::e10 rts 186 | 187 | if 0 188 | .ConvCurType 189 | ;Par: r4 - Zeiger auf den ersten BAM-Block einer Diskette 190 | ;Ret: curType (1571 einseitig = 1541) 191 | ;Des: a,y 192 | lda curType 193 | and #DRIVE_MASK 194 | cmp #2 195 | bne :10 196 | ldy #3 197 | lda (r4),y 198 | bne :10 199 | lda curType 200 | and #%1100 0000 201 | ora #1 202 | sta curType 203 | ::10 rts 204 | endif 205 | -------------------------------------------------------------------------------- /64_de/DeskInclude/SearchDisk.s: -------------------------------------------------------------------------------- 1 | ; SearchDisk (11.02.1991) sucht nach der korrekten Diskette 2 | ; NewSearchDisk sucht nach der korrekten Diskette, ohne DirHead zu zerst|ren 3 | ; Par: r6: Diskettenname als String 4 | ; Ret: curType: (1571 einseitig=1541) ??? 5 | ; x: Fehlernummer 6 | ; x: CANCEL_ERR Vorgang abgebrochen 7 | ; Des: a,y,curDirHead(SearchDisk),diskBlkBuf(NewSearchDisk) 8 | .DRIVE_MASK = %0001 1111 9 | .CANCEL_ERR = $0c 10 | .SearchDisk LoadB OpenDiskFlag,1 11 | jsr MemSearchDisk 12 | jsr DriveSearchDisk 13 | txa 14 | bne Ende 15 | lda curType 16 | cmp #2 ; 1571 ? 17 | bne :10 18 | LoadB interleave,8 19 | ::10 jmp OpenDisk 20 | if 0 21 | jsr MemSearchDisk 22 | lda OpenDiskFlag 23 | beq :03 24 | LoadB OpenDiskFlag,0 25 | jsr OpenDisk 26 | clc 27 | ::03 bcc :05 28 | php 29 | jsr NewDisk 30 | plp 31 | ::05 php 32 | jsr DriveSearchDisk 33 | txa 34 | bne :end 35 | bcs :10 ; wenn kein SetDevice u. NewDisk ausgef}hrt 36 | plp 37 | bcc Ende 38 | bcs :20 39 | ::10 pla 40 | ::20 jmp OpenDisk ; wurde, braucht auch kein OpenDisk ausgef}hrt 41 | ::end pla 42 | endif 43 | :Ende rts ; zu werden 44 | .NewSearchDisk LoadB OpenDiskFlag,0 45 | jsr MemSearchDisk 46 | txa 47 | bne DriveSearchDisk 48 | lda curType 49 | cmp #2 ; 1571 ? 50 | bne Ende 51 | LoadB interleave,8 52 | bne Ende 53 | :DriveSearchDisk ldx #1 54 | b $2c 55 | :MemSearchDisk ldx #0 56 | LoadB :d,0 57 | ldy #29 58 | ::20 lda r0L,y 59 | pha 60 | dey 61 | bpl :20 62 | stx r7H 63 | ::50 ldy curDrive 64 | sty r7L 65 | ::10 tya 66 | jsr :TestDisk 67 | txa 68 | beq :end 69 | ldy numDrives 70 | dey 71 | beq :19 72 | ldy curDrive 73 | ::18 iny 74 | lda driveType-8,y 75 | beq :18 76 | cpy #12 77 | bcc :17 78 | ldy #8 79 | ::17 cpy r7L 80 | bne :10 81 | ::19 lda r7H 82 | beq :err 83 | lda AskDiskFlag 84 | beq :err 85 | PushW r6 86 | PushW r7 87 | LoadW r0,:insertdial 88 | jsr NewDoDlgBox 89 | ldx r0L 90 | PopW r7 91 | PopW r6 92 | cpx #CANCEL 93 | bne :50 94 | ::err ldx #CANCEL_ERR 95 | ::end ldy #0 96 | ::30 pla 97 | sta r0L,y 98 | iny 99 | cpy #30 100 | bcc :30 101 | lda :d 102 | bne :n30 103 | clc 104 | ::n30 rts 105 | ::insertdial 106 | b $81 107 | b $0b,$10,$10 108 | w :t1 109 | b $0c,$10,$20,r6 110 | b $0b,$10,$30 111 | w :t2 112 | b OK 113 | b 1,72 114 | b CANCEL 115 | b 17,72 116 | b NULL 117 | ::t1 b $18,"Bitte legen Sie die Disk",$1b,NULL 118 | ::t2 b $18,"ein.",$1b,NULL 119 | 120 | ::TestDisk 121 | ; cmp curDrive 122 | ; beq :n10 123 | ; inc :d 124 | jsr NewSetDevice 125 | ldy r7H 126 | beq :110 ;beq :n10 127 | lda OpenDiskFlag 128 | beq :n01 129 | jsr OpenDisk 130 | txa 131 | beq :n10 132 | jmp :240 133 | ::n01 jsr NewDisk 134 | ::n10 ldy r7H 135 | beq :110 136 | LoadB r1H,0 137 | lda curType 138 | and #DRIVE_MASK 139 | cmp #2 140 | beq :d05 141 | cmp #1 142 | bne :d10 143 | ::d05 LoadB r1L,18 144 | bne :d20 145 | ::d10 cmp #3 146 | bne :d05 ; bei unbek. Laufwerk wird von 1541 ausgegangen 147 | LoadB r1L,40 148 | ::d20 LoadW r4,$8000 149 | jsr GetBlock 150 | LoadW r5,$8000+144 151 | txa 152 | bne :240 153 | beq :120 154 | ::110 ldx #r5L 155 | jsr GetPtrCurDkNm 156 | ::120 ;jsr ConvCurType 157 | ldy #0 158 | ::210 lda (r6),y 159 | beq :220 160 | cmp (r5),y 161 | bne :240 162 | iny 163 | cpy #16 164 | bne :210 165 | beq :230 166 | ::220 lda (r5),y 167 | cmp #$a0 168 | bne :240 169 | ::230 jsr :sub 170 | ldx #0 171 | rts 172 | ::240 jsr :sub 173 | ldx #1 174 | rts 175 | ::d b 0 176 | ::sub lda r7H 177 | beq :e10 178 | ldx #r4 179 | jsr GetPtrCurDkNm 180 | ldy #15 181 | ::loop lda $8000+144,y 182 | sta (r4),y 183 | dey 184 | bpl :loop 185 | ::e10 rts 186 | 187 | if 0 188 | .ConvCurType 189 | ;Par: r4 - Zeiger auf den ersten BAM-Block einer Diskette 190 | ;Ret: curType (1571 einseitig = 1541) 191 | ;Des: a,y 192 | lda curType 193 | and #DRIVE_MASK 194 | cmp #2 195 | bne :10 196 | ldy #3 197 | lda (r4),y 198 | bne :10 199 | lda curType 200 | and #%1100 0000 201 | ora #1 202 | sta curType 203 | ::10 rts 204 | endif 205 | -------------------------------------------------------------------------------- /64_de/WinInclude/InvFrame.s: -------------------------------------------------------------------------------- 1 | :InvFrame 2 | ; Parameter: r2-r4 Akku: Muster 3 | ; Zur}ck: ---- 4 | ; Zerst|rt: r0,r1,r5-r7,a,x,y 5 | jsr VLine 6 | lda #%10101010 7 | :InvHLine sta r1L 8 | lda r3L 9 | and #%1111 1000 10 | clc 11 | adc #8 12 | sta r0L 13 | lda r3H 14 | adc #00 15 | sta r0H 16 | lda r4L 17 | and #%1111 1000 18 | sec 19 | sbc r0L 20 | sta r1H 21 | lda r4H 22 | sbc r0H 23 | 24 | ldy #3 25 | ::10 lsr 26 | ror r1H 27 | dey 28 | bne :10 29 | 30 | ldx r2L 31 | jsr :15 32 | 33 | ldx r2H 34 | 35 | ::15 jsr GetScanLine 36 | lda r5H 37 | bmi :64n 38 | rts 39 | ::64n lda r5L 40 | clc 41 | adc r0L 42 | sta r5L 43 | lda r5H 44 | adc r0H 45 | sta r5H 46 | 47 | lda r5L 48 | sec 49 | sbc #8 50 | sta r6L 51 | lda r5H 52 | sbc #0 53 | sta r6H 54 | ldx r1H 55 | ldy #0 56 | ::20 lda r5H 57 | bmi :64 58 | jsr a128 59 | jmp :128 60 | ::64 lda (r5),y 61 | eor r1L 62 | sta (r5),y 63 | ::128 lda r5L 64 | clc 65 | adc #8 66 | sta r5L 67 | bcc :22 68 | inc r5H 69 | ::22 dex 70 | bne :20 71 | 72 | ldy #0 73 | lda r3L 74 | and #%00000111 75 | tax 76 | lda :maskTab,x 77 | and r1L 78 | ldx r6H 79 | bpl :65 80 | jsr c128 81 | jmp :129 82 | ::65 eor (r6),y 83 | sta (r6),y 84 | ::129 lda r4L 85 | and #%00000111 86 | tax 87 | lda :maskTab,x 88 | eor #$ff 89 | and r1L 90 | ldx r5H 91 | bpl :66 92 | jsr d128 93 | rts 94 | ::66 eor (r5),y 95 | sta (r5),y 96 | rts 97 | ::maskTab b %11111111,%01111111,%00111111,%00011111 98 | b %00001111,%00000011,%00000001,%00000000 99 | 100 | :VLine 101 | ldy #1 102 | ::05 lda r2L,y 103 | and #%1111 1000 104 | sta r0L,y 105 | dey 106 | bpl :05 107 | ldx r0L 108 | jsr GetScanLine ; Card 109 | lda r5H 110 | bmi :64n 111 | rts 112 | ::64n lda r3L 113 | ldy r3H 114 | jsr :07 115 | lda r4L 116 | ldy r4H 117 | 118 | ::07 tax 119 | and #%11111000 120 | clc 121 | adc r5L 122 | sta r6L 123 | tya 124 | adc r5H 125 | sta r6H 126 | txa 127 | and #7 128 | tax 129 | lda Masken,x 130 | sta r1L 131 | 132 | ; Einzeichnen des oberen Restes: 133 | 134 | lda r2L 135 | and #7 136 | tay 137 | ::10 jsr :110 138 | tya 139 | sec 140 | sbc #8 141 | ::20 sta r1H ; AnfangsPkt (gerade ung.) 142 | ; Mitte: 143 | lda r0H 144 | sec 145 | sbc r0L 146 | lsr 147 | lsr 148 | lsr 149 | tax ; x+1 Durchl{ufe 150 | dex 151 | beq :50 152 | 153 | ::40 ldy r1H 154 | ::30 jsr :110 155 | dex 156 | bne :40 157 | ; Rest Unten: 158 | ::50 lda r2H 159 | and #7 160 | cmp r1H 161 | blt :60 162 | sta r7L 163 | ldy r1H 164 | ::55 jsr :100 165 | cpy r7L 166 | ble :55 167 | ::60 rts 168 | ::100 lda r6H 169 | bpl :64 170 | jsr b128 171 | jmp :128 172 | ::64 lda (r6),y 173 | eor r1L 174 | sta (r6),y 175 | ::128 iny 176 | iny 177 | rts 178 | ::110 jsr :100 179 | cpy #8 180 | blt :110 181 | AddVW 320,r6 182 | lda r6H 183 | bpl :65 184 | AddVW 320,r6 185 | ::65 rts 186 | :Masken b 128,64,32,16,8,4,2,1 187 | 188 | :d128 ;eor (r5),y 189 | ;sta (r5),y 190 | sta :a 191 | PushB r1L 192 | lda :a 193 | sta r1L 194 | jsr a128 195 | PopB r1L 196 | rts 197 | ::a b 0 198 | :c128 ;eor (r6),y 199 | ;sta (r6),y 200 | sta :a 201 | PushB r1L 202 | lda :a 203 | sta r1L 204 | jsr b128 205 | PopB r1L 206 | rts 207 | ::a b 0 208 | :b128 tya 209 | pha 210 | ;lda (r6),y 211 | tya ; Zieladr (r6+y) in Reg $12/$13 setzten 212 | clc 213 | adc r6L 214 | ldx #$13 215 | jsr SetReg 216 | dex 217 | lda r6H 218 | jmp a128b 219 | :a128 tya 220 | pha 221 | ;lda (r5),y 222 | tya ; Zieladr (r5+y) in Reg $12/$13 setzten 223 | clc 224 | adc r5L 225 | ldx #$13 226 | jsr SetReg 227 | dex 228 | lda r5H 229 | :a128b adc #0 230 | jsr SetReg 231 | ldx #$1f 232 | jsr GetReg ; Inhalt aus $1f holen 233 | eor r1L 234 | ;sta (r?),y ; Zieladr noch gesetzt ! 235 | ldx #$1f 236 | jsr SetReg 237 | ldx #$12 ; Zeichen schreiben durch beliebiges Beschreiben 238 | jsr SetReg ;von Reg. $12 239 | pla 240 | tax 241 | rts 242 | .SetReg stx $d600 243 | ::wait bit $d600 244 | bpl :wait 245 | sta $d601 246 | rts 247 | .GetReg stx $d600 248 | ::wait bit $d600 249 | bpl :wait 250 | lda $d601 251 | rts 252 | -------------------------------------------------------------------------------- /64_de/Include/Symbol/TopMac.s: -------------------------------------------------------------------------------- 1 | ; Makrodefinitionen 2 | ; Revision 28.06.89 3 | 4 | :LoadB m 5 | lda #@1 6 | sta @0 7 | / 8 | 9 | :LoadW m 10 | lda #<@1 11 | sta @0 12 | lda #>@1 13 | sta @0+1 14 | / 15 | 16 | :MoveB m 17 | lda @0 18 | sta @1 19 | / 20 | 21 | :MoveW m 22 | lda @0 23 | sta @1 24 | lda @0+1 25 | sta @1+1 26 | / 27 | 28 | :add m 29 | clc 30 | adc #@0 31 | / 32 | 33 | :adda m 34 | clc 35 | adc @0 36 | / 37 | 38 | :AddB m 39 | clc 40 | lda @0 41 | adc @1 42 | sta @1 43 | / 44 | 45 | :AddW m 46 | lda @0 47 | clc 48 | adc @1 49 | sta @1 50 | lda @0+1 51 | adc @1+1 52 | sta @1+1 53 | / 54 | 55 | 56 | :AddVB m 57 | lda @1 58 | clc 59 | adc #@0 60 | sta @1 61 | / 62 | 63 | :AddVW m 64 | lda #<@0 65 | clc 66 | adc @1 67 | sta @1 68 | lda #>@0 69 | adc @1+1 70 | sta @1+1 71 | / 72 | 73 | :sub m 74 | sec 75 | sbc #@0 76 | / 77 | 78 | :suba m 79 | sec 80 | sbc @0 81 | / 82 | 83 | :SubB m 84 | sec 85 | lda @1 86 | sbc @0 87 | sta @1 88 | / 89 | 90 | :SubW m 91 | lda @1 92 | sec 93 | sbc @0 94 | sta @1 95 | lda @1+1 96 | sbc @0+1 97 | sta @1+1 98 | / 99 | 100 | :SubVB m 101 | sec 102 | lda @1 103 | sbc #@0 104 | sta @1 105 | / 106 | 107 | :SubVW m 108 | lda @1 109 | sec 110 | sbc #<@0 111 | sta @1 112 | lda @1+1 113 | sbc #>@0 114 | sta @1+1 115 | / 116 | 117 | 118 | :CmpB m 119 | lda @0 120 | cmp @1 121 | / 122 | 123 | :CmpBI m 124 | lda @0 125 | cmp #@1 126 | / 127 | 128 | :CmpW m 129 | lda @0+1 130 | cmp @1+1 131 | bne :ende 132 | lda @0 133 | cmp @1 134 | ::ende 135 | / 136 | 137 | 138 | :CmpWI m 139 | lda @0+1 140 | cmp #>@1 141 | bne :ende1 142 | lda @0 143 | cmp #<@1 144 | ::ende1 145 | / 146 | 147 | :PushB m 148 | lda @0 149 | pha 150 | / 151 | 152 | :PushW m 153 | lda @0+1 154 | pha 155 | lda @0 156 | pha 157 | / 158 | 159 | 160 | :PopB m 161 | pla 162 | sta @0 163 | / 164 | 165 | :PopW m 166 | pla 167 | sta @0 168 | pla 169 | sta @0+1 170 | / 171 | 172 | :bra m 173 | clv 174 | bvc @0 175 | / 176 | 177 | 178 | :bge m 179 | bcs @0 180 | / 181 | 182 | :bgt m 183 | beq :done 184 | bcs @0 185 | ::done 186 | / 187 | 188 | :blt m 189 | bcc @0 190 | / 191 | 192 | :ble m 193 | beq @0 194 | bcc @0 195 | / 196 | 197 | :sbn m 198 | ora #2^@0 199 | / 200 | 201 | :sbBn m 202 | lda @0 203 | ora #2^@1 204 | sta @0 205 | / 206 | 207 | :sbWn m 208 | lda @0 209 | ora #<2^@1 210 | sta @0 211 | lda @0+1 212 | ora #>2^@1 213 | sta @0+1 214 | / 215 | 216 | :cbn m 217 | and #$ff-2^@0 218 | / 219 | 220 | :cbBn m 221 | lda @0 222 | and #$ff-2^@1 223 | sta @0 224 | / 225 | 226 | :cbWn m 227 | lda @0 228 | and #<$ffff-2^@1 229 | sta @0 230 | lda @0+1 231 | and #>$ffff-2^@1 232 | sta @0+1 233 | / 234 | 235 | 236 | :roln m 237 | ldx #@0 238 | beq :done 239 | ::10 rol 240 | dex 241 | bne :10 242 | ::done 243 | / 244 | 245 | :rolBn m 246 | ldx #@1 247 | beq :done 248 | ::10 rol @0 249 | dex 250 | bne :10 251 | ::done 252 | / 253 | 254 | :rolWn m 255 | ldx #@1 256 | beq :done 257 | ::10 rol @0 258 | rol @0+1 259 | dex 260 | bne :10 261 | ::done 262 | / 263 | 264 | :rorn m 265 | ldx #@0 266 | beq :done 267 | ::10 ror 268 | dex 269 | bne :10 270 | ::done 271 | / 272 | 273 | :rorBn m 274 | ldx #@1 275 | beq :done 276 | ::10 ror @0 277 | dex 278 | bne :10 279 | ::done 280 | / 281 | 282 | :rorWn m 283 | ldx #@1 284 | beq :done 285 | ::10 ror @0+1 286 | ror @0 287 | dex 288 | bne :10 289 | ::done 290 | / 291 | 292 | 293 | :asln m 294 | ldx #@0 295 | beq :done 296 | ::10 asl 297 | dex 298 | bne :10 299 | ::done 300 | / 301 | 302 | :aslBn m 303 | ldx #@1 304 | beq :done 305 | ::10 asl @0 306 | dex 307 | bne :10 308 | ::done 309 | / 310 | 311 | :aslWn m 312 | ldx #@1 313 | beq :done 314 | ::10 asl @0 315 | rol @0+1 316 | dex 317 | bne :10 318 | ::done 319 | / 320 | 321 | :lsrn m 322 | ldx #@0 323 | beq :done 324 | ::10 lsr 325 | dex 326 | bne :10 327 | ::done 328 | / 329 | 330 | 331 | :lsrBn m 332 | ldx #@1 333 | beq :done 334 | ::10 lsr @0 335 | dex 336 | bne :10 337 | ::done 338 | / 339 | 340 | :lsrWn m 341 | ldx #@1 342 | beq :done 343 | ::10 lsr @0+1 344 | ror @0 345 | dex 346 | bne :10 347 | ::done 348 | / 349 | 350 | 351 | -------------------------------------------------------------------------------- /64_en/Include/Symbol/TopMac.s: -------------------------------------------------------------------------------- 1 | ; Makrodefinitionen 2 | ; Revision 28.06.89 3 | 4 | :LoadB m 5 | lda #@1 6 | sta @0 7 | / 8 | 9 | :LoadW m 10 | lda #<@1 11 | sta @0 12 | lda #>@1 13 | sta @0+1 14 | / 15 | 16 | :MoveB m 17 | lda @0 18 | sta @1 19 | / 20 | 21 | :MoveW m 22 | lda @0 23 | sta @1 24 | lda @0+1 25 | sta @1+1 26 | / 27 | 28 | :add m 29 | clc 30 | adc #@0 31 | / 32 | 33 | :adda m 34 | clc 35 | adc @0 36 | / 37 | 38 | :AddB m 39 | clc 40 | lda @0 41 | adc @1 42 | sta @1 43 | / 44 | 45 | :AddW m 46 | lda @0 47 | clc 48 | adc @1 49 | sta @1 50 | lda @0+1 51 | adc @1+1 52 | sta @1+1 53 | / 54 | 55 | 56 | :AddVB m 57 | lda @1 58 | clc 59 | adc #@0 60 | sta @1 61 | / 62 | 63 | :AddVW m 64 | lda #<@0 65 | clc 66 | adc @1 67 | sta @1 68 | lda #>@0 69 | adc @1+1 70 | sta @1+1 71 | / 72 | 73 | :sub m 74 | sec 75 | sbc #@0 76 | / 77 | 78 | :suba m 79 | sec 80 | sbc @0 81 | / 82 | 83 | :SubB m 84 | sec 85 | lda @1 86 | sbc @0 87 | sta @1 88 | / 89 | 90 | :SubW m 91 | lda @1 92 | sec 93 | sbc @0 94 | sta @1 95 | lda @1+1 96 | sbc @0+1 97 | sta @1+1 98 | / 99 | 100 | :SubVB m 101 | sec 102 | lda @1 103 | sbc #@0 104 | sta @1 105 | / 106 | 107 | :SubVW m 108 | lda @1 109 | sec 110 | sbc #<@0 111 | sta @1 112 | lda @1+1 113 | sbc #>@0 114 | sta @1+1 115 | / 116 | 117 | 118 | :CmpB m 119 | lda @0 120 | cmp @1 121 | / 122 | 123 | :CmpBI m 124 | lda @0 125 | cmp #@1 126 | / 127 | 128 | :CmpW m 129 | lda @0+1 130 | cmp @1+1 131 | bne :ende 132 | lda @0 133 | cmp @1 134 | ::ende 135 | / 136 | 137 | 138 | :CmpWI m 139 | lda @0+1 140 | cmp #>@1 141 | bne :ende1 142 | lda @0 143 | cmp #<@1 144 | ::ende1 145 | / 146 | 147 | :PushB m 148 | lda @0 149 | pha 150 | / 151 | 152 | :PushW m 153 | lda @0+1 154 | pha 155 | lda @0 156 | pha 157 | / 158 | 159 | 160 | :PopB m 161 | pla 162 | sta @0 163 | / 164 | 165 | :PopW m 166 | pla 167 | sta @0 168 | pla 169 | sta @0+1 170 | / 171 | 172 | :bra m 173 | clv 174 | bvc @0 175 | / 176 | 177 | 178 | :bge m 179 | bcs @0 180 | / 181 | 182 | :bgt m 183 | beq :done 184 | bcs @0 185 | ::done 186 | / 187 | 188 | :blt m 189 | bcc @0 190 | / 191 | 192 | :ble m 193 | beq @0 194 | bcc @0 195 | / 196 | 197 | :sbn m 198 | ora #2^@0 199 | / 200 | 201 | :sbBn m 202 | lda @0 203 | ora #2^@1 204 | sta @0 205 | / 206 | 207 | :sbWn m 208 | lda @0 209 | ora #<2^@1 210 | sta @0 211 | lda @0+1 212 | ora #>2^@1 213 | sta @0+1 214 | / 215 | 216 | :cbn m 217 | and #$ff-2^@0 218 | / 219 | 220 | :cbBn m 221 | lda @0 222 | and #$ff-2^@1 223 | sta @0 224 | / 225 | 226 | :cbWn m 227 | lda @0 228 | and #<$ffff-2^@1 229 | sta @0 230 | lda @0+1 231 | and #>$ffff-2^@1 232 | sta @0+1 233 | / 234 | 235 | 236 | :roln m 237 | ldx #@0 238 | beq :done 239 | ::10 rol 240 | dex 241 | bne :10 242 | ::done 243 | / 244 | 245 | :rolBn m 246 | ldx #@1 247 | beq :done 248 | ::10 rol @0 249 | dex 250 | bne :10 251 | ::done 252 | / 253 | 254 | :rolWn m 255 | ldx #@1 256 | beq :done 257 | ::10 rol @0 258 | rol @0+1 259 | dex 260 | bne :10 261 | ::done 262 | / 263 | 264 | :rorn m 265 | ldx #@0 266 | beq :done 267 | ::10 ror 268 | dex 269 | bne :10 270 | ::done 271 | / 272 | 273 | :rorBn m 274 | ldx #@1 275 | beq :done 276 | ::10 ror @0 277 | dex 278 | bne :10 279 | ::done 280 | / 281 | 282 | :rorWn m 283 | ldx #@1 284 | beq :done 285 | ::10 ror @0+1 286 | ror @0 287 | dex 288 | bne :10 289 | ::done 290 | / 291 | 292 | 293 | :asln m 294 | ldx #@0 295 | beq :done 296 | ::10 asl 297 | dex 298 | bne :10 299 | ::done 300 | / 301 | 302 | :aslBn m 303 | ldx #@1 304 | beq :done 305 | ::10 asl @0 306 | dex 307 | bne :10 308 | ::done 309 | / 310 | 311 | :aslWn m 312 | ldx #@1 313 | beq :done 314 | ::10 asl @0 315 | rol @0+1 316 | dex 317 | bne :10 318 | ::done 319 | / 320 | 321 | :lsrn m 322 | ldx #@0 323 | beq :done 324 | ::10 lsr 325 | dex 326 | bne :10 327 | ::done 328 | / 329 | 330 | 331 | :lsrBn m 332 | ldx #@1 333 | beq :done 334 | ::10 lsr @0 335 | dex 336 | bne :10 337 | ::done 338 | / 339 | 340 | :lsrWn m 341 | ldx #@1 342 | beq :done 343 | ::10 lsr @0+1 344 | ror @0 345 | dex 346 | bne :10 347 | ::done 348 | / 349 | 350 | 351 | -------------------------------------------------------------------------------- /128_de/Include/Symbol/TopMac.s: -------------------------------------------------------------------------------- 1 | ; Makrodefinitionen 2 | ; Revision 28.06.89 3 | 4 | :LoadB m 5 | lda #@1 6 | sta @0 7 | / 8 | 9 | :LoadW m 10 | lda #<@1 11 | sta @0 12 | lda #>@1 13 | sta @0+1 14 | / 15 | 16 | :MoveB m 17 | lda @0 18 | sta @1 19 | / 20 | 21 | :MoveW m 22 | lda @0 23 | sta @1 24 | lda @0+1 25 | sta @1+1 26 | / 27 | 28 | :add m 29 | clc 30 | adc #@0 31 | / 32 | 33 | :adda m 34 | clc 35 | adc @0 36 | / 37 | 38 | :AddB m 39 | clc 40 | lda @0 41 | adc @1 42 | sta @1 43 | / 44 | 45 | :AddW m 46 | lda @0 47 | clc 48 | adc @1 49 | sta @1 50 | lda @0+1 51 | adc @1+1 52 | sta @1+1 53 | / 54 | 55 | 56 | :AddVB m 57 | lda @1 58 | clc 59 | adc #@0 60 | sta @1 61 | / 62 | 63 | :AddVW m 64 | lda #<@0 65 | clc 66 | adc @1 67 | sta @1 68 | lda #>@0 69 | adc @1+1 70 | sta @1+1 71 | / 72 | 73 | :sub m 74 | sec 75 | sbc #@0 76 | / 77 | 78 | :suba m 79 | sec 80 | sbc @0 81 | / 82 | 83 | :SubB m 84 | sec 85 | lda @1 86 | sbc @0 87 | sta @1 88 | / 89 | 90 | :SubW m 91 | lda @1 92 | sec 93 | sbc @0 94 | sta @1 95 | lda @1+1 96 | sbc @0+1 97 | sta @1+1 98 | / 99 | 100 | :SubVB m 101 | sec 102 | lda @1 103 | sbc #@0 104 | sta @1 105 | / 106 | 107 | :SubVW m 108 | lda @1 109 | sec 110 | sbc #<@0 111 | sta @1 112 | lda @1+1 113 | sbc #>@0 114 | sta @1+1 115 | / 116 | 117 | 118 | :CmpB m 119 | lda @0 120 | cmp @1 121 | / 122 | 123 | :CmpBI m 124 | lda @0 125 | cmp #@1 126 | / 127 | 128 | :CmpW m 129 | lda @0+1 130 | cmp @1+1 131 | bne :ende 132 | lda @0 133 | cmp @1 134 | ::ende 135 | / 136 | 137 | 138 | :CmpWI m 139 | lda @0+1 140 | cmp #>@1 141 | bne :ende1 142 | lda @0 143 | cmp #<@1 144 | ::ende1 145 | / 146 | 147 | :PushB m 148 | lda @0 149 | pha 150 | / 151 | 152 | :PushW m 153 | lda @0+1 154 | pha 155 | lda @0 156 | pha 157 | / 158 | 159 | 160 | :PopB m 161 | pla 162 | sta @0 163 | / 164 | 165 | :PopW m 166 | pla 167 | sta @0 168 | pla 169 | sta @0+1 170 | / 171 | 172 | :bra m 173 | clv 174 | bvc @0 175 | / 176 | 177 | 178 | :bge m 179 | bcs @0 180 | / 181 | 182 | :bgt m 183 | beq :done 184 | bcs @0 185 | ::done 186 | / 187 | 188 | :blt m 189 | bcc @0 190 | / 191 | 192 | :ble m 193 | beq @0 194 | bcc @0 195 | / 196 | 197 | :sbn m 198 | ora #2^@0 199 | / 200 | 201 | :sbBn m 202 | lda @0 203 | ora #2^@1 204 | sta @0 205 | / 206 | 207 | :sbWn m 208 | lda @0 209 | ora #<2^@1 210 | sta @0 211 | lda @0+1 212 | ora #>2^@1 213 | sta @0+1 214 | / 215 | 216 | :cbn m 217 | and #$ff-2^@0 218 | / 219 | 220 | :cbBn m 221 | lda @0 222 | and #$ff-2^@1 223 | sta @0 224 | / 225 | 226 | :cbWn m 227 | lda @0 228 | and #<$ffff-2^@1 229 | sta @0 230 | lda @0+1 231 | and #>$ffff-2^@1 232 | sta @0+1 233 | / 234 | 235 | 236 | :roln m 237 | ldx #@0 238 | beq :done 239 | ::10 rol 240 | dex 241 | bne :10 242 | ::done 243 | / 244 | 245 | :rolBn m 246 | ldx #@1 247 | beq :done 248 | ::10 rol @0 249 | dex 250 | bne :10 251 | ::done 252 | / 253 | 254 | :rolWn m 255 | ldx #@1 256 | beq :done 257 | ::10 rol @0 258 | rol @0+1 259 | dex 260 | bne :10 261 | ::done 262 | / 263 | 264 | :rorn m 265 | ldx #@0 266 | beq :done 267 | ::10 ror 268 | dex 269 | bne :10 270 | ::done 271 | / 272 | 273 | :rorBn m 274 | ldx #@1 275 | beq :done 276 | ::10 ror @0 277 | dex 278 | bne :10 279 | ::done 280 | / 281 | 282 | :rorWn m 283 | ldx #@1 284 | beq :done 285 | ::10 ror @0+1 286 | ror @0 287 | dex 288 | bne :10 289 | ::done 290 | / 291 | 292 | 293 | :asln m 294 | ldx #@0 295 | beq :done 296 | ::10 asl 297 | dex 298 | bne :10 299 | ::done 300 | / 301 | 302 | :aslBn m 303 | ldx #@1 304 | beq :done 305 | ::10 asl @0 306 | dex 307 | bne :10 308 | ::done 309 | / 310 | 311 | :aslWn m 312 | ldx #@1 313 | beq :done 314 | ::10 asl @0 315 | rol @0+1 316 | dex 317 | bne :10 318 | ::done 319 | / 320 | 321 | :lsrn m 322 | ldx #@0 323 | beq :done 324 | ::10 lsr 325 | dex 326 | bne :10 327 | ::done 328 | / 329 | 330 | 331 | :lsrBn m 332 | ldx #@1 333 | beq :done 334 | ::10 lsr @0 335 | dex 336 | bne :10 337 | ::done 338 | / 339 | 340 | :lsrWn m 341 | ldx #@1 342 | beq :done 343 | ::10 lsr @0+1 344 | ror @0 345 | dex 346 | bne :10 347 | ::done 348 | / 349 | 350 | 351 | -------------------------------------------------------------------------------- /128_en/Include/Symbol/TopMac.s: -------------------------------------------------------------------------------- 1 | ; Makrodefinitionen 2 | ; Revision 28.06.89 3 | 4 | :LoadB m 5 | lda #@1 6 | sta @0 7 | / 8 | 9 | :LoadW m 10 | lda #<@1 11 | sta @0 12 | lda #>@1 13 | sta @0+1 14 | / 15 | 16 | :MoveB m 17 | lda @0 18 | sta @1 19 | / 20 | 21 | :MoveW m 22 | lda @0 23 | sta @1 24 | lda @0+1 25 | sta @1+1 26 | / 27 | 28 | :add m 29 | clc 30 | adc #@0 31 | / 32 | 33 | :adda m 34 | clc 35 | adc @0 36 | / 37 | 38 | :AddB m 39 | clc 40 | lda @0 41 | adc @1 42 | sta @1 43 | / 44 | 45 | :AddW m 46 | lda @0 47 | clc 48 | adc @1 49 | sta @1 50 | lda @0+1 51 | adc @1+1 52 | sta @1+1 53 | / 54 | 55 | 56 | :AddVB m 57 | lda @1 58 | clc 59 | adc #@0 60 | sta @1 61 | / 62 | 63 | :AddVW m 64 | lda #<@0 65 | clc 66 | adc @1 67 | sta @1 68 | lda #>@0 69 | adc @1+1 70 | sta @1+1 71 | / 72 | 73 | :sub m 74 | sec 75 | sbc #@0 76 | / 77 | 78 | :suba m 79 | sec 80 | sbc @0 81 | / 82 | 83 | :SubB m 84 | sec 85 | lda @1 86 | sbc @0 87 | sta @1 88 | / 89 | 90 | :SubW m 91 | lda @1 92 | sec 93 | sbc @0 94 | sta @1 95 | lda @1+1 96 | sbc @0+1 97 | sta @1+1 98 | / 99 | 100 | :SubVB m 101 | sec 102 | lda @1 103 | sbc #@0 104 | sta @1 105 | / 106 | 107 | :SubVW m 108 | lda @1 109 | sec 110 | sbc #<@0 111 | sta @1 112 | lda @1+1 113 | sbc #>@0 114 | sta @1+1 115 | / 116 | 117 | 118 | :CmpB m 119 | lda @0 120 | cmp @1 121 | / 122 | 123 | :CmpBI m 124 | lda @0 125 | cmp #@1 126 | / 127 | 128 | :CmpW m 129 | lda @0+1 130 | cmp @1+1 131 | bne :ende 132 | lda @0 133 | cmp @1 134 | ::ende 135 | / 136 | 137 | 138 | :CmpWI m 139 | lda @0+1 140 | cmp #>@1 141 | bne :ende1 142 | lda @0 143 | cmp #<@1 144 | ::ende1 145 | / 146 | 147 | :PushB m 148 | lda @0 149 | pha 150 | / 151 | 152 | :PushW m 153 | lda @0+1 154 | pha 155 | lda @0 156 | pha 157 | / 158 | 159 | 160 | :PopB m 161 | pla 162 | sta @0 163 | / 164 | 165 | :PopW m 166 | pla 167 | sta @0 168 | pla 169 | sta @0+1 170 | / 171 | 172 | :bra m 173 | clv 174 | bvc @0 175 | / 176 | 177 | 178 | :bge m 179 | bcs @0 180 | / 181 | 182 | :bgt m 183 | beq :done 184 | bcs @0 185 | ::done 186 | / 187 | 188 | :blt m 189 | bcc @0 190 | / 191 | 192 | :ble m 193 | beq @0 194 | bcc @0 195 | / 196 | 197 | :sbn m 198 | ora #2^@0 199 | / 200 | 201 | :sbBn m 202 | lda @0 203 | ora #2^@1 204 | sta @0 205 | / 206 | 207 | :sbWn m 208 | lda @0 209 | ora #<2^@1 210 | sta @0 211 | lda @0+1 212 | ora #>2^@1 213 | sta @0+1 214 | / 215 | 216 | :cbn m 217 | and #$ff-2^@0 218 | / 219 | 220 | :cbBn m 221 | lda @0 222 | and #$ff-2^@1 223 | sta @0 224 | / 225 | 226 | :cbWn m 227 | lda @0 228 | and #<$ffff-2^@1 229 | sta @0 230 | lda @0+1 231 | and #>$ffff-2^@1 232 | sta @0+1 233 | / 234 | 235 | 236 | :roln m 237 | ldx #@0 238 | beq :done 239 | ::10 rol 240 | dex 241 | bne :10 242 | ::done 243 | / 244 | 245 | :rolBn m 246 | ldx #@1 247 | beq :done 248 | ::10 rol @0 249 | dex 250 | bne :10 251 | ::done 252 | / 253 | 254 | :rolWn m 255 | ldx #@1 256 | beq :done 257 | ::10 rol @0 258 | rol @0+1 259 | dex 260 | bne :10 261 | ::done 262 | / 263 | 264 | :rorn m 265 | ldx #@0 266 | beq :done 267 | ::10 ror 268 | dex 269 | bne :10 270 | ::done 271 | / 272 | 273 | :rorBn m 274 | ldx #@1 275 | beq :done 276 | ::10 ror @0 277 | dex 278 | bne :10 279 | ::done 280 | / 281 | 282 | :rorWn m 283 | ldx #@1 284 | beq :done 285 | ::10 ror @0+1 286 | ror @0 287 | dex 288 | bne :10 289 | ::done 290 | / 291 | 292 | 293 | :asln m 294 | ldx #@0 295 | beq :done 296 | ::10 asl 297 | dex 298 | bne :10 299 | ::done 300 | / 301 | 302 | :aslBn m 303 | ldx #@1 304 | beq :done 305 | ::10 asl @0 306 | dex 307 | bne :10 308 | ::done 309 | / 310 | 311 | :aslWn m 312 | ldx #@1 313 | beq :done 314 | ::10 asl @0 315 | rol @0+1 316 | dex 317 | bne :10 318 | ::done 319 | / 320 | 321 | :lsrn m 322 | ldx #@0 323 | beq :done 324 | ::10 lsr 325 | dex 326 | bne :10 327 | ::done 328 | / 329 | 330 | 331 | :lsrBn m 332 | ldx #@1 333 | beq :done 334 | ::10 lsr @0 335 | dex 336 | bne :10 337 | ::done 338 | / 339 | 340 | :lsrWn m 341 | ldx #@1 342 | beq :done 343 | ::10 lsr @0+1 344 | ror @0 345 | dex 346 | bne :10 347 | ::done 348 | / 349 | 350 | 351 | -------------------------------------------------------------------------------- /128_de/WinInclude/InvFrame.s: -------------------------------------------------------------------------------- 1 | .InvFrame 2 | ; Parameter: r2-r4 Akku: Muster 3 | ; Zur}ck: ---- 4 | ; Zerst|rt: r0,r1,r5-r7,a,x,y 5 | PushW r2 6 | PushW r3 7 | PushW r4 8 | jsr HideOnlyMouse 9 | PopW r4 10 | PopW r3 11 | PopW r2 12 | lda graphMode 13 | bpl :64n 14 | bmi :64n 15 | PushW r8 16 | PushW r11 17 | PushB r2H 18 | MoveB r2L,r11L 19 | jsr InvertLine 20 | pla 21 | sta r11L 22 | jsr InvertLine 23 | PopW r11 24 | PopW r8 25 | rts 26 | ::64n jsr VLine 27 | lda #%10101010 28 | :InvHLine sta r1L 29 | lda r3L 30 | and #%1111 1000 31 | clc 32 | adc #8 33 | sta r0L 34 | lda r3H 35 | adc #00 36 | sta r0H 37 | lda r4L 38 | and #%1111 1000 39 | sec 40 | sbc r0L 41 | sta r1H 42 | lda r4H 43 | sbc r0H 44 | 45 | ldy #3 46 | ::10 lsr 47 | ror r1H 48 | dey 49 | bne :10 50 | 51 | lda graphMode 52 | bpl :64e 53 | lsr r0H 54 | ror r0L 55 | lsr r0H 56 | ror r0L 57 | lsr r0H 58 | ror r0L 59 | ::64e ldx r2L 60 | jsr :15 61 | ldx r2H 62 | ::15 jsr GetScanLine 63 | lda r5L 64 | clc 65 | adc r0L 66 | sta r5L 67 | lda r5H 68 | adc r0H 69 | sta r5H 70 | lda r5L 71 | sec 72 | sbc #8 73 | sta r6L 74 | lda r5H 75 | sbc #0 76 | sta r6H 77 | lda graphMode 78 | bpl :64f 79 | lda r6L 80 | clc 81 | adc #7 82 | sta r6L 83 | lda r6H 84 | adc #0 85 | sta r6H 86 | ::64f ldx r1H 87 | ldy #0 88 | ::20 lda r5H 89 | bmi :64 90 | jsr a128 91 | jmp :128 92 | ::64 lda (r5),y 93 | eor r1L 94 | sta (r5),y 95 | jmp :64g 96 | ::128 inc r5L 97 | beq :64h2 98 | bne :22 99 | ::64g lda r5L 100 | clc 101 | adc #8 102 | sta r5L 103 | ::64h bcc :22 104 | ::64h2 inc r5H 105 | ::22 dex 106 | bne :20 107 | 108 | ldy #0 109 | lda r3L 110 | and #%00000111 111 | tax 112 | lda :maskTab,x 113 | and r1L 114 | ldx r6H 115 | bmi :65 116 | jsr c128 117 | jmp :129 118 | ::65 eor (r6),y 119 | sta (r6),y 120 | ::129 lda r4L 121 | and #%00000111 122 | tax 123 | lda :maskTab,x 124 | eor #$ff 125 | and r1L 126 | ldx r5H 127 | bmi :66 128 | jsr d128 129 | rts 130 | ::66 eor (r5),y 131 | sta (r5),y 132 | rts 133 | ::maskTab b %11111111,%01111111,%00111111,%00011111 134 | b %00001111,%00000011,%00000001,%00000000 135 | 136 | :VLine 137 | ldy #1 138 | ::05 lda r2L,y 139 | and #%1111 1000 140 | sta r0L,y 141 | dey 142 | bpl :05 143 | ldx r0L 144 | jsr GetScanLine ; Card 145 | lda r3L 146 | ldy r3H 147 | jsr :07 148 | lda r4L 149 | ldy r4H 150 | 151 | ::07 tax 152 | bit graphMode 153 | bmi :g80 154 | and #%11111000 155 | ::07a clc 156 | adc r5L 157 | sta r6L 158 | tya 159 | adc r5H 160 | sta r6H 161 | jmp :g40 162 | ::g80 sty r6H 163 | lsr r6H 164 | ror 165 | lsr r6H 166 | ror 167 | lsr r6H 168 | ror 169 | ldy r6H 170 | jmp :07a 171 | ::g40 txa 172 | and #7 173 | tax 174 | lda Masken,x 175 | sta r1L 176 | 177 | ; Einzeichnen des oberen Restes: 178 | lda r2L 179 | and #7 180 | bit graphMode 181 | bpl :09 182 | pha 183 | tay 184 | iny 185 | ::loop dey 186 | beq :08 187 | AddVW 80,r6 188 | jmp :loop 189 | ::08 pla 190 | ::09 tay 191 | ::10 jsr :110 192 | tya 193 | sec 194 | sbc #8 195 | ::20 sta r1H ; AnfangsPkt (gerade ung.) 196 | ; Mitte: 197 | lda r0H 198 | sec 199 | sbc r0L 200 | lsr 201 | lsr 202 | lsr 203 | tax ; x+1 Durchl{ufe 204 | dex 205 | beq :50 206 | ::40 ldy r1H 207 | ::30 jsr :110 208 | dex 209 | bne :40 210 | ; Rest Unten: 211 | ::50 lda r2H 212 | and #7 213 | cmp r1H 214 | blt :60 215 | sta r7L 216 | ldy r1H 217 | ::55 jsr :100 218 | cpy r7L 219 | ble :55 220 | ::60 rts 221 | ::100 lda r6H 222 | bmi :64 223 | jsr e128 224 | jmp :128 225 | ::64 lda (r6),y 226 | eor r1L 227 | sta (r6),y 228 | ::128 iny 229 | iny 230 | lda graphMode 231 | bpl :g41 232 | AddVW 160,r6 233 | ::g41 rts 234 | ::110 jsr :100 235 | cpy #8 236 | blt :110 237 | lda graphMode 238 | bmi :g81 239 | AddVW 320,r6 240 | ::g81 rts 241 | :Masken b 128,64,32,16,8,4,2,1 242 | 243 | .d128 ;eor (r5),y 244 | ;sta (r5),y 245 | sta :a 246 | PushB r1L 247 | lda :a 248 | sta r1L 249 | jsr a128 250 | PopB r1L 251 | rts 252 | ::a b 0 253 | .c128 ;eor (r6),y 254 | ;sta (r6),y 255 | sta :a 256 | PushB r1L 257 | lda :a 258 | sta r1L 259 | jsr b128 260 | PopB r1L 261 | rts 262 | ::a b 0 263 | .e128 MoveW r6,VDCMem 264 | tya 265 | pha 266 | ldy #0 267 | jsr a128x 268 | pla 269 | tay 270 | rts 271 | .b128 MoveW r6,VDCMem 272 | jmp a128x 273 | .a128 MoveW r5,VDCMem 274 | .a128x tya 275 | pha 276 | txa 277 | pha 278 | DecW VDCMem 279 | jsr :setadr 280 | IncW VDCMem 281 | ldx #$1f 282 | jsr GetReg ; Inhalt aus $1f holen 283 | jsr GetReg 284 | eor r1L 285 | pha 286 | jsr :setadr 287 | pla 288 | ldx #$1f 289 | jsr SetReg 290 | ldx #$12 ; Zeichen schreiben durch beliebiges Beschreiben 291 | jsr SetReg ;von Reg. $12 292 | pla 293 | tax 294 | pla 295 | tay 296 | rts 297 | ::setadr tya 298 | clc 299 | adc VDCMem 300 | php 301 | ldx #$13 302 | jsr SetReg 303 | dex 304 | plp 305 | lda VDCMem+1 306 | adc #0 307 | jmp SetReg 308 | 309 | :VDCMem w 0 310 | .SetReg stx $d600 311 | ::wait bit $d600 312 | bpl :wait 313 | sta $d601 314 | rts 315 | .GetReg stx $d600 316 | ::wait bit $d600 317 | bpl :wait 318 | lda $d601 319 | rts 320 | -------------------------------------------------------------------------------- /128_en/WinInclude/InvFrame.s: -------------------------------------------------------------------------------- 1 | .InvFrame 2 | ; Parameter: r2-r4 Akku: Muster 3 | ; Zur}ck: ---- 4 | ; Zerst|rt: r0,r1,r5-r7,a,x,y 5 | PushW r2 6 | PushW r3 7 | PushW r4 8 | jsr HideOnlyMouse 9 | PopW r4 10 | PopW r3 11 | PopW r2 12 | lda graphMode 13 | bpl :64n 14 | bmi :64n 15 | PushW r8 16 | PushW r11 17 | PushB r2H 18 | MoveB r2L,r11L 19 | jsr InvertLine 20 | pla 21 | sta r11L 22 | jsr InvertLine 23 | PopW r11 24 | PopW r8 25 | rts 26 | ::64n jsr VLine 27 | lda #%10101010 28 | :InvHLine sta r1L 29 | lda r3L 30 | and #%1111 1000 31 | clc 32 | adc #8 33 | sta r0L 34 | lda r3H 35 | adc #00 36 | sta r0H 37 | lda r4L 38 | and #%1111 1000 39 | sec 40 | sbc r0L 41 | sta r1H 42 | lda r4H 43 | sbc r0H 44 | 45 | ldy #3 46 | ::10 lsr 47 | ror r1H 48 | dey 49 | bne :10 50 | 51 | lda graphMode 52 | bpl :64e 53 | lsr r0H 54 | ror r0L 55 | lsr r0H 56 | ror r0L 57 | lsr r0H 58 | ror r0L 59 | ::64e ldx r2L 60 | jsr :15 61 | ldx r2H 62 | ::15 jsr GetScanLine 63 | lda r5L 64 | clc 65 | adc r0L 66 | sta r5L 67 | lda r5H 68 | adc r0H 69 | sta r5H 70 | lda r5L 71 | sec 72 | sbc #8 73 | sta r6L 74 | lda r5H 75 | sbc #0 76 | sta r6H 77 | lda graphMode 78 | bpl :64f 79 | lda r6L 80 | clc 81 | adc #7 82 | sta r6L 83 | lda r6H 84 | adc #0 85 | sta r6H 86 | ::64f ldx r1H 87 | ldy #0 88 | ::20 lda r5H 89 | bmi :64 90 | jsr a128 91 | jmp :128 92 | ::64 lda (r5),y 93 | eor r1L 94 | sta (r5),y 95 | jmp :64g 96 | ::128 inc r5L 97 | beq :64h2 98 | bne :22 99 | ::64g lda r5L 100 | clc 101 | adc #8 102 | sta r5L 103 | ::64h bcc :22 104 | ::64h2 inc r5H 105 | ::22 dex 106 | bne :20 107 | 108 | ldy #0 109 | lda r3L 110 | and #%00000111 111 | tax 112 | lda :maskTab,x 113 | and r1L 114 | ldx r6H 115 | bmi :65 116 | jsr c128 117 | jmp :129 118 | ::65 eor (r6),y 119 | sta (r6),y 120 | ::129 lda r4L 121 | and #%00000111 122 | tax 123 | lda :maskTab,x 124 | eor #$ff 125 | and r1L 126 | ldx r5H 127 | bmi :66 128 | jsr d128 129 | rts 130 | ::66 eor (r5),y 131 | sta (r5),y 132 | rts 133 | ::maskTab b %11111111,%01111111,%00111111,%00011111 134 | b %00001111,%00000011,%00000001,%00000000 135 | 136 | :VLine 137 | ldy #1 138 | ::05 lda r2L,y 139 | and #%1111 1000 140 | sta r0L,y 141 | dey 142 | bpl :05 143 | ldx r0L 144 | jsr GetScanLine ; Card 145 | lda r3L 146 | ldy r3H 147 | jsr :07 148 | lda r4L 149 | ldy r4H 150 | 151 | ::07 tax 152 | bit graphMode 153 | bmi :g80 154 | and #%11111000 155 | ::07a clc 156 | adc r5L 157 | sta r6L 158 | tya 159 | adc r5H 160 | sta r6H 161 | jmp :g40 162 | ::g80 sty r6H 163 | lsr r6H 164 | ror 165 | lsr r6H 166 | ror 167 | lsr r6H 168 | ror 169 | ldy r6H 170 | jmp :07a 171 | ::g40 txa 172 | and #7 173 | tax 174 | lda Masken,x 175 | sta r1L 176 | 177 | ; Einzeichnen des oberen Restes: 178 | lda r2L 179 | and #7 180 | bit graphMode 181 | bpl :09 182 | pha 183 | tay 184 | iny 185 | ::loop dey 186 | beq :08 187 | AddVW 80,r6 188 | jmp :loop 189 | ::08 pla 190 | ::09 tay 191 | ::10 jsr :110 192 | tya 193 | sec 194 | sbc #8 195 | ::20 sta r1H ; AnfangsPkt (gerade ung.) 196 | ; Mitte: 197 | lda r0H 198 | sec 199 | sbc r0L 200 | lsr 201 | lsr 202 | lsr 203 | tax ; x+1 Durchl{ufe 204 | dex 205 | beq :50 206 | ::40 ldy r1H 207 | ::30 jsr :110 208 | dex 209 | bne :40 210 | ; Rest Unten: 211 | ::50 lda r2H 212 | and #7 213 | cmp r1H 214 | blt :60 215 | sta r7L 216 | ldy r1H 217 | ::55 jsr :100 218 | cpy r7L 219 | ble :55 220 | ::60 rts 221 | ::100 lda r6H 222 | bmi :64 223 | jsr e128 224 | jmp :128 225 | ::64 lda (r6),y 226 | eor r1L 227 | sta (r6),y 228 | ::128 iny 229 | iny 230 | lda graphMode 231 | bpl :g41 232 | AddVW 160,r6 233 | ::g41 rts 234 | ::110 jsr :100 235 | cpy #8 236 | blt :110 237 | lda graphMode 238 | bmi :g81 239 | AddVW 320,r6 240 | ::g81 rts 241 | :Masken b 128,64,32,16,8,4,2,1 242 | 243 | .d128 ;eor (r5),y 244 | ;sta (r5),y 245 | sta :a 246 | PushB r1L 247 | lda :a 248 | sta r1L 249 | jsr a128 250 | PopB r1L 251 | rts 252 | ::a b 0 253 | .c128 ;eor (r6),y 254 | ;sta (r6),y 255 | sta :a 256 | PushB r1L 257 | lda :a 258 | sta r1L 259 | jsr b128 260 | PopB r1L 261 | rts 262 | ::a b 0 263 | .e128 MoveW r6,VDCMem 264 | tya 265 | pha 266 | ldy #0 267 | jsr a128x 268 | pla 269 | tay 270 | rts 271 | .b128 MoveW r6,VDCMem 272 | jmp a128x 273 | .a128 MoveW r5,VDCMem 274 | .a128x tya 275 | pha 276 | txa 277 | pha 278 | DecW VDCMem 279 | jsr :setadr 280 | IncW VDCMem 281 | ldx #$1f 282 | jsr GetReg ; Inhalt aus $1f holen 283 | jsr GetReg 284 | eor r1L 285 | pha 286 | jsr :setadr 287 | pla 288 | ldx #$1f 289 | jsr SetReg 290 | ldx #$12 ; Zeichen schreiben durch beliebiges Beschreiben 291 | jsr SetReg ;von Reg. $12 292 | pla 293 | tax 294 | pla 295 | tay 296 | rts 297 | ::setadr tya 298 | clc 299 | adc VDCMem 300 | php 301 | ldx #$13 302 | jsr SetReg 303 | dex 304 | plp 305 | lda VDCMem+1 306 | adc #0 307 | jmp SetReg 308 | 309 | :VDCMem w 0 310 | .SetReg stx $d600 311 | ::wait bit $d600 312 | bpl :wait 313 | sta $d601 314 | rts 315 | .GetReg stx $d600 316 | ::wait bit $d600 317 | bpl :wait 318 | lda $d601 319 | rts 320 | -------------------------------------------------------------------------------- /64_de/Protect/TopMac(a).s: -------------------------------------------------------------------------------- 1 | :MAddW m 2 | lda @0 3 | clc 4 | adc @1 5 | sta @2 6 | lda @0+1 7 | adc @1+1 8 | sta @2+1 9 | / 10 | :MSubW m 11 | lda @0 12 | sec 13 | sbc @1 14 | sta @2 15 | lda @0+1 16 | sbc @1+1 17 | sta @2+1 18 | / 19 | :mpt m 20 | w @0 21 | b @1 22 | w @2 23 | / 24 | :ipt m 25 | w @0 26 | b @1,@2,@3,@4 27 | w @5 28 | / 29 | :GotoXY m 30 | b GOTOXY 31 | w @0 32 | b @1 33 | / 34 | :GotoX m 35 | b GOTOX 36 | w @0 37 | / 38 | :RectangleTo m 39 | b RECTANGLETO 40 | w @0 41 | b @1 42 | / 43 | :FrameRecTo m 44 | b FRAME_RECTO 45 | w @0 46 | b @1 47 | / 48 | :NewPattern m 49 | b NEWPATTERN,@0 50 | / 51 | :MovePenTo m 52 | b MOVEPENTO 53 | w @0 54 | b @1 55 | / 56 | :EscPutstring m 57 | b ESC_PUTSTRING 58 | w @0 59 | b @1 60 | / 61 | :LineTo m 62 | b LINETO 63 | w @0 64 | b @1 65 | / 66 | 67 | :IncW m 68 | inc @0 69 | bne :10 70 | inc @0+1 71 | ::10 / 72 | :DecW m 73 | lda @0 74 | bne :10 75 | dec @0+1 76 | ::10 dec @0 77 | / 78 | 79 | ; Makrodefinitionen 80 | ; Revision 28.06.89 81 | ; alle Branch-Befehle fkt. nicht mit 82 | ; Version 3.9 83 | ; Makros f}r BitSetzen bzw. -L|schen 84 | ; k|nnen noch nicht verwendet werden 85 | 86 | :LoadB m 87 | lda #@1 88 | sta @0 89 | / 90 | 91 | :LoadW m 92 | lda #<@1 93 | sta @0 94 | lda #>@1 95 | sta @0+1 96 | / 97 | 98 | :MoveB m 99 | lda @0 100 | sta @1 101 | / 102 | 103 | :MoveW m 104 | lda @0 105 | sta @1 106 | lda @0+1 107 | sta @1+1 108 | / 109 | 110 | :add m 111 | clc 112 | adc #@0 113 | / 114 | 115 | :adda m 116 | clc 117 | adc @0 118 | / 119 | 120 | :AddB m 121 | clc 122 | lda @0 123 | adc @1 124 | sta @1 125 | / 126 | 127 | :AddW m 128 | lda @0 129 | clc 130 | adc @1 131 | sta @1 132 | lda @0+1 133 | adc @1+1 134 | sta @1+1 135 | / 136 | 137 | 138 | :AddVB m 139 | lda @1 140 | clc 141 | adc #@0 142 | sta @1 143 | / 144 | 145 | :AddVW m 146 | lda #<@0 147 | clc 148 | adc @1 149 | sta @1 150 | lda #>@0 151 | adc @1+1 152 | sta @1+1 153 | / 154 | 155 | :sub m 156 | sec 157 | sbc #@0 158 | / 159 | 160 | :suba m 161 | sec 162 | sbc @0 163 | / 164 | 165 | :SubB m 166 | sec 167 | lda @1 168 | sbc @0 169 | sta @1 170 | / 171 | 172 | :SubW m 173 | lda @1 174 | sec 175 | sbc @0 176 | sta @1 177 | lda @1+1 178 | sbc @0+1 179 | sta @1+1 180 | / 181 | 182 | :SubVB m 183 | sec 184 | lda @1 185 | sbc #@0 186 | sta @1 187 | / 188 | 189 | :SubVW m 190 | lda @1 191 | sec 192 | sbc #<@0 193 | sta @1 194 | lda @1+1 195 | sbc #>@0 196 | sta @1+1 197 | / 198 | 199 | 200 | :CmpB m 201 | lda @0 202 | cmp @1 203 | / 204 | 205 | :CmpBI m 206 | lda @0 207 | cmp #@1 208 | / 209 | 210 | :CmpW m 211 | lda @0+1 212 | cmp @1+1 213 | bne :ende 214 | lda @0 215 | cmp @1 216 | ::ende 217 | / 218 | 219 | 220 | :CmpWI m 221 | lda @0+1 222 | cmp #>@1 223 | bne :ende1 224 | lda @0 225 | cmp #<@1 226 | ::ende1 227 | / 228 | 229 | :PushB m 230 | lda @0 231 | pha 232 | / 233 | 234 | :PushW m 235 | lda @0+1 236 | pha 237 | lda @0 238 | pha 239 | / 240 | 241 | 242 | :PopB m 243 | pla 244 | sta @0 245 | / 246 | 247 | :PopW m 248 | pla 249 | sta @0 250 | pla 251 | sta @0+1 252 | / 253 | 254 | :bra m 255 | clv 256 | bvc @0 257 | / 258 | 259 | 260 | :bge m 261 | bcs @0 262 | / 263 | 264 | :bgt m 265 | beq :done 266 | bcs @0 267 | ::done 268 | / 269 | 270 | :blt m 271 | bcc @0 272 | / 273 | 274 | :ble m 275 | beq @0 276 | bcc @0 277 | / 278 | 279 | :sbn m 280 | ora #2^@0 281 | / 282 | 283 | :sbBn m 284 | lda @0 285 | ora #2^@1 286 | sta @0 287 | / 288 | 289 | :sbWn m 290 | lda @0 291 | ora #<2^@1 292 | sta @0 293 | lda @0+1 294 | ora #>2^@1 295 | sta @0+1 296 | / 297 | 298 | :cbn m 299 | and #$ff-2^@0 300 | / 301 | 302 | :cbBn m 303 | lda @0 304 | and #$ff-2^@1 305 | sta @0 306 | / 307 | 308 | :cbWn m 309 | lda @0 310 | and #<$ffff-2^@1 311 | sta @0 312 | lda @0+1 313 | and #>$ffff-2^@1 314 | sta @0+1 315 | / 316 | 317 | 318 | :roln m 319 | ldx #@0 320 | beq :done 321 | ::10 rol 322 | dex 323 | bne :10 324 | ::done 325 | / 326 | 327 | :rolBn m 328 | ldx #@1 329 | beq :done 330 | ::10 rol @0 331 | dex 332 | bne :10 333 | ::done 334 | / 335 | 336 | :rolWn m 337 | ldx #@1 338 | beq :done 339 | ::10 rol @0 340 | rol @0+1 341 | dex 342 | bne :10 343 | ::done 344 | / 345 | 346 | :rorn m 347 | ldx #@0 348 | beq :done 349 | ::10 ror 350 | dex 351 | bne :10 352 | ::done 353 | / 354 | 355 | :rorBn m 356 | ldx #@1 357 | beq :done 358 | ::10 ror @0 359 | dex 360 | bne :10 361 | ::done 362 | / 363 | 364 | :rorWn m 365 | ldx #@1 366 | beq :done 367 | ::10 ror @0+1 368 | ror @0 369 | dex 370 | bne :10 371 | ::done 372 | / 373 | 374 | 375 | :asln m 376 | ldx #@0 377 | beq :done 378 | ::10 asl 379 | dex 380 | bne :10 381 | ::done 382 | / 383 | 384 | :aslBn m 385 | ldx #@1 386 | beq :done 387 | ::10 asl @0 388 | dex 389 | bne :10 390 | ::done 391 | / 392 | 393 | :aslWn m 394 | ldx #@1 395 | beq :done 396 | ::10 asl @0 397 | rol @0+1 398 | dex 399 | bne :10 400 | ::done 401 | / 402 | 403 | :lsrn m 404 | ldx #@0 405 | beq :done 406 | ::10 lsr 407 | dex 408 | bne :10 409 | ::done 410 | / 411 | 412 | 413 | :lsrBn m 414 | ldx #@1 415 | beq :done 416 | ::10 lsr @0 417 | dex 418 | bne :10 419 | ::done 420 | / 421 | 422 | :lsrWn m 423 | ldx #@1 424 | beq :done 425 | ::10 lsr @0+1 426 | ror @0 427 | dex 428 | bne :10 429 | ::done 430 | / 431 | 432 | 433 | -------------------------------------------------------------------------------- /64_en/Protect/TopMac(a).s: -------------------------------------------------------------------------------- 1 | :MAddW m 2 | lda @0 3 | clc 4 | adc @1 5 | sta @2 6 | lda @0+1 7 | adc @1+1 8 | sta @2+1 9 | / 10 | :MSubW m 11 | lda @0 12 | sec 13 | sbc @1 14 | sta @2 15 | lda @0+1 16 | sbc @1+1 17 | sta @2+1 18 | / 19 | :mpt m 20 | w @0 21 | b @1 22 | w @2 23 | / 24 | :ipt m 25 | w @0 26 | b @1,@2,@3,@4 27 | w @5 28 | / 29 | :GotoXY m 30 | b GOTOXY 31 | w @0 32 | b @1 33 | / 34 | :GotoX m 35 | b GOTOX 36 | w @0 37 | / 38 | :RectangleTo m 39 | b RECTANGLETO 40 | w @0 41 | b @1 42 | / 43 | :FrameRecTo m 44 | b FRAME_RECTO 45 | w @0 46 | b @1 47 | / 48 | :NewPattern m 49 | b NEWPATTERN,@0 50 | / 51 | :MovePenTo m 52 | b MOVEPENTO 53 | w @0 54 | b @1 55 | / 56 | :EscPutstring m 57 | b ESC_PUTSTRING 58 | w @0 59 | b @1 60 | / 61 | :LineTo m 62 | b LINETO 63 | w @0 64 | b @1 65 | / 66 | 67 | :IncW m 68 | inc @0 69 | bne :10 70 | inc @0+1 71 | ::10 / 72 | :DecW m 73 | lda @0 74 | bne :10 75 | dec @0+1 76 | ::10 dec @0 77 | / 78 | 79 | ; Makrodefinitionen 80 | ; Revision 28.06.89 81 | ; alle Branch-Befehle fkt. nicht mit 82 | ; Version 3.9 83 | ; Makros f}r BitSetzen bzw. -L|schen 84 | ; k|nnen noch nicht verwendet werden 85 | 86 | :LoadB m 87 | lda #@1 88 | sta @0 89 | / 90 | 91 | :LoadW m 92 | lda #<@1 93 | sta @0 94 | lda #>@1 95 | sta @0+1 96 | / 97 | 98 | :MoveB m 99 | lda @0 100 | sta @1 101 | / 102 | 103 | :MoveW m 104 | lda @0 105 | sta @1 106 | lda @0+1 107 | sta @1+1 108 | / 109 | 110 | :add m 111 | clc 112 | adc #@0 113 | / 114 | 115 | :adda m 116 | clc 117 | adc @0 118 | / 119 | 120 | :AddB m 121 | clc 122 | lda @0 123 | adc @1 124 | sta @1 125 | / 126 | 127 | :AddW m 128 | lda @0 129 | clc 130 | adc @1 131 | sta @1 132 | lda @0+1 133 | adc @1+1 134 | sta @1+1 135 | / 136 | 137 | 138 | :AddVB m 139 | lda @1 140 | clc 141 | adc #@0 142 | sta @1 143 | / 144 | 145 | :AddVW m 146 | lda #<@0 147 | clc 148 | adc @1 149 | sta @1 150 | lda #>@0 151 | adc @1+1 152 | sta @1+1 153 | / 154 | 155 | :sub m 156 | sec 157 | sbc #@0 158 | / 159 | 160 | :suba m 161 | sec 162 | sbc @0 163 | / 164 | 165 | :SubB m 166 | sec 167 | lda @1 168 | sbc @0 169 | sta @1 170 | / 171 | 172 | :SubW m 173 | lda @1 174 | sec 175 | sbc @0 176 | sta @1 177 | lda @1+1 178 | sbc @0+1 179 | sta @1+1 180 | / 181 | 182 | :SubVB m 183 | sec 184 | lda @1 185 | sbc #@0 186 | sta @1 187 | / 188 | 189 | :SubVW m 190 | lda @1 191 | sec 192 | sbc #<@0 193 | sta @1 194 | lda @1+1 195 | sbc #>@0 196 | sta @1+1 197 | / 198 | 199 | 200 | :CmpB m 201 | lda @0 202 | cmp @1 203 | / 204 | 205 | :CmpBI m 206 | lda @0 207 | cmp #@1 208 | / 209 | 210 | :CmpW m 211 | lda @0+1 212 | cmp @1+1 213 | bne :ende 214 | lda @0 215 | cmp @1 216 | ::ende 217 | / 218 | 219 | 220 | :CmpWI m 221 | lda @0+1 222 | cmp #>@1 223 | bne :ende1 224 | lda @0 225 | cmp #<@1 226 | ::ende1 227 | / 228 | 229 | :PushB m 230 | lda @0 231 | pha 232 | / 233 | 234 | :PushW m 235 | lda @0+1 236 | pha 237 | lda @0 238 | pha 239 | / 240 | 241 | 242 | :PopB m 243 | pla 244 | sta @0 245 | / 246 | 247 | :PopW m 248 | pla 249 | sta @0 250 | pla 251 | sta @0+1 252 | / 253 | 254 | :bra m 255 | clv 256 | bvc @0 257 | / 258 | 259 | 260 | :bge m 261 | bcs @0 262 | / 263 | 264 | :bgt m 265 | beq :done 266 | bcs @0 267 | ::done 268 | / 269 | 270 | :blt m 271 | bcc @0 272 | / 273 | 274 | :ble m 275 | beq @0 276 | bcc @0 277 | / 278 | 279 | :sbn m 280 | ora #2^@0 281 | / 282 | 283 | :sbBn m 284 | lda @0 285 | ora #2^@1 286 | sta @0 287 | / 288 | 289 | :sbWn m 290 | lda @0 291 | ora #<2^@1 292 | sta @0 293 | lda @0+1 294 | ora #>2^@1 295 | sta @0+1 296 | / 297 | 298 | :cbn m 299 | and #$ff-2^@0 300 | / 301 | 302 | :cbBn m 303 | lda @0 304 | and #$ff-2^@1 305 | sta @0 306 | / 307 | 308 | :cbWn m 309 | lda @0 310 | and #<$ffff-2^@1 311 | sta @0 312 | lda @0+1 313 | and #>$ffff-2^@1 314 | sta @0+1 315 | / 316 | 317 | 318 | :roln m 319 | ldx #@0 320 | beq :done 321 | ::10 rol 322 | dex 323 | bne :10 324 | ::done 325 | / 326 | 327 | :rolBn m 328 | ldx #@1 329 | beq :done 330 | ::10 rol @0 331 | dex 332 | bne :10 333 | ::done 334 | / 335 | 336 | :rolWn m 337 | ldx #@1 338 | beq :done 339 | ::10 rol @0 340 | rol @0+1 341 | dex 342 | bne :10 343 | ::done 344 | / 345 | 346 | :rorn m 347 | ldx #@0 348 | beq :done 349 | ::10 ror 350 | dex 351 | bne :10 352 | ::done 353 | / 354 | 355 | :rorBn m 356 | ldx #@1 357 | beq :done 358 | ::10 ror @0 359 | dex 360 | bne :10 361 | ::done 362 | / 363 | 364 | :rorWn m 365 | ldx #@1 366 | beq :done 367 | ::10 ror @0+1 368 | ror @0 369 | dex 370 | bne :10 371 | ::done 372 | / 373 | 374 | 375 | :asln m 376 | ldx #@0 377 | beq :done 378 | ::10 asl 379 | dex 380 | bne :10 381 | ::done 382 | / 383 | 384 | :aslBn m 385 | ldx #@1 386 | beq :done 387 | ::10 asl @0 388 | dex 389 | bne :10 390 | ::done 391 | / 392 | 393 | :aslWn m 394 | ldx #@1 395 | beq :done 396 | ::10 asl @0 397 | rol @0+1 398 | dex 399 | bne :10 400 | ::done 401 | / 402 | 403 | :lsrn m 404 | ldx #@0 405 | beq :done 406 | ::10 lsr 407 | dex 408 | bne :10 409 | ::done 410 | / 411 | 412 | 413 | :lsrBn m 414 | ldx #@1 415 | beq :done 416 | ::10 lsr @0 417 | dex 418 | bne :10 419 | ::done 420 | / 421 | 422 | :lsrWn m 423 | ldx #@1 424 | beq :done 425 | ::10 lsr @0+1 426 | ror @0 427 | dex 428 | bne :10 429 | ::done 430 | / 431 | 432 | 433 | -------------------------------------------------------------------------------- /128_en/Main/DeskTop.sub4.s: -------------------------------------------------------------------------------- 1 | ; Datum: 6.8.91 2 | :curHeight = $29 3 | n "DeskMod D" 4 | if .p 5 | t "TopSym" 6 | t "TopMac 7 | t "Sym128.erg" 8 | t "CiSym" 9 | t "CiMac" 10 | t "DeskWindows..ext" 11 | t "DeskTop.main.ext" 12 | endif 13 | o ModStart 14 | ; jmp FileInfo 15 | 16 | ; FileBox-Position: 17 | :FIB_OBEN = 40 18 | :FIB_UNTEN = 180 19 | :FIB_LINKS = 70+DOUBLE_W 20 | :FIB_RECHTS = 250+DOUBLE_W 21 | 22 | :FileInfo jsr GetAktlDisk 23 | tax 24 | beq :05 25 | jsr ClearMultiFile2 26 | cpx #12 27 | beq :07 28 | jmp FehlerAusgabe 29 | ::05 ldx MultiCount 30 | dex 31 | bpl :geht 32 | ::07 rts 33 | ::geht LoadW r2,MultiFileTab 34 | ::10 jsr GetMark 35 | tax 36 | bmi :20 37 | jsr GetFileName 38 | LoadB DialBoxFlag,2 39 | jsr DispThisInfo 40 | txa 41 | beq :10 42 | jmp FehlerAusgabe 43 | ::20 LoadB DialBoxFlag,0 44 | jmp RecoverLast 45 | :DbText m ; x,y,adr 46 | b $0b,@0,@1 47 | w @2 48 | / 49 | 50 | :Text = fileHeader+$a0 51 | :AlternateFlag b 0 52 | :DispThisInfo ; File-Info des Files Name darstellen 53 | LoadW r6,Name 54 | jsr FindFile 55 | txa 56 | bne :err 57 | PushW r1 58 | PushW r5 59 | jsr i_FillRam 60 | w $ff,$8100 61 | b 0 62 | lda $8400+22 63 | beq :10 64 | MoveW $8400+19,r1 65 | LoadW r4,$8100 66 | jsr GetBlock 67 | txa 68 | beq :10 69 | PopW r5 70 | PopW r1 71 | ::err rts 72 | ::10 LoadW r0,Name 73 | jsr StringLen 74 | lsr r1L 75 | lda #(FIB_RECHTS-FIB_LINKS)/2-10 76 | sec 77 | sbc r1L 78 | sta :titelpos+1 79 | LoadW a1,$8100+77 80 | LoadW a3,$8100+97 81 | LoadW a4,:ta 82 | ldx $8100+70 83 | beq :20 84 | LoadW a4,:tb 85 | ::20 lda $8400+22 86 | tay 87 | lda AutTab,y 88 | bne :22 89 | LoadW a3,:tn ; kein Autor anzeigen 90 | ::22 tya 91 | asl 92 | tay 93 | lda TypTab,y 94 | sta a2L 95 | lda TypTab+1,y 96 | sta a2H 97 | LoadB AlternateFlag,0 98 | LoadW r0,:db 99 | jsr NewDoDlgBox 100 | PopW r5 101 | PopW r1 102 | ldx AlternateFlag 103 | beq :err2 104 | ldy #0 105 | lda $8400 106 | sta (r5),y 107 | sta fileHeader+68 108 | LoadW r4,$8000 109 | jsr PutBlock 110 | txa 111 | bne :err2 112 | MoveW dirEntryBuf+19,r1 113 | lda $8400+22 114 | beq :err2 115 | LoadW r4,fileHeader 116 | jmp PutBlock 117 | ::err2 rts 118 | ::ta b "sequential",0 119 | ::tb b "VLIR" 120 | ::tn b 0 121 | 122 | ::db b $01 123 | b FIB_OBEN,FIB_UNTEN 124 | w FIB_LINKS,FIB_RECHTS 125 | DbText 50,10,:boldtext 126 | ::titelpos DbText 70,12,Name 127 | DbText 10,30,:t1 128 | DbText 10,40,:t2 129 | DbText 10,50,:t3 130 | DbText 10,60,:t7 131 | DbText 10,70,:t4 132 | DbText 10,80,:t5 133 | DbText 60,91,:t6 134 | b $0c,55,30,a1 ; Klasse 135 | b $0c,55,40,a2 ; Filetyp 136 | b $0c,55,50,a3 ; Autor 137 | b $0c,55,60,a4 ; Struktur 138 | b $13 139 | w :PutSize 140 | b $13 141 | w :PutDate 142 | b $13 143 | w :Layout 144 | b 17 145 | w :Check 146 | b $13 147 | w EditText 148 | b 18,21,4 149 | w CloseIcon 150 | b NULL 151 | ::boldtext b BOLDON,0 152 | ::t1 b PLAINTEXT,"Class:",0 153 | ::t2 b "Type:",0 154 | ::t3 b "Author:",0 155 | ::t4 b "Date:",0 156 | ::t5 b "size: ",0 157 | ::t6 b "Write protect",BOLDON,0 158 | ::t7 b "structure:",0 159 | ::PutSize MoveW $8400+28,r0 160 | LoadW r11,FIB_LINKS+55 161 | LoadB r1H,FIB_OBEN+80 162 | lda KBytesFlag 163 | cmp #"*" 164 | beq :ps10 165 | lda r0L 166 | pha 167 | lsr r0H 168 | ror r0L 169 | lsr r0H 170 | ror r0L 171 | pla 172 | and #%0000 0011 173 | beq :noround 174 | inc r0L 175 | lda r0L 176 | bne :noround 177 | inc r0H 178 | ::noround lda #%11000000 179 | jsr PutDecimal 180 | LoadW r0,:KBytes 181 | jmp PutString 182 | ::ps10 lda #%11000000 183 | jsr PutDecimal 184 | LoadW r0,:Blocks 185 | jmp PutString 186 | ::Blocks b " Blocks",0 187 | ::KBytes b " KByte(s)",0 188 | ::PutDate LoadW r11,FIB_LINKS+55 189 | LoadB r1H,FIB_OBEN+70 190 | ldy #0 191 | sty a4L 192 | ::pd05 lda :tab1,y 193 | tay 194 | lda $8400,y 195 | sta r0L 196 | LoadB r0H,0 197 | ldy a4L 198 | lda :tab3,y 199 | beq :pd07 200 | lda r0L 201 | cmp #10 202 | bcs :pd07 203 | lda #"0" 204 | jsr PutChar 205 | ::pd07 lda #%11000000 206 | jsr PutDecimal 207 | ldy a4L 208 | lda :tab2,y 209 | beq :pd10 210 | jsr PutChar 211 | inc a4L 212 | ldy a4L 213 | bne :pd05 214 | ::pd10 lda #PLAINTEXT 215 | jmp PutChar 216 | ::tab1 b 25,24,23,26,27 217 | ::tab2 b ".","."," ",":",0 218 | ::tab3 b 0,0,1,0,1 219 | ::Layout jsr i_FrameRectangle 220 | b FIB_OBEN+2,FIB_UNTEN-2 221 | w FIB_LINKS+2,FIB_RECHTS-2 222 | b %11111111 223 | jsr i_FrameRectangle 224 | b FIB_OBEN+4,FIB_OBEN+16 225 | w FIB_LINKS+2,FIB_RECHTS-2 226 | b %11111111 227 | jsr i_FrameRectangle 228 | b FIB_OBEN+85,FIB_OBEN+92 229 | w FIB_LINKS+50,FIB_LINKS+57 230 | b %11111111 231 | lda $8400 232 | and #$40 233 | beq :l10 234 | jsr InvertRectangle 235 | ::l10 rts 236 | ::Check lda mouseData 237 | bne :c05 238 | rts 239 | ::c05 LoadB r2L,FIB_OBEN+85 240 | LoadB r2H,FIB_OBEN+92 241 | LoadW r3,FIB_LINKS+50 242 | LoadW r4,FIB_LINKS+57 243 | jsr IsMseInRegion 244 | beq :c10 245 | LoadB AlternateFlag,$ff 246 | lda $8400 247 | eor #$40 248 | sta $8400 249 | jmp InvertRectangle 250 | ::c10 rts 251 | :CloseRoutine jmp RstrFrmDialog 252 | 253 | t "EditText" 254 | :AutTab b 0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1 255 | 256 | :CloseMap b $02,$10,$00,$04,$ff,$92,$80,$01 257 | b $80,$01,$80,$01,$87,$e1,$87,$e1 258 | b $87,$e1,$80,$01,$80,$01,$80,$01 259 | b $04,$ff,$86,$00,$00,$08,$00,$10 260 | b $00,$04,$0f 261 | :CloseX = .x 262 | :CloseY = .y-3 263 | 264 | :CloseIcon w CloseMap 265 | b 0,0 266 | b CloseX,CloseY 267 | w CloseRoutine 268 | -------------------------------------------------------------------------------- /128_de/Main/DeskTop.sub4.s: -------------------------------------------------------------------------------- 1 | ; Datum: 6.8.91 2 | :curHeight = $29 3 | n "DeskMod D" 4 | if .p 5 | t "TopSym" 6 | t "TopMac 7 | t "Sym128.erg" 8 | t "CiSym" 9 | t "CiMac" 10 | t "DeskWindows..ext" 11 | t "DeskTop.main.ext" 12 | endif 13 | o ModStart 14 | ; jmp FileInfo 15 | 16 | ; FileBox-Position: 17 | :FIB_OBEN = 40 18 | :FIB_UNTEN = 180 19 | :FIB_LINKS = 70+DOUBLE_W 20 | :FIB_RECHTS = 250+DOUBLE_W 21 | 22 | :FileInfo jsr GetAktlDisk 23 | tax 24 | beq :05 25 | jsr ClearMultiFile2 26 | cpx #12 27 | beq :07 28 | jmp FehlerAusgabe 29 | ::05 ldx MultiCount 30 | dex 31 | bpl :geht 32 | ::07 rts 33 | ::geht LoadW r2,MultiFileTab 34 | ::10 jsr GetMark 35 | tax 36 | bmi :20 37 | jsr GetFileName 38 | LoadB DialBoxFlag,2 39 | jsr DispThisInfo 40 | txa 41 | beq :10 42 | jmp FehlerAusgabe 43 | ::20 LoadB DialBoxFlag,0 44 | jmp RecoverLast 45 | :DbText m ; x,y,adr 46 | b $0b,@0,@1 47 | w @2 48 | / 49 | 50 | :Text = fileHeader+$a0 51 | :AlternateFlag b 0 52 | :DispThisInfo ; File-Info des Files Name darstellen 53 | LoadW r6,Name 54 | jsr FindFile 55 | txa 56 | bne :err 57 | PushW r1 58 | PushW r5 59 | jsr i_FillRam 60 | w $ff,$8100 61 | b 0 62 | lda $8400+22 63 | beq :10 64 | MoveW $8400+19,r1 65 | LoadW r4,$8100 66 | jsr GetBlock 67 | txa 68 | beq :10 69 | PopW r5 70 | PopW r1 71 | ::err rts 72 | ::10 LoadW r0,Name 73 | jsr StringLen 74 | lsr r1L 75 | lda #(FIB_RECHTS-FIB_LINKS)/2-10 76 | sec 77 | sbc r1L 78 | sta :titelpos+1 79 | LoadW a1,$8100+77 80 | LoadW a3,$8100+97 81 | LoadW a4,:ta 82 | ldx $8100+70 83 | beq :20 84 | LoadW a4,:tb 85 | ::20 lda $8400+22 86 | tay 87 | lda AutTab,y 88 | bne :22 89 | LoadW a3,:tn ; kein Autor anzeigen 90 | ::22 tya 91 | asl 92 | tay 93 | lda TypTab,y 94 | sta a2L 95 | lda TypTab+1,y 96 | sta a2H 97 | LoadB AlternateFlag,0 98 | LoadW r0,:db 99 | jsr NewDoDlgBox 100 | PopW r5 101 | PopW r1 102 | ldx AlternateFlag 103 | beq :err2 104 | ldy #0 105 | lda $8400 106 | sta (r5),y 107 | sta fileHeader+68 108 | LoadW r4,$8000 109 | jsr PutBlock 110 | txa 111 | bne :err2 112 | MoveW dirEntryBuf+19,r1 113 | lda $8400+22 114 | beq :err2 115 | LoadW r4,fileHeader 116 | jmp PutBlock 117 | ::err2 rts 118 | ::ta b "sequentiell",0 119 | ::tb b "VLIR" 120 | ::tn b 0 121 | 122 | ::db b $01 123 | b FIB_OBEN,FIB_UNTEN 124 | w FIB_LINKS,FIB_RECHTS 125 | DbText 50,10,:boldtext 126 | ::titelpos DbText 70,12,Name 127 | DbText 10,30,:t1 128 | DbText 10,40,:t2 129 | DbText 10,50,:t3 130 | DbText 10,60,:t7 131 | DbText 10,70,:t4 132 | DbText 10,80,:t5 133 | DbText 60,91,:t6 134 | b $0c,55,30,a1 ; Klasse 135 | b $0c,55,40,a2 ; Filetyp 136 | b $0c,55,50,a3 ; Autor 137 | b $0c,55,60,a4 ; Struktur 138 | b $13 139 | w :PutSize 140 | b $13 141 | w :PutDate 142 | b $13 143 | w :Layout 144 | b 17 145 | w :Check 146 | b $13 147 | w EditText 148 | b 18,21,4 149 | w CloseIcon 150 | b NULL 151 | ::boldtext b BOLDON,0 152 | ::t1 b PLAINTEXT,"Klasse:",0 153 | ::t2 b "FileTyp:",0 154 | ::t3 b "Autor:",0 155 | ::t4 b "Datum:",0 156 | ::t5 b "Gr|~e: ",0 157 | ::t6 b "Schreibschutz",BOLDON,0 158 | ::t7 b "Struktur:",0 159 | ::PutSize MoveW $8400+28,r0 160 | LoadW r11,FIB_LINKS+55 161 | LoadB r1H,FIB_OBEN+80 162 | lda KBytesFlag 163 | cmp #"*" 164 | beq :ps10 165 | lda r0L 166 | pha 167 | lsr r0H 168 | ror r0L 169 | lsr r0H 170 | ror r0L 171 | pla 172 | and #%0000 0011 173 | beq :noround 174 | inc r0L 175 | lda r0L 176 | bne :noround 177 | inc r0H 178 | ::noround lda #%11000000 179 | jsr PutDecimal 180 | LoadW r0,:KBytes 181 | jmp PutString 182 | ::ps10 lda #%11000000 183 | jsr PutDecimal 184 | LoadW r0,:Blocks 185 | jmp PutString 186 | ::Blocks b " Bl|cke",0 187 | ::KBytes b " KByte(s)",0 188 | ::PutDate LoadW r11,FIB_LINKS+55 189 | LoadB r1H,FIB_OBEN+70 190 | ldy #0 191 | sty a4L 192 | ::pd05 lda :tab1,y 193 | tay 194 | lda $8400,y 195 | sta r0L 196 | LoadB r0H,0 197 | ldy a4L 198 | lda :tab3,y 199 | beq :pd07 200 | lda r0L 201 | cmp #10 202 | bcs :pd07 203 | lda #"0" 204 | jsr PutChar 205 | ::pd07 lda #%11000000 206 | jsr PutDecimal 207 | ldy a4L 208 | lda :tab2,y 209 | beq :pd10 210 | jsr PutChar 211 | inc a4L 212 | ldy a4L 213 | bne :pd05 214 | ::pd10 lda #PLAINTEXT 215 | jmp PutChar 216 | ::tab1 b 25,24,23,26,27 217 | ::tab2 b ".","."," ",":",0 218 | ::tab3 b 0,0,1,0,1 219 | ::Layout jsr i_FrameRectangle 220 | b FIB_OBEN+2,FIB_UNTEN-2 221 | w FIB_LINKS+2,FIB_RECHTS-2 222 | b %11111111 223 | jsr i_FrameRectangle 224 | b FIB_OBEN+4,FIB_OBEN+16 225 | w FIB_LINKS+2,FIB_RECHTS-2 226 | b %11111111 227 | jsr i_FrameRectangle 228 | b FIB_OBEN+85,FIB_OBEN+92 229 | w FIB_LINKS+50,FIB_LINKS+57 230 | b %11111111 231 | lda $8400 232 | and #$40 233 | beq :l10 234 | jsr InvertRectangle 235 | ::l10 rts 236 | ::Check lda mouseData 237 | bne :c05 238 | rts 239 | ::c05 LoadB r2L,FIB_OBEN+85 240 | LoadB r2H,FIB_OBEN+92 241 | LoadW r3,FIB_LINKS+50 242 | LoadW r4,FIB_LINKS+57 243 | jsr IsMseInRegion 244 | beq :c10 245 | LoadB AlternateFlag,$ff 246 | lda $8400 247 | eor #$40 248 | sta $8400 249 | jmp InvertRectangle 250 | ::c10 rts 251 | :CloseRoutine jmp RstrFrmDialog 252 | 253 | t "EditText" 254 | :AutTab b 0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1 255 | 256 | :CloseMap b $02,$10,$00,$04,$ff,$92,$80,$01 257 | b $80,$01,$80,$01,$87,$e1,$87,$e1 258 | b $87,$e1,$80,$01,$80,$01,$80,$01 259 | b $04,$ff,$86,$00,$00,$08,$00,$10 260 | b $00,$04,$0f 261 | :CloseX = .x 262 | :CloseY = .y-3 263 | 264 | :CloseIcon w CloseMap 265 | b 0,0 266 | b CloseX,CloseY 267 | w CloseRoutine 268 | -------------------------------------------------------------------------------- /64_en/Main/DeskTop.sub4.s: -------------------------------------------------------------------------------- 1 | ; Datum: 6.8.91 2 | :curHeight = $29 3 | n "DeskMod D" 4 | if .p 5 | t "TopSym" 6 | t "TopMac 7 | t "Sym128.erg" 8 | t "CiSym" 9 | t "CiMac" 10 | t "DeskWindows..ext" 11 | t "DeskTop.main.ext" 12 | endif 13 | o ModStart 14 | ; jmp FileInfo 15 | 16 | ; FileBox-Position: 17 | :FIB_OBEN = 40 18 | :FIB_UNTEN = 180 19 | :FIB_LINKS = 70 20 | :FIB_RECHTS = 250 21 | 22 | :FileInfo jsr GetAktlDisk 23 | tax 24 | beq :05 25 | jsr ClearMultiFile2 26 | cpx #12 27 | beq :07 28 | jmp FehlerAusgabe 29 | ::05 ldx MultiCount 30 | dex 31 | bpl :geht 32 | ::07 rts 33 | ::geht LoadW r2,MultiFileTab 34 | ::10 jsr GetMark 35 | tax 36 | bmi :20 37 | jsr GetFileName 38 | LoadB DialBoxFlag,2 39 | jsr DispThisInfo 40 | txa 41 | beq :10 42 | jmp FehlerAusgabe 43 | ::20 LoadB DialBoxFlag,0 44 | jmp RecoverLast 45 | :DbText m ; x,y,adr 46 | b $0b,@0,@1 47 | w @2 48 | / 49 | 50 | :Text = fileHeader+$a0 51 | :AlternateFlag b 0 52 | :DispThisInfo ; File-Info des Files Name darstellen 53 | LoadW r6,Name 54 | jsr FindFile 55 | txa 56 | bne :err 57 | PushW r1 58 | PushW r5 59 | jsr i_FillRam 60 | w $ff,$8100 61 | b 0 62 | lda $8400+22 63 | beq :10 64 | MoveW $8400+19,r1 65 | LoadW r4,$8100 66 | jsr GetBlock 67 | txa 68 | beq :10 69 | PopW r5 70 | PopW r1 71 | ::err rts 72 | ::10 LoadW r0,Name 73 | jsr StringLen 74 | lsr r1L 75 | lda #(FIB_RECHTS-FIB_LINKS)/2-10 76 | sec 77 | sbc r1L 78 | sta :titelpos+1 79 | LoadW a1,$8100+77 80 | LoadW a3,$8100+97 81 | LoadW a4,:ta 82 | ldx $8100+70 83 | beq :20 84 | LoadW a4,:tb 85 | ::20 lda $8400+22 86 | tay 87 | lda AutTab,y 88 | bne :22 89 | LoadW a3,:tn ; kein Autor anzeigen 90 | ::22 tya 91 | asl 92 | tay 93 | lda TypTab,y 94 | sta a2L 95 | lda TypTab+1,y 96 | sta a2H 97 | LoadB AlternateFlag,0 98 | LoadW r0,:db 99 | jsr NewDoDlgBox 100 | PopW r5 101 | PopW r1 102 | ldx AlternateFlag 103 | beq :err2 104 | ldy #0 105 | lda $8400 106 | sta (r5),y 107 | sta fileHeader+68 108 | LoadW r4,$8000 109 | jsr PutBlock 110 | txa 111 | bne :err2 112 | MoveW dirEntryBuf+19,r1 113 | lda $8400+22 114 | beq :err2 115 | LoadW r4,fileHeader 116 | jmp PutBlock 117 | ::err2 rts 118 | ::ta b "sequential",0 119 | ::tb b "VLIR" 120 | ::tn b 0 121 | 122 | ::db b $01 123 | b FIB_OBEN,FIB_UNTEN 124 | w FIB_LINKS,FIB_RECHTS 125 | DbText 50,10,:boldtext 126 | ::titelpos DbText 70,12,Name 127 | DbText 10,30,:t1 128 | DbText 10,40,:t2 129 | DbText 10,50,:t3 130 | DbText 10,60,:t7 131 | DbText 10,70,:t4 132 | DbText 10,80,:t5 133 | DbText 60,91,:t6 134 | b $0c,55,30,a1 ; Klasse 135 | b $0c,55,40,a2 ; Filetyp 136 | b $0c,55,50,a3 ; Autor 137 | b $0c,55,60,a4 ; Struktur 138 | b $13 139 | w :PutSize 140 | b $13 141 | w :PutDate 142 | b $13 143 | w :Layout 144 | b 17 145 | w :Check 146 | b $13 147 | w EditText 148 | b 18,21,4 149 | w CloseIcon 150 | b NULL 151 | ::boldtext b BOLDON,0 152 | ::t1 b PLAINTEXT,"Class:",0 153 | ::t2 b "Type:",0 154 | ::t3 b "Author:",0 155 | ::t4 b "Date:",0 156 | ::t5 b "Size: ",0 157 | ::t6 b "Write protect",BOLDON,0 158 | ::t7 b "Structure:",0 159 | ::PutSize MoveW $8400+28,r0 160 | LoadW r11,FIB_LINKS+55 161 | LoadB r1H,FIB_OBEN+80 162 | lda KBytesFlag 163 | cmp #"*" 164 | beq :ps10 165 | lda r0L 166 | pha 167 | lsr r0H 168 | ror r0L 169 | lsr r0H 170 | ror r0L 171 | pla 172 | and #%0000 0011 173 | beq :noround 174 | inc r0L 175 | lda r0L 176 | bne :noround 177 | inc r0H 178 | ::noround lda #%11000000 179 | jsr PutDecimal 180 | LoadW r0,:KBytes 181 | jmp PutString 182 | ::ps10 lda #%11000000 183 | jsr PutDecimal 184 | LoadW r0,:Blocks 185 | jmp PutString 186 | ::Blocks b " blocks",0 187 | ::KBytes b " KByte(s)",0 188 | ::PutDate LoadW r11,FIB_LINKS+55 189 | LoadB r1H,FIB_OBEN+70 190 | ldy #0 191 | sty a4L 192 | ::pd05 lda :tab1,y 193 | tay 194 | lda $8400,y 195 | sta r0L 196 | LoadB r0H,0 197 | ldy a4L 198 | lda :tab3,y 199 | beq :pd07 200 | lda r0L 201 | cmp #10 202 | bcs :pd07 203 | lda #"0" 204 | jsr PutChar 205 | ::pd07 lda #%11000000 206 | jsr PutDecimal 207 | ldy a4L 208 | lda :tab2,y 209 | beq :pd10 210 | jsr PutChar 211 | inc a4L 212 | ldy a4L 213 | bne :pd05 214 | ::pd10 lda #PLAINTEXT 215 | jmp PutChar 216 | ::tab1 b 25,24,23,26,27 217 | ::tab2 b ".","."," ",":",0 218 | ::tab3 b 0,0,1,0,1 219 | ::Layout jsr i_FrameRectangle 220 | b FIB_OBEN+2,FIB_UNTEN-2 221 | w FIB_LINKS+2,FIB_RECHTS-2 222 | b %11111111 223 | jsr i_FrameRectangle 224 | b FIB_OBEN+4,FIB_OBEN+16 225 | w FIB_LINKS+2,FIB_RECHTS-2 226 | b %11111111 227 | jsr i_FrameRectangle 228 | b FIB_OBEN+85,FIB_OBEN+92 229 | w FIB_LINKS+50,FIB_LINKS+57 230 | b %11111111 231 | lda $8400 232 | and #$40 233 | beq :l10 234 | jsr InvertRectangle 235 | ::l10 rts 236 | ::Check lda mouseData 237 | bne :c05 238 | rts 239 | ::c05 LoadB r2L,FIB_OBEN+85 240 | LoadB r2H,FIB_OBEN+92 241 | LoadW r3,FIB_LINKS+50 242 | LoadW r4,FIB_LINKS+57 243 | jsr IsMseInRegion 244 | beq :c10 245 | LoadB AlternateFlag,$ff 246 | lda $8400 247 | eor #$40 248 | sta $8400 249 | jmp InvertRectangle 250 | ::c10 rts 251 | :CloseRoutine jmp RstrFrmDialog 252 | 253 | t "EditText" 254 | :AutTab b 0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1 255 | :TypTab w :t0,:t1,:t2,:t3,:t4,:t5,:t6,:t7,:t8,:t9,:ta,:tb,:tc,:td,:te,:tf 256 | ::t0 b "Non-GEOS",0 257 | ::t1 b "BASIC",0 258 | ::t2 b "Assembler",0 259 | ::t3 b "Data",0 260 | ::t4 b "System file",0 261 | ::t5 b "Desk Accessory",0 262 | ::t6 b "Application",0 263 | ::t7 b "Document",0 264 | ::t8 b "Font file",0 265 | ::t9 b "Printer driver",0 266 | ::ta b "Input driver (64)",0 267 | ::tb b "Directory",0 268 | ::tc b "Boot file",0 269 | ::td b "temporary",0 270 | ::te b "auto exec",0 271 | ::tf b "Input driver (128)",0 272 | 273 | :CloseMap b $02,$10,$00,$04,$ff,$92,$80,$01 274 | b $80,$01,$80,$01,$87,$e1,$87,$e1 275 | b $87,$e1,$80,$01,$80,$01,$80,$01 276 | b $04,$ff,$86,$00,$00,$08,$00,$10 277 | b $00,$04,$0f 278 | :CloseX = .x 279 | :CloseY = .y-3 280 | 281 | :CloseIcon w CloseMap 282 | b 0,0 283 | b CloseX,CloseY 284 | w CloseRoutine 285 | -------------------------------------------------------------------------------- /64_de/Main/DeskTop.sub4.s: -------------------------------------------------------------------------------- 1 | ; Datum: 6.8.91 2 | :curHeight = $29 3 | n "DeskMod D" 4 | if .p 5 | t "TopSym" 6 | t "TopMac 7 | t "Sym128.erg" 8 | t "CiSym" 9 | t "CiMac" 10 | t "DeskWindows..ext" 11 | t "DeskTop.main.ext" 12 | endif 13 | o ModStart 14 | ; jmp FileInfo 15 | 16 | ; FileBox-Position: 17 | :FIB_OBEN = 40 18 | :FIB_UNTEN = 180 19 | :FIB_LINKS = 70 20 | :FIB_RECHTS = 250 21 | 22 | :FileInfo jsr GetAktlDisk 23 | tax 24 | beq :05 25 | jsr ClearMultiFile2 26 | cpx #12 27 | beq :07 28 | jmp FehlerAusgabe 29 | ::05 ldx MultiCount 30 | dex 31 | bpl :geht 32 | ::07 rts 33 | ::geht LoadW r2,MultiFileTab 34 | ::10 jsr GetMark 35 | tax 36 | bmi :20 37 | jsr GetFileName 38 | LoadB DialBoxFlag,2 39 | jsr DispThisInfo 40 | txa 41 | beq :10 42 | jmp FehlerAusgabe 43 | ::20 LoadB DialBoxFlag,0 44 | jmp RecoverLast 45 | :DbText m ; x,y,adr 46 | b $0b,@0,@1 47 | w @2 48 | / 49 | 50 | :Text = fileHeader+$a0 51 | :AlternateFlag b 0 52 | :DispThisInfo ; File-Info des Files Name darstellen 53 | LoadW r6,Name 54 | jsr FindFile 55 | txa 56 | bne :err 57 | PushW r1 58 | PushW r5 59 | jsr i_FillRam 60 | w $ff,$8100 61 | b 0 62 | lda $8400+22 63 | beq :10 64 | MoveW $8400+19,r1 65 | LoadW r4,$8100 66 | jsr GetBlock 67 | txa 68 | beq :10 69 | PopW r5 70 | PopW r1 71 | ::err rts 72 | ::10 LoadW r0,Name 73 | jsr StringLen 74 | lsr r1L 75 | lda #(FIB_RECHTS-FIB_LINKS)/2-10 76 | sec 77 | sbc r1L 78 | sta :titelpos+1 79 | LoadW a1,$8100+77 80 | LoadW a3,$8100+97 81 | LoadW a4,:ta 82 | ldx $8100+70 83 | beq :20 84 | LoadW a4,:tb 85 | ::20 lda $8400+22 86 | tay 87 | lda AutTab,y 88 | bne :22 89 | LoadW a3,:tn ; kein Autor anzeigen 90 | ::22 tya 91 | asl 92 | tay 93 | lda TypTab,y 94 | sta a2L 95 | lda TypTab+1,y 96 | sta a2H 97 | LoadB AlternateFlag,0 98 | LoadW r0,:db 99 | jsr NewDoDlgBox 100 | PopW r5 101 | PopW r1 102 | ldx AlternateFlag 103 | beq :err2 104 | ldy #0 105 | lda $8400 106 | sta (r5),y 107 | sta fileHeader+68 108 | LoadW r4,$8000 109 | jsr PutBlock 110 | txa 111 | bne :err2 112 | MoveW dirEntryBuf+19,r1 113 | lda $8400+22 114 | beq :err2 115 | LoadW r4,fileHeader 116 | jmp PutBlock 117 | ::err2 rts 118 | ::ta b "sequentiell",0 119 | ::tb b "VLIR" 120 | ::tn b 0 121 | 122 | ::db b $01 123 | b FIB_OBEN,FIB_UNTEN 124 | w FIB_LINKS,FIB_RECHTS 125 | DbText 50,10,:boldtext 126 | ::titelpos DbText 70,12,Name 127 | DbText 10,30,:t1 128 | DbText 10,40,:t2 129 | DbText 10,50,:t3 130 | DbText 10,60,:t7 131 | DbText 10,70,:t4 132 | DbText 10,80,:t5 133 | DbText 60,91,:t6 134 | b $0c,55,30,a1 ; Klasse 135 | b $0c,55,40,a2 ; Filetyp 136 | b $0c,55,50,a3 ; Autor 137 | b $0c,55,60,a4 ; Struktur 138 | b $13 139 | w :PutSize 140 | b $13 141 | w :PutDate 142 | b $13 143 | w :Layout 144 | b 17 145 | w :Check 146 | b $13 147 | w EditText 148 | b 18,21,4 149 | w CloseIcon 150 | b NULL 151 | ::boldtext b BOLDON,0 152 | ::t1 b PLAINTEXT,"Klasse:",0 153 | ::t2 b "FileTyp:",0 154 | ::t3 b "Autor:",0 155 | ::t4 b "Datum:",0 156 | ::t5 b "Gr|~e: ",0 157 | ::t6 b "Schreibschutz",BOLDON,0 158 | ::t7 b "Struktur:",0 159 | ::PutSize MoveW $8400+28,r0 160 | LoadW r11,FIB_LINKS+55 161 | LoadB r1H,FIB_OBEN+80 162 | lda KBytesFlag 163 | cmp #"*" 164 | beq :ps10 165 | lda r0L 166 | pha 167 | lsr r0H 168 | ror r0L 169 | lsr r0H 170 | ror r0L 171 | pla 172 | and #%0000 0011 173 | beq :noround 174 | inc r0L 175 | lda r0L 176 | bne :noround 177 | inc r0H 178 | ::noround lda #%11000000 179 | jsr PutDecimal 180 | LoadW r0,:KBytes 181 | jmp PutString 182 | ::ps10 lda #%11000000 183 | jsr PutDecimal 184 | LoadW r0,:Blocks 185 | jmp PutString 186 | ::Blocks b " Bl|cke",0 187 | ::KBytes b " KByte(s)",0 188 | ::PutDate LoadW r11,FIB_LINKS+55 189 | LoadB r1H,FIB_OBEN+70 190 | ldy #0 191 | sty a4L 192 | ::pd05 lda :tab1,y 193 | tay 194 | lda $8400,y 195 | sta r0L 196 | LoadB r0H,0 197 | ldy a4L 198 | lda :tab3,y 199 | beq :pd07 200 | lda r0L 201 | cmp #10 202 | bcs :pd07 203 | lda #"0" 204 | jsr PutChar 205 | ::pd07 lda #%11000000 206 | jsr PutDecimal 207 | ldy a4L 208 | lda :tab2,y 209 | beq :pd10 210 | jsr PutChar 211 | inc a4L 212 | ldy a4L 213 | bne :pd05 214 | ::pd10 lda #PLAINTEXT 215 | jmp PutChar 216 | ::tab1 b 25,24,23,26,27 217 | ::tab2 b ".","."," ",":",0 218 | ::tab3 b 0,0,1,0,1 219 | ::Layout jsr i_FrameRectangle 220 | b FIB_OBEN+2,FIB_UNTEN-2 221 | w FIB_LINKS+2,FIB_RECHTS-2 222 | b %11111111 223 | jsr i_FrameRectangle 224 | b FIB_OBEN+4,FIB_OBEN+16 225 | w FIB_LINKS+2,FIB_RECHTS-2 226 | b %11111111 227 | jsr i_FrameRectangle 228 | b FIB_OBEN+85,FIB_OBEN+92 229 | w FIB_LINKS+50,FIB_LINKS+57 230 | b %11111111 231 | lda $8400 232 | and #$40 233 | beq :l10 234 | jsr InvertRectangle 235 | ::l10 rts 236 | ::Check lda mouseData 237 | bne :c05 238 | rts 239 | ::c05 LoadB r2L,FIB_OBEN+85 240 | LoadB r2H,FIB_OBEN+92 241 | LoadW r3,FIB_LINKS+50 242 | LoadW r4,FIB_LINKS+57 243 | jsr IsMseInRegion 244 | beq :c10 245 | LoadB AlternateFlag,$ff 246 | lda $8400 247 | eor #$40 248 | sta $8400 249 | jmp InvertRectangle 250 | ::c10 rts 251 | :CloseRoutine jmp RstrFrmDialog 252 | 253 | t "EditText" 254 | :AutTab b 0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1 255 | :TypTab w :t0,:t1,:t2,:t3,:t4,:t5,:t6,:t7,:t8,:t9,:ta,:tb,:tc,:td,:te,:tf 256 | ::t0 b "Nicht-GEOS",0 257 | ::t1 b "BASIC",0 258 | ::t2 b "Assembler",0 259 | ::t3 b "Data",0 260 | ::t4 b "Systemdatei",0 261 | ::t5 b "Hilfsprogramm",0 262 | ::t6 b "Anwendung",0 263 | ::t7 b "Dokument",0 264 | ::t8 b "Zeichensatzdatei",0 265 | ::t9 b "Druckertreiber",0 266 | ::ta b "Eingabetreiber (64)",0 267 | ::tb b "Directory",0 268 | ::tc b "Startprogramm",0 269 | ::td b "Tempor{r",0 270 | ::te b "selbstausf}hrend",0 271 | ::tf b "Eingabetreiber (128)",0 272 | 273 | :CloseMap b $02,$10,$00,$04,$ff,$92,$80,$01 274 | b $80,$01,$80,$01,$87,$e1,$87,$e1 275 | b $87,$e1,$80,$01,$80,$01,$80,$01 276 | b $04,$ff,$86,$00,$00,$08,$00,$10 277 | b $00,$04,$0f 278 | :CloseX = .x 279 | :CloseY = .y-3 280 | 281 | :CloseIcon w CloseMap 282 | b 0,0 283 | b CloseX,CloseY 284 | w CloseRoutine 285 | -------------------------------------------------------------------------------- /64_de/Main/DeskTop.sub.s: -------------------------------------------------------------------------------- 1 | n "DeskMod A" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | jmp DeskDosNew 13 | jmp _Validate 14 | rts 15 | w 0 16 | ; jmp GetWindowStat 17 | jmp GetDDrivers 18 | ;:INV_TRACK = 2 19 | 20 | :GetDDrivers lda ramExpSize 21 | beq :noram 22 | ::rts rts 23 | ::noram lda c128Flag 24 | bmi :rts ; C128 hat seine Driver schon 25 | lda driveType 26 | cmp driveType+1 ; zwei Gleichartige Laufwerke ? 27 | beq :rts ; >ja 28 | lda driveType 29 | cmp curType 30 | bne :10 31 | lda driveType+1 32 | ::10 pha 33 | jsr GetDriver ; Treiber nach $7200 laden 34 | txa 35 | beq :20 36 | LoadB DiskDriverFlag,$80 37 | ::20 pla 38 | sta DiskDriverFlag 39 | rts 40 | 41 | :GetDriver ; Par: a - DriveTyp 42 | pha 43 | jsr MaxTextWin 44 | pla 45 | pha 46 | tax 47 | dex 48 | bne :10 49 | LoadB DriverType,$34 50 | bne :30 51 | ::10 dex 52 | bne :20 53 | LoadB DriverType,$37 54 | bne :30 55 | ::20 ;dex 56 | ;bne :flash 57 | LoadB DriverType,$38 58 | ; bne :30 59 | ::30 LoadW r6,DriverName 60 | jsr FindFile 61 | txa 62 | beq :40 63 | LoadB r7L,14 ; autoexec 64 | LoadB r7H,1 65 | LoadW r10,KonfClass 66 | LoadW r6,KonfName 67 | jsr FindFTypes 68 | txa 69 | bne :34 70 | lda r7H 71 | bne :34 72 | LoadW r6,KonfName 73 | jsr FindFile 74 | txa 75 | beq :35 76 | ::34 pla 77 | LoadB numDrives,1 78 | tax 79 | rts 80 | ::35 MoveW $8401,r1 81 | LoadW r4,$8000 82 | jsr GetBlock 83 | pla 84 | asl 85 | tax 86 | lda $8004,x 87 | sta r1L 88 | lda $8005,x 89 | sta r1H 90 | jmp :45 91 | ::40 pla 92 | MoveW $8401,r1 93 | ::45 LoadW r7,$7200 94 | LoadW r2,$d90 95 | jsr ReadFile 96 | txa 97 | bne :50 98 | LoadB CopyMemHigh,$71 99 | ldx #0 100 | ::50 rts 101 | :DriverName b "Drive 15" 102 | :DriverType b "x1",0 103 | :KonfClass b "Configure",0 104 | 105 | :DeskDosNew jsr DeskDosSub1 106 | jsr DosNew 107 | ldx activeWindow 108 | jsr GetSubDirXList 109 | jsr ClearList 110 | ldx activeWindow 111 | lda #0 112 | sta aktl_Sub,x ; aktl Ebene setzen 113 | ::loop jsr RemSubName ; alle SubDir-namen entfernen 114 | bcc :loop 115 | LoadB DialBoxFlag,0 116 | jmp RecoverActiveWindow 117 | 118 | :DeskDosSub1 LoadB DialBoxFlag,25 ; irgendein Wert, m|glichst hoher Wert 119 | jsr GotoFirstMenu 120 | jsr GetAktlWinDisk 121 | LoadW r6,DiskName+2 122 | lda DiskName 123 | tax 124 | lda driveType-65,x 125 | sta r7L 126 | rts 127 | 128 | :_Validate jsr ClearMultiFile2 129 | jsr GetAktlDisk 130 | tax 131 | bne :err 132 | jsr Validate 133 | txa 134 | beq :10 135 | ::err cpx #12 136 | beq :10 137 | jmp FehlerAusgabe 138 | ::10 jmp ReloadActiveWindow 139 | 140 | ;DosNew 141 | ;l|scht eine Diskette 142 | ;Par: r6 - name der Diskette 143 | ;Ret: x - Fehlernummer 144 | ;Des: a,y,r0-r15 145 | :DosNew 146 | jsr SearchDisk 147 | txa 148 | bne :end 149 | LoadW r0,:box 150 | jsr NewDoDlgBox 151 | ldy r0L 152 | cpy #CANCEL 153 | beq :canceled 154 | jsr ClearBAM 155 | lda curType 156 | jsr Get1stDirBlock 157 | LoadW r4,diskBlkBuf 158 | jsr EnterTurbo 159 | txa 160 | bne :20 161 | jsr InitForIO 162 | ::10 jsr ReadBlock 163 | txa 164 | bne :20 165 | ldy #2 166 | ::15 lda #0 167 | sta diskBlkBuf,y 168 | tya 169 | clc 170 | adc #32 171 | tay 172 | bcc :15 173 | jsr WriteBlock 174 | txa 175 | bne :20 176 | lda diskBlkBuf+1 177 | sta r1H 178 | lda diskBlkBuf 179 | sta r1L 180 | bne :10 181 | ::20 jsr DoneWithIO 182 | jmp PutDirHead 183 | ::canceled ldx #CANCEL_ERR 184 | ::end rts 185 | ::box b $81 186 | b $0b,$10,$10 187 | w :t1 188 | b $0c,$10,$20,r6 189 | b $0b,$10,$30 190 | w :t2 191 | b OK 192 | b 4,72 193 | b CANCEL 194 | b 17,72 195 | b NULL 196 | ::t1 b "Inhalt von",NULL 197 | ::t2 b "l|schen?",NULL 198 | 199 | t "Validate+Undelet" 200 | 201 | if 0 202 | :GetWindowStat lda #9 203 | jsr SetDevice 204 | LoadW r6,StatName 205 | jsr FindFile 206 | txa 207 | beq :05 208 | rts 209 | ::05 MoveW $8401,r1 210 | LoadW r7,$6800 211 | LoadW r2,$200 212 | jsr ReadFile 213 | ldy #0 214 | ::loop lda $6800,y 215 | sta SubDir1List,y 216 | dey 217 | bne :loop 218 | ; jsr i_MoveData 219 | ; w $6940,windowsOpen,4 220 | LoadW a2,$6800+$f0 221 | LoadW a3,SubDir4List 222 | LoadB a4L,4 223 | jsr :sub 224 | LoadW a3,SubDir3List 225 | jsr :sub 226 | LoadW a3,SubDir2List 227 | jsr :sub 228 | LoadW a3,SubDir1List 229 | jsr :sub 230 | jsr i_MoveData 231 | w $6940+4,WindowTab,6 232 | jsr i_MoveData 233 | w $6940+4+6,WindowTab+11,6 234 | jsr i_MoveData 235 | w $6940+4+12,WindowTab+22,6 236 | jsr i_MoveData 237 | w $6940+4+18,WindowTab+33,6 238 | jmp RedrawAll 239 | 240 | ::sub ; Par: a2 - DiskName - $10 241 | ; a3 - Zeiger auf SubDirXList 242 | ; a4L WindowNummer + 1 243 | AddVW $10,a2 244 | dec a4L 245 | ldy a4L 246 | lda $6940,y 247 | bne :s05 248 | rts 249 | ::s05 ldy #16 250 | ::loop2 lda (a2),y 251 | sta DiskName,y 252 | dey 253 | bpl :loop2 254 | LoadW r6,DiskName 255 | jsr SearchDisk 256 | txa 257 | bne :err 258 | ldx a4L 259 | jsr GetDiskName 260 | ldy #1 261 | ::loop3 sty a4H 262 | lda (a3),y 263 | bmi :endloop 264 | ldx a4L 265 | sta aktl_Sub,x ; aktl Ebene setzen 266 | jsr GetDirName 267 | txa 268 | bne :err 269 | lda a4L 270 | jsr GetSubName2 271 | ldy a4H 272 | iny 273 | bne :loop3 274 | ::endloop ldx a4L 275 | jsr ReLoad2 276 | ldx a4L 277 | jsr DrawWindowB 278 | ldx #0 279 | rts 280 | ::err inc 53280 281 | rts 282 | :GetDirName ; Errmitteln eines Directory-Namens 283 | ; Par: a - Nummer 284 | ; Ret: Name 285 | sta :num 286 | jsr i_FillRam 287 | w $0b00,$7000 288 | b 0 289 | LoadW r3,$7000 290 | ldy #7 291 | ::dloop lda :data,y 292 | sta r10L,y 293 | dey 294 | bpl :dloop 295 | jsr FindDirFiles 296 | LoadW a5,$7000 297 | ::loop ldy #16 298 | lda (a5),y 299 | beq :endloop 300 | sta r1L 301 | iny 302 | lda (a5),y 303 | sta r1H 304 | LoadW r4,$8000 305 | jsr GetBlock 306 | lda $8000+OFF_DIR_NUM 307 | cmp :num 308 | beq :habsie 309 | AddVW 18,a5 310 | jmp :loop 311 | ::endloop ldx #1 312 | rts 313 | ::habsie ldy #0 314 | ::hloop lda (a5),y 315 | sta Name,y 316 | iny 317 | cpy #16 318 | bne :hloop 319 | ldx #0 320 | rts 321 | ::num b 0 322 | ::data b %10000000,0,144,0,%11000000,11,18,4 323 | endif 324 | 325 | :KonfName 326 | -------------------------------------------------------------------------------- /128_de/Main/DeskTop.sub.s: -------------------------------------------------------------------------------- 1 | n "DeskMod A" 2 | if .p 3 | t "TopSym" 4 | t "TopMac 5 | t "Sym128.erg" 6 | t "CiSym" 7 | t "CiMac" 8 | t "DeskWindows..ext" 9 | t "DeskTop.main.ext" 10 | endif 11 | o ModStart 12 | jmp DeskDosNew 13 | jmp _Validate 14 | rts 15 | w 0 16 | ; jmp GetWindowStat 17 | jmp GetDDrivers 18 | ;:INV_TRACK = 2 19 | 20 | :GetDDrivers lda ramExpSize 21 | beq :noram 22 | ::rts rts 23 | ::noram lda c128Flag 24 | bmi :rts ; C128 hat seine Driver schon 25 | lda driveType 26 | cmp driveType+1 ; zwei Gleichartige Laufwerke ? 27 | beq :rts ; >ja 28 | lda driveType 29 | cmp curType 30 | bne :10 31 | lda driveType+1 32 | ::10 pha 33 | jsr GetDriver ; Treiber nach $7200 laden 34 | txa 35 | beq :20 36 | LoadB DiskDriverFlag,$80 37 | ::20 pla 38 | sta DiskDriverFlag 39 | rts 40 | 41 | :GetDriver ; Par: a - DriveTyp 42 | pha 43 | jsr MaxTextWin 44 | pla 45 | pha 46 | tax 47 | dex 48 | bne :10 49 | LoadB DriverType,$34 50 | bne :30 51 | ::10 dex 52 | bne :20 53 | LoadB DriverType,$37 54 | bne :30 55 | ::20 ;dex 56 | ;bne :flash 57 | LoadB DriverType,$38 58 | ; bne :30 59 | ::30 LoadW r6,DriverName 60 | jsr FindFile 61 | txa 62 | beq :40 63 | LoadB r7L,14 ; autoexec 64 | LoadB r7H,1 65 | LoadW r10,KonfClass 66 | LoadW r6,KonfName 67 | jsr FindFTypes 68 | txa 69 | bne :34 70 | lda r7H 71 | bne :34 72 | LoadW r6,KonfName 73 | jsr FindFile 74 | txa 75 | beq :35 76 | ::34 pla 77 | LoadB numDrives,1 78 | tax 79 | rts 80 | ::35 MoveW $8401,r1 81 | LoadW r4,$8000 82 | jsr GetBlock 83 | pla 84 | asl 85 | tax 86 | lda $8004,x 87 | sta r1L 88 | lda $8005,x 89 | sta r1H 90 | jmp :45 91 | ::40 pla 92 | MoveW $8401,r1 93 | ::45 LoadW r7,$7200 94 | LoadW r2,$d90 95 | jsr ReadFile 96 | txa 97 | bne :50 98 | LoadB CopyMemHigh,$71 99 | ldx #0 100 | ::50 rts 101 | :DriverName b "Drive 15" 102 | :DriverType b "x1",0 103 | :KonfClass b "Configure",0 104 | 105 | :DeskDosNew jsr DeskDosSub1 106 | jsr DosNew 107 | ldx activeWindow 108 | jsr GetSubDirXList 109 | jsr ClearList 110 | ldx activeWindow 111 | lda #0 112 | sta aktl_Sub,x ; aktl Ebene setzen 113 | ::loop jsr RemSubName ; alle SubDir-namen entfernen 114 | bcc :loop 115 | LoadB DialBoxFlag,0 116 | jmp RecoverActiveWindow 117 | 118 | :DeskDosSub1 LoadB DialBoxFlag,25 ; irgendein Wert, m|glichst hoher Wert 119 | jsr GotoFirstMenu 120 | jsr GetAktlWinDisk 121 | LoadW r6,DiskName+2 122 | lda DiskName 123 | tax 124 | lda driveType-65,x 125 | sta r7L 126 | rts 127 | 128 | :_Validate jsr ClearMultiFile2 129 | jsr GetAktlDisk 130 | tax 131 | bne :err 132 | jsr Validate 133 | txa 134 | beq :10 135 | ::err cpx #12 136 | beq :10 137 | jmp FehlerAusgabe 138 | ::10 jmp ReloadActiveWindow 139 | 140 | ;DosNew 141 | ;l|scht eine Diskette 142 | ;Par: r6 - name der Diskette 143 | ;Ret: x - Fehlernummer 144 | ;Des: a,y,r0-r15 145 | :DosNew 146 | jsr SearchDisk 147 | txa 148 | bne :end 149 | LoadW r0,:box 150 | jsr NewDoDlgBox 151 | ldy r0L 152 | cpy #CANCEL 153 | beq :canceled 154 | jsr ClearBAM 155 | lda curType 156 | jsr Get1stDirBlock 157 | LoadW r4,diskBlkBuf 158 | jsr EnterTurbo 159 | txa 160 | bne :20 161 | jsr InitForIO 162 | ::10 jsr ReadBlock 163 | txa 164 | bne :20 165 | ldy #2 166 | ::15 lda #0 167 | sta diskBlkBuf,y 168 | tya 169 | clc 170 | adc #32 171 | tay 172 | bcc :15 173 | jsr WriteBlock 174 | txa 175 | bne :20 176 | lda diskBlkBuf+1 177 | sta r1H 178 | lda diskBlkBuf 179 | sta r1L 180 | bne :10 181 | ::20 jsr DoneWithIO 182 | jmp PutDirHead 183 | ::canceled ldx #CANCEL_ERR 184 | ::end rts 185 | ::box b $81 186 | b $0b,$10,$10 187 | w :t1 188 | b $0c,$10,$20,r6 189 | b $0b,$10,$30 190 | w :t2 191 | b OK 192 | b 4,72 193 | b CANCEL 194 | b 17,72 195 | b NULL 196 | ::t1 b "Inhalt von",NULL 197 | ::t2 b "l|schen?",NULL 198 | 199 | t "Validate+Undelet" 200 | 201 | if 0 202 | :GetWindowStat lda #9 203 | jsr SetDevice 204 | LoadW r6,StatName 205 | jsr FindFile 206 | txa 207 | beq :05 208 | rts 209 | ::05 MoveW $8401,r1 210 | LoadW r7,$6800 211 | LoadW r2,$200 212 | jsr ReadFile 213 | ldy #0 214 | ::loop lda $6800,y 215 | sta SubDir1List,y 216 | dey 217 | bne :loop 218 | ; jsr i_MoveData 219 | ; w $6940,windowsOpen,4 220 | LoadW a2,$6800+$f0 221 | LoadW a3,SubDir4List 222 | LoadB a4L,4 223 | jsr :sub 224 | LoadW a3,SubDir3List 225 | jsr :sub 226 | LoadW a3,SubDir2List 227 | jsr :sub 228 | LoadW a3,SubDir1List 229 | jsr :sub 230 | jsr i_MoveData 231 | w $6940+4,WindowTab,6 232 | jsr i_MoveData 233 | w $6940+4+6,WindowTab+11,6 234 | jsr i_MoveData 235 | w $6940+4+12,WindowTab+22,6 236 | jsr i_MoveData 237 | w $6940+4+18,WindowTab+33,6 238 | jmp RedrawAll 239 | 240 | ::sub ; Par: a2 - DiskName - $10 241 | ; a3 - Zeiger auf SubDirXList 242 | ; a4L WindowNummer + 1 243 | AddVW $10,a2 244 | dec a4L 245 | ldy a4L 246 | lda $6940,y 247 | bne :s05 248 | rts 249 | ::s05 ldy #16 250 | ::loop2 lda (a2),y 251 | sta DiskName,y 252 | dey 253 | bpl :loop2 254 | LoadW r6,DiskName 255 | jsr SearchDisk 256 | txa 257 | bne :err 258 | ldx a4L 259 | jsr GetDiskName 260 | ldy #1 261 | ::loop3 sty a4H 262 | lda (a3),y 263 | bmi :endloop 264 | ldx a4L 265 | sta aktl_Sub,x ; aktl Ebene setzen 266 | jsr GetDirName 267 | txa 268 | bne :err 269 | lda a4L 270 | jsr GetSubName2 271 | ldy a4H 272 | iny 273 | bne :loop3 274 | ::endloop ldx a4L 275 | jsr ReLoad2 276 | ldx a4L 277 | jsr DrawWindowB 278 | ldx #0 279 | rts 280 | ::err inc 53280 281 | rts 282 | :GetDirName ; Errmitteln eines Directory-Namens 283 | ; Par: a - Nummer 284 | ; Ret: Name 285 | sta :num 286 | jsr i_FillRam 287 | w $0b00,$7000 288 | b 0 289 | LoadW r3,$7000 290 | ldy #7 291 | ::dloop lda :data,y 292 | sta r10L,y 293 | dey 294 | bpl :dloop 295 | jsr FindDirFiles 296 | LoadW a5,$7000 297 | ::loop ldy #16 298 | lda (a5),y 299 | beq :endloop 300 | sta r1L 301 | iny 302 | lda (a5),y 303 | sta r1H 304 | LoadW r4,$8000 305 | jsr GetBlock 306 | lda $8000+OFF_DIR_NUM 307 | cmp :num 308 | beq :habsie 309 | AddVW 18,a5 310 | jmp :loop 311 | ::endloop ldx #1 312 | rts 313 | ::habsie ldy #0 314 | ::hloop lda (a5),y 315 | sta Name,y 316 | iny 317 | cpy #16 318 | bne :hloop 319 | ldx #0 320 | rts 321 | ::num b 0 322 | ::data b %10000000,0,144,0,%11000000,11,18,4 323 | endif 324 | 325 | :KonfName 326 | --------------------------------------------------------------------------------