Module für Hypra-Basic

Hypra-Basic, das Listing des Monats der letzten Ausgabe, wächst weiter! Die neuen Befehte befassen sich fast ausschließlich mit der Sprite-Programmierung.

Wie versprochen, hier die nächsten Befehle für Hypra-Basic. Sie sind wieder in eigenständige Module (Listings 1 bis 11) gefaßt. Jedes Modul ist für sich lauffähig. Geben Sie sie mit dem MSE ein. Wie die Befehle im einzelnen einzubauen sind, entnehmen Sie bitte Ausgabe 4, ab Seite 58.

Beachten Sie beim Modul Nummer 12, daß es, um richtig zu funktionieren, in einem Bereich zwischen 49152 und 53247 liegen muß. Denn dieses Modul enthält eigentlich keinen »üblichen« Befehl, vielmehr handelt es sich hier um einen recht komfortablen Sprite-Editor.

(R. Aretz/og)
PROGRAMM : 10ERW .ASS     C000 C06A
-----------------------------------
C000 : 20 9E B7 86 F7 A2 00 86   D0
C008 : F8 18 06 F7 26 F8 E8 E0   1C
C010 : 06 D0 F6 A5 2B 85 5F A5   98
C018 : 2C 85 60 A5 2D 85 5A A5   87
C020 : 2E 85 5B A6 5F CA E0 FF   8C
C028 : D0 02 C6 60 86 5F 18 A5   C6
C030 : 5A 65 F7 85 58 A5 5B 65   D6
C038 : F8 85 59 20 BF A3 18 A9   1A
C040 : 01 65 F7 85 2B A9 08 65   8D
C048 : F8 85 2C 18 A5 2D 65 F7   5A
C050 : 85 2D A5 2E 65 F8 85 2E   2C
C058 : A5 2D 85 2F 85 31 A5 2E   B0
C060 : 85 32 85 30 20 33 A5 60   59
C068 : 00 C0                     24
Listing 1
PROGRAMM : 11ERW .ASS     C000 C09A
-----------------------------------
C000 : 20 9E B7 86 F7 A9 01 18   2F
C008 : CA 30 03 0A 90 FA 85 F8   D5
C010 : 0D 15 D0 8D 15 D0 20 FD   E2
C018 : AE 20 9E B7 8A 18 69 20   C4
C020 : A6 F7 9D F8 07 20 FD AE   0F
C028 : 20 8A AD 20 F7 B7 20 FD   B6
C030 : AE 20 9E B7 A5 F7 0A A8   20
C038 : A5 14 99 00 D0 C8 8A 99   FE
C040 : 00 D0 A5 15 F0 0B A5 F8   A4
C048 : 0D 10 D0 8D 10 D0 4C 5B   B3
C050 : C0 A5 F8 49 FF 2D 10 D0   95
C058 : 8D 10 D0 20 FD AE 20 9E   38
C060 : B7 8A F0 0B A5 F8 0D 1B   86
C068 : D0 8D 1B D0 4C 79 C0 A5   BF
C070 : F8 49 FF 2D 1B D0 8D 1B   57
C078 : D0 20 FD AE 20 9E B7 8A   98
C080 : F0 0B A5 F8 0D 1C D0 8D   8E
C088 : 1C D0 4C 97 C0 A5 F8 49   C2
C090 : FF 2D 1C D0 8D 1C D0 60   05
C098 : 00 C0                     E4
Listing 2
PROGRAMM : 12ERW .ASS     C000 C466
-----------------------------------
C000 : A9 93 20 D2 FF A9 0E 20   9B
C008 : D2 FF A9 05 20 D2 FF A9   D1
C010 : 80 8D 8A 02 A9 18 8D 3D   46
C018 : 03 A0 00 8C 20 D0 8C 21   FA
C020 : D0 98 85 02 8D 10 D0 85   86
C028 : 9B 99 A3 00 C8 C0 04 D0   BD
C030 : F8 A9 FA 8D 00 D0 A9 B4   04
C038 : 8D 01 D0 A2 01 8E 15 D0   49
C040 : A9 00 85 F7 A9 04 85 F8   0C
C048 : A9 00 85 D3 85 D6 20 10   7D
C050 : E5 20 24 EA A2 00 A0 00   58
C058 : A9 2E 91 D1 A9 01 91 F3   88
C060 : C8 C0 18 D0 F3 A5 D1 18   8C
C068 : 69 28 85 D1 85 F3 90 04   C3
C070 : E6 D2 E6 F4 E8 E0 15 D0   A3
C078 : DD A9 00 85 D6 A2 00 86   6A
C080 : 12 A9 19 85 D3 20 10 E5   A8
C088 : A6 12 BD 2A C4 20 D2 FF   85
C090 : E8 86 12 A5 D3 C9 21 D0   A6
C098 : EF E6 D6 E6 D6 A5 D6 C9   16
C0A0 : 0E D0 DE A2 07 20 B6 C1   F2
C0A8 : A0 00 B1 F7 09 80 91 F7   7E
C0B0 : 20 F4 C2 A2 14 20 A5 C3   B0
C0B8 : A9 00 85 C6 20 87 EA A5   D1
C0C0 : C6 F0 F5 AD 77 02 C9 8C   F9
C0C8 : D0 03 4C B5 C1 C9 85 D0   06
C0D0 : 08 A2 00 20 B6 C1 4C B0   39
C0D8 : C0 C9 41 90 0A C9 45 B0   45
C0E0 : 06 20 6D C3 4C B0 C0 C9   AB
C0E8 : 86 90 0E C9 89 B0 0A 38   2A
C0F0 : E9 82 AA 20 B6 C1 4C B0   D5
C0F8 : C0 C9 89 D0 06 20 3D C2   F5
C100 : 4C B0 C0 C9 8A D0 06 20   95
C108 : 3D C2 4C B0 C0 C9 2B D0   78
C110 : 10 20 B0 C3 E6 02 A2 07   EC
C118 : 20 B6 C1 20 24 C4 4C B0   03
C120 : C0 C9 2D D0 10 20 B0 C3   77
C128 : C6 02 A2 07 20 B6 C1 20   78
C130 : 24 C4 4C B0 C0 C9 8B D0   0A
C138 : 0B 20 5F C2 A2 07 20 B6   D4
C140 : C1 4C B0 C0 C9 20 D0 07   5A
C148 : A9 69 20 79 C2 A9 1D C9   5F
C150 : 2E D0 05 20 79 C2 A9 1D   BA
C158 : C9 3D D0 07 A9 69 20 79   2E
C160 : C2 A9 11 C9 3B D0 07 A9   1E
C168 : 2E 20 79 C2 A9 11 C9 5E   64
C170 : D0 07 A9 69 20 79 C2 A9   88
C178 : 91 C9 2A D0 07 A9 2E 20   49
C180 : 79 C2 A9 91 C9 5F D0 07   E0
C188 : A9 69 20 79 C2 A9 9D C9   A1
C190 : 93 D0 03 4C 48 C0 C9 11   AA
C198 : F0 0D C9 91 F0 09 A4 9B   D4
C1A0 : F0 05 48 20 8E C2 68 20   0A
C1A8 : 8E C2 A0 00 B1 F7 09 80   BF
C1B0 : 91 F7 4C B0 C0 60 E0 07   07
C1B8 : F0 0D FE 21 D0 BD 21 D0   34
C1C0 : 30 05 A9 F0 9D 21 D0 A9   75
C1C8 : 00 85 D6 85 12 A9 22 85   F3
C1D0 : D3 20 10 E5 A6 12 BD 62   2B
C1D8 : C4 A8 B9 00 D0 38 E9 F0   B7
C1E0 : AA A9 00 20 CD BD A9 20   15
C1E8 : 20 D2 FF E6 D6 E6 D6 E6   1C
C1F0 : 12 A5 12 C9 04 D0 D6 A9   08
C1F8 : 22 85 D3 20 10 E5 A5 02   A1
C200 : 30 09 18 A9 20 65 02 C9   B9
C208 : 40 90 06 A9 20 A2 00 86   6B
C210 : 02 8D F8 07 A9 00 A6 02   31
C218 : 20 CD BD A9 20 20 D2 FF   12
C220 : A9 20 20 D2 FF E6 D6 E6   9C
C228 : D6 A9 22 85 D3 20 10 E5   56
C230 : A9 00 A6 9B 20 CD BD A9   B1
C238 : 20 20 D2 FF 60 C9 89 D0   39
C240 : 0F AD 1D D0 D0 04 A9 01   5D
C248 : D0 02 A9 00 8D 1D D0 60   49
C250 : AD 17 D0 D0 04 A9 01 D0   0A
C258 : 02 A9 00 8D 17 D0 60 A5   A5
C260 : 9B D0 09 A9 17 8D 3D 03   B4
C268 : A9 01 D0 07 A9 18 8D 3D   B3
C270 : 03 A9 00 85 9B 8D 1C D0   31
C278 : 60 A4 9B D0 03 91 F7 60   89
C280 : A0 00 AD 40 03 91 F7 C8   C2
C288 : AD 41 03 91 F7 60 48 A0   AE
C290 : 00 B1 F7 29 7F 91 F7 68   C1
C298 : C9 11 D0 15 A6 A3 E8 E0   AD
C2A0 : 15 10 0D 86 A3 18 A5 F7   53
C2A8 : 69 28 90 02 E6 F8 85 F7   C6
C2B0 : 60 C9 1D D0 11 A6 A4 E8   01
C2B8 : EC 3D 03 10 08 86 A4 E6   1B
C2C0 : F7 D0 02 E6 F8 60 C9 91   5A
C2C8 : D0 13 A6 A3 CA 30 0D 86   AF
C2D0 : A3 38 A5 F7 E9 28 B0 02   9E
C2D8 : C6 F8 85 F7 60 C9 9D D0   E7
C2E0 : 12 A6 A4 CA 30 0D 86 A4   97
C2E8 : 38 A5 F7 E9 01 B0 02 C6   59
C2F0 : F8 85 F7 60 A5 02 85 F9   29
C2F8 : A9 00 85 FA A2 00 18 06   F9
C300 : F9 26 FA E8 E0 06 D0 F6   57
C308 : 18 A5 F9 69 00 85 F9 A5   FE
C310 : FA 69 08 85 FA A9 00 85   7A
C318 : 4E A9 04 85 4F A9 00 85   3A
C320 : 52 85 51 A2 00 A0 00 84   EC
C328 : 50 B1 4E C9 2E 38 F0 05   90
C330 : 38 C9 5F D0 01 18 26 50   49
C338 : C8 C0 08 D0 EC A4 51 A5   01
C340 : 50 91 F9 18 A9 08 65 4E   E7
C348 : 90 02 E6 4F 85 4E E6 F9   D7
C350 : D0 02 E6 FA E8 E0 03 D0   7D
C358 : CC 18 A9 10 65 4E 90 02   AC
C360 : E6 4F 85 4E E6 52 A5 52   55
C368 : C9 15 D0 B7 60 8D FF 05   63
C370 : C9 41 D0 0A A9 5F 8D 40   9B
C378 : 03 A9 69 8D 41 03 C9 42   34
C380 : D0 08 A9 69 8D 40 03 8D   EE
C388 : 41 03 C9 43 D0 0A A9 69   FC
C390 : 8D 40 03 A9 5F 8D 41 03   A1
C398 : C9 44 D0 08 A9 2E 8D 40   7B
C3A0 : 03 8D 41 03 60 A0 00 EA   FB
C3A8 : EA C8 D0 FB CA D0 F6 60   7A
C3B0 : A9 01 85 12 A0 00 B1 F7   3E
C3B8 : 29 7F 91 F7 A2 00 E0 02   B6
C3C0 : F0 1A A9 00 85 4E A9 80   9A
C3C8 : 85 4F 18 A9 F8 65 4E 85   2F
C3D0 : 4E A9 01 65 4F 85 4F E8   10
C3D8 : E4 02 D0 EE A9 00 85 50   21
C3E0 : A9 04 85 51 78 A5 01 48   60
C3E8 : A9 36 85 01 A2 00 A0 00   DB
C3F0 : A5 12 F0 07 B1 50 91 4E   3C
C3F8 : 18 90 04 B1 4E 91 50 C8   D4
C400 : C0 18 D0 EC 18 A5 50 69   61
C408 : 28 90 02 E6 51 85 50 18   88
C410 : A5 4E 69 18 90 02 E6 4F   8D
C418 : 85 4E E8 E0 15 D0 CF 68   02
C420 : 85 01 58 60 A9 00 85 12   1D
C428 : F0 92 C8 49 4E 54 45 52   FE
C430 : 20 20 C6 41 2E D2 45 47   57
C438 : 20 C1 C6 41 2E D2 45 47   30
C440 : 20 C2 C6 41 2E D2 45 47   B8
C448 : 20 C3 C2 4C 4F 43 4B 20   00
C450 : 20 20 CD 55 4C 54 49 43   B1
C458 : 4F 4C C6 41 52 42 45 20   34
C460 : 20 20 21 25 26 27         47
Listing 3
PROGRAMM : 13ERW .ASS     C000 C028
-----------------------------------
C000 : 20 9E B7 86 F7 20 FD AE   04
C008 : 20 9E B7 8A A4 F7 99 27   75
C010 : D0 20 FD AE 20 9E B7 8A   30
C018 : 8D 25 D0 20 FD AE 20 9E   83
C020 : B7 8A 8D 26 D0 60 00 C0   D6
Listing 4
PROGRAMM : 14ERW .ASS     C000 C050
-----------------------------------
C000 : 20 9E B7 A9 01 85 F7 A9   02
C008 : 03 85 02 CA 30 05 06 F7   DB
C010 : 18 90 F8 20 FD AE 20 9E   C5
C018 : B7 8A A6 02 9D 3C 03 C6   54
C020 : 02 10 F0 A5 F7 49 FF 85   F0
C028 : F8 A0 00 B9 4A C0 AA B9   70
C030 : 3C 03 F0 08 BD 00 D0 05   54
C038 : F7 18 90 05 BD 00 D0 25   69
C040 : F8 9D 00 D0 C8 C0 04 D0   65
C048 : E2 60 1C 17 1D 1B 00 C0   71
Listing 5
PROGRAMM : 15ERW .ASS     C000 C22A
-----------------------------------
C000 : 78 A5 56 8D 15 03 18 A5   A7
C008 : 55 69 8A 90 03 EE 15 03   C8
C010 : 8D 14 03 20 9E B7 8A F0   20
C018 : 14 A9 F8 8D 12 D0 AD 11   71
C020 : D0 29 7F 8D 11 D0 A9 81   58
C028 : 8D 1A D0 58 60 EA A9 31   68
C030 : 8D 14 03 A9 EA 8D 15 03   33
C038 : A9 00 8D 1A D0 58 60 A9   2D
C040 : 00 8D 9B 02 20 79 00 C9   8F
C048 : 30 38 D0 01 18 2E 9B 02   4E
C050 : 20 73 00 C9 2C F0 0C C9   71
C058 : 30 38 D0 01 18 2E 9B 02   5E
C060 : 4C 50 C0 20 73 00 20 9E   FD
C068 : B7 8E 9E 02 8A F0 1A 20   27
C070 : FD AE 20 9E B7 8E EF 03   56
C078 : A2 00 8E EE 03 20 FD AE   22
C080 : 20 9E B7 8E EC 03 8E ED   AC
C088 : 03 60 AD 19 D0 8D 19 D0   C9
C090 : 30 07 AD 0D DC 58 4C 98   44
C098 : C1 A5 F8 48 A5 F7 48 A5   F9
C0A0 : 01 48 A9 35 85 01 AD 9B   25
C0A8 : 02 8D 9C 02 A2 00 8E 9D   78
C0B0 : 02 4E 9C 02 B0 03 4C 75   80
C0B8 : C1 DE F4 03 F0 03 4C 75   C9
C0C0 : C1 BD 1A C2 85 F8 A9 00   05
C0C8 : 85 F7 A8 B1 F7 9D F4 03   EF
C0D0 : C8 38 B1 F7 E9 01 91 F7   FC
C0D8 : D0 03 20 DF C1 A0 02 B1   BA
C0E0 : F7 A8 B1 F7 C9 01 D0 0A   93
C0E8 : 8A 0A AA E8 DE 00 D0 4C   09
C0F0 : 75 C1 C9 02 D0 0E 8A 0A   B4
C0F8 : AA FE 00 D0 D0 03 20 C3   69
C100 : C1 4C 75 C1 C9 03 D0 0A   89
C108 : 8A 0A AA E8 FE 00 D0 4C   2B
C110 : 75 C1 C9 04 D0 13 8A 0A   3D
C118 : AA DE 00 D0 D0 57 A9 FF   BA
C120 : 9D 00 D0 20 D0 C1 4C 75   2D
C128 : C1 C9 05 D0 0F 8A 0A AA   EC
C130 : E8 DE 00 D0 A9 02 AE 9D   42
C138 : 02 4C F2 C0 C9 06 D0 0F   63
C140 : 8A 0A AA E8 FE 00 D0 A9   1D
C148 : 02 AE 9D 02 4C F2 C0 C9   3C
C150 : 07 D0 0F 8A 0A AA E8 FE   6C
C158 : 00 D0 A9 04 AE 9D 02 4C   24
C160 : 12 C1 C9 08 D0 0F 8A 0A   8A
C168 : AA E8 DE 00 D0 A9 04 AE   06
C170 : 9D 02 4C 12 C1 AE 9D 02   70
C178 : E8 8E 9D 02 E0 08 F0 03   67
C180 : 4C B1 C0 18 AD 12 D0 69   59
C188 : 14 8D 12 D0 68 85 01 68   89
C190 : 85 F7 68 85 F8 4C 81 EA   A9
C198 : AD 9E 02 F0 23 CE EC 03   95
C1A0 : D0 1E AD ED 03 8D EC 03   FF
C1A8 : EE EE 03 AD EE 03 CD EF   A2
C1B0 : 03 D0 0A A9 00 8D EE 03   01
C1B8 : A9 1F 8D F8 07 EE F8 07   4D
C1C0 : 4C 31 EA AE 9D 02 BD 22   5A
C1C8 : C2 0D 10 D0 8D 10 D0 60   8C
C1D0 : AE 9D 02 BD 22 C2 49 FF   E2
C1D8 : 2D 10 D0 8D 10 D0 60 A0   3D
C1E0 : 02 18 A9 02 71 F7 B0 0D   4D
C1E8 : 91 F7 A8 88 B1 F7 F0 05   59
C1F0 : A0 01 91 F7 60 C8 B1 F7   77
C1F8 : F0 0F A0 03 B1 F7 A0 01   58
C200 : 91 F7 A0 02 A9 04 91 F7   E6
C208 : 60 AE 9D 02 BD 22 C2 49   F1
C210 : FF 2D 9B 02 8D 9B 02 4C   23
C218 : FA C1 A0 A1 A2 A3 A4 A5   74
C220 : A6 A7 01 02 04 08 10 20   1C
C228 : 40 80                     A3
Listing 6
PROGRAMM : 16ERW .ASS     C000 C04A
-----------------------------------
C000 : 20 9E B7 86 02 20 FD AE   A4
C008 : 20 9E B7 BD 40 C0 85 F7   2D
C010 : A6 02 D0 0D 20 FD AE 20   7A
C018 : 9E B7 BD 40 C0 05 F7 85   28
C020 : F7 20 FD AE 20 8A AD 20   CA
C028 : F7 B7 A5 02 18 69 1E AA   3F
C030 : BD 00 D0 C5 F7 D0 08 A9   54
C038 : 00 9D 00 D0 4C A3 A8 60   66
C040 : 01 02 04 08 10 20 40 80   49
C048 : 00 C0                     A3
Listing 7
PROGRAMM : 17ERW .ASS     C000 C025
-----------------------------------
C000 : A9 00 8D 15 D0 AA A4 7A   99
C008 : D0 02 C6 7B C6 7A 20 73   A2
C010 : 00 C9 31 38 F0 01 18 2E   1C
C018 : 15 D0 E8 E0 08 D0 EF 20   F2
C020 : 73 00 60 00 C0            F7
Listing 8
PROGRAMM : 18ERW .ASS     C000 C050
-----------------------------------
C000 : 20 9E B7 86 F7 8A 0A 85   35
C008 : F8 20 FD AE 20 8A AD 20   B3
C010 : F7 B7 20 FD AE 20 9E B7   80
C018 : 8A A6 F8 E8 9D 00 D0 CA   03
C020 : A5 14 9D 00 D0 A6 F7 BD   D4
C028 : 46 C0 48 0D 15 D0 8D 15   BA
C030 : D0 68 A4 15 F0 07 0D 10   9C
C038 : D0 8D 10 D0 60 49 FF 2D   98
C040 : 10 D0 8D 10 D0 60 01 02   36
C048 : 04 08 10 20 40 80 00 C0   E2
Listing 9
PROGRAMM : 19ERW .ASS     C000 C11D
-----------------------------------
C000 : 20 9E B7 8A F0 0B A9 0F   DB
C008 : 0D 1B D0 8D 1B D0 4C 1B   28
C010 : C0 A9 0F 49 FF 2D 1B D0   09
C018 : 8D 1B D0 20 FD AE 20 9E   7E
C020 : B7 8A F0 0B A9 0F 0D 1C   39
C028 : D0 8D 1C D0 4C 39 C0 A9   C5
C030 : 0F 49 FF 2D 1C D0 8D 1C   40
C038 : D0 20 FD AE 20 9E B7 8A   58
C040 : F0 0B A9 0F 0D 1D D0 8D   1A
C048 : 1D D0 4C 57 C0 A9 0F 49   F3
C050 : FF 2D 1D D0 8D 1D D0 20   8C
C058 : FD AE 20 9E B7 8A F0 0B   32
C060 : A9 0F 0D 17 D0 8D 17 D0   2F
C068 : 4C 75 C0 A9 0F 49 FF 2D   6A
C070 : 17 D0 8D 17 D0 60 20 9E   03
C078 : B7 D0 03 4C 0E C1 A9 0F   95
C080 : 0D 15 D0 8D 15 D0 20 FD   52
C088 : AE 20 8A AD 20 F7 B7 A5   8A
C090 : 14 8D 3C 03 A5 15 8D 3D   8E
C098 : 03 20 FD AE 20 9E B7 86   E3
C0A0 : F9 AD 1D D0 A2 30 C9 0F   C2
C0A8 : F0 02 A2 18 86 F7 AD 17   52
C0B0 : D0 A2 28 C9 0F F0 02 A2   DA
C0B8 : 14 86 F8 A2 00 A0 00 F0   89
C0C0 : 11 AD 3C 03 85 14 AD 3D   41
C0C8 : 03 85 15 18 A5 F9 65 F8   88
C0D0 : 85 F9 A5 14 9D 00 D0 A5   A6
C0D8 : 15 F0 0C B9 19 C1 0D 10   94
C0E0 : D0 8D 10 D0 4C F2 C0 B9   68
C0E8 : 19 C1 49 FF 2D 10 D0 8D   E6
C0F0 : 10 D0 E8 A5 F9 9D 00 D0   85
C0F8 : E8 18 A5 14 65 F7 90 02   35
C100 : E6 15 85 14 C8 C0 02 F0   D1
C108 : B8 C0 04 D0 C5 60 A9 0F   60
C110 : 49 FF 2D 15 D0 8D 15 D0   B6
C118 : 60 01 02 04 08            50
Listing 10
PROGRAMM : 20ERW .ASS     C000 C063
-----------------------------------
C000 : 20 9E AD 20 82 B7 A6 22   A3
C008 : A4 23 20 BD FF 20 FD AE   54
C010 : 20 9E B7 A0 01 20 BA FF   7D
C018 : A9 00 20 D5 FF 86 F7 84   A1
C020 : F8 60 20 9E AD 20 82 B7   7A
C028 : A6 22 A4 23 20 BD FF 20   9D
C030 : FD AE 20 9E B7 20 BA FF   C8
C038 : 20 FD AE 20 8A AD 20 F7   8D
C040 : B7 A5 14 85 F7 A5 15 85   8C
C048 : F8 20 FD AE 20 8A AD 20   F3
C050 : F7 B7 A6 14 E8 D0 02 E6   3A
C058 : 15 A4 15 A9 F7 20 D8 FF   1E
C060 : 60 20 32                  EB
Listing 11
5 iffg<>0then10
7 fg=1:load"basic .ass",8,1
10 dima%(100):an=1:md=1:poke53280,0:poke53281,0:f=1:poke646,f:mp=12600
15 poke55,56:poke56,49
20 hl$="                                       "
30 h$="{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}"
40 rem****hauptmenue*******
50 printchr$(147)tab(9)"{rvon} hauptmenue {rvof} hypra-basic":printh$:an=1:md=1
60 print"folgende optionen sind moeglich:":printh$:print
70 printtab(5)"{rvon}[f1]{rvof} erweiterung erstellen
80 printtab(5)"{down}{rvon}[f3]{rvof} erweiterung abspeichern
90 printtab(5)"{down}{rvon}[f5]{rvof} parameter eingeben
100 printtab(5)"{down}{rvon}[f7]{rvof} parameter anzeigen"
110 printtab(5)"{down}{rvon}[f2]{rvof} protokoll":print:printh$
115 printtab(10)"bitte waehlen sie !!"
120 poke198,0:wait198,1:gets$:s=asc(s$)
130 ifs<133ors>137then120
140 s=s-132
150 onsgosub210,410,600,800,11000
160 goto50
200 rem*****erweiterungerstellen***
210 gosub1010
220 poke211,8:poke214,0:sys58640:print"sind sie sicher ? (j/n)"
230 poke198,0:wait198,1:gets$:ifs$<>"j"oran=0thenreturn
240 gosub10010
250 printchr$(147)"sie muessen jetzt zwei speicherbereiche"
260 print"auswaehlenen":print:print"1) bereich fuer befehlstabelle.dieser"
270 printtab(3)"darf nur im 'normalen ram' liegen.
280 print:print"2) bereich fuer die erweiterung.hier
290 printtab(3)"ist der speicherbereich beliebig.":print
292 print"falls beide programmteile nacheinander"
293 print"stehen sollen,bitte bei 'befehle' nur"
294 print"<return> druecken.":printh$
295 print"die befehlstabelle braucht";hg" bytes":printh$
300 input"1) tabelle:";sd$:sd=val(sd$):ifsd=0then250
305 printtab(12)sd+hg
310 input"{up}2) befehle:";ma$:ma=val(ma$):ms=ma
320 ifma=0thenreturn
330 printchr$(147)"erweiterung wird generiert":print
340 la=sd+162+ha:gosub10410
350 forki=1toan:mo%=a%(ki):printmo%,
360 hm=int(mo%/70)+1:ifmd<>hmthengosub10210
370 gosub10660:next:return
400 rem*****programmabspeichern**
410 printchr$(147)tab(10)"erweiterung speichern":printh$
420 print"beim abspeichern koennen zwei verschie- dene";
430 print" files abgelegt werden.":print
440 print"1) befehlstabelle"
450 print"2) module":print
460 print"dies ist erforderlich,wenn beide pro-"
470 print"grammteile unabhaengig voneinander
480 print"existieren. falls sie beide programme"
490 print"gemeinsam generiert haben, geben sie un-";
500 print"ter module einen leerstring ein.":printh$
510 input"tabelle:";na$
520 input"befehle:";nb$:printh$
525 print"sind sie sicher,dass die richtige dis- "
527 print"kette im laufwerk ist? (j/n)"
528 poke198,0:wait198,1:geta$:ifa$="n"thenreturn
530 ifnb$=""thensys(mp+362)"@:"+na$,8,sd,ma+1:return
540 sys(mp+362)"@:"+na$,8,sd,bt+1
550 sys(mp+229)ms,ma+1,mp+2000
560 close1:open1,8,1,"@:"+nb$:print#1,chr$(ms-int(ms/256)*256);chr$(ms/256);
570 n=ma+1-ms
580 fori=0ton-1:print#1,chr$(peek(mp+2000+i));:next:close1
590 return
600 rem*******parametereingeben***
610 printchr$(147)tab(10)"parameter eingeben":printh$
615 input"modulnummer     :";mo$
620 input"wieviele befehle:";ab
630 printh$
640 fori=1toab
650 poke211,0:poke214,5:sys58640:printi"{left}) ";:input"name:";na$(i):printh$
660 input"    startadresse:";as$(i)
670 input"    endadresse  :";ae$(i)
680 input"    datenbytes  :";ad$(i)
690 printh$:next
700 printtab(10)"sind sie sicher (j/n)"
710 poke198,0:wait198,1:geta$:ifa$="n"thenreturn
720 close1:open1,8,1,"@:"+mo$+"modul,s"
730 print#1,str$(ab)
740 fori=1toab:print#1,na$(i):print#1,as$(i):print#1,ae$(i):print#1,ad$(i)
750 next:close1:return
800 rem******parameteranzeigen****
810 printchr$(147)tab(10)"parameter anzeigen":printh$
820 input"von modulnummer:";m1
830 input"bis modulnummer:";m2:printh$
840 fork=m1tom2:poke214,5:sys58640
845 fori=1to15:printhl$:next
850 poke211,0:poke214,5:sys58640
860 mo%=k:gosub10530:print"modulnummer:"k:print"anzahl der befehle:"ab:printh$
870 fori=1toab
880 poke214,9:sys58640:printi"{left}) name:"na$(i);left$(hl$,10):print
890 print"startadresse:"as(i);left$(hl$,10)
900 print"endadresse  :"ae(i);left$(hl$,10)
910 print"datenbytes  :"ad(i);left$(hl$,10)
930 printh$:printtab(6)"weiter mit beliebiger taste"
940 poke198,0:wait198,1:next:next:return
999 end
1000 rem*****moduleauswaehlen*****
1010 printchr$(147)tab(10)"module auswaehlen!"
1020 printh$
1040 print"bitte modulnummern eingeben:"
1050 printh$
1060 fori=1to19:printhl$:next
1070 printh$:printtab(5)"{rvon} e {rvof} = ende         {rvon} f {rvof} = fehler";
1080 poke211,30:poke214,2:sys58640:poke19,1:inputmn$:poke19,0:print
1090 ifleft$(mn$,1)="e"thenan=an-1:return
1100 ifleft$(mn$,1)="f"andan>1thenan=an-1:mn$="   ":goto1130
1110 iflen(mn$)>3orval(mn$)=0then1080
1120 a%(an)=val(mn$)
1130 z=int(an/10)+4:s=(an-(z-4)*10)*4:poke211,s:poke214,z:sys58640:printmn$
1150 ifmn$<>"   "thenan=an+1
1160 goto1080
10000 rem****laengedecodebestimmen*
10010 hg=0:ha=0:ab=0:zb=0:forji=1toan
10015 hm=int(a%(ji)/70)+1:ifhm<>mdthengosub10210
10020 close1:open1,8,0,mid$(str$(a%(ji)),2,4)+"modul,s"
10030 input#1,a$:h=val(a$):zb=zb+h
10040 forj=1toh
10050 input#1,h1$,h2$(j),h3$(j),h4$(j):ha=ha+len(h1$)+6
10060 next
10070 hb=(val(h3$(h))+val(h4$(h)))-val(h2$(1)):ifhb>hgthenhg=hb
10090 close1:next
10100 hg=int((hg/256)+1)*256:hg=hg+ha+170:return
10200 rem****moduldiskausgeben****
10210 h1=peek(211):h2=peek(214)
10212 forx=1984to2023:pokex-1156,peek(x):pokex,32:x1=x1+1:next
10215 poke211,0:poke214,24:sys58640
10220 printtab(3)"{gry2}bitte moduldisk nr."hm" einlegen! ";
10230 md=hm:poke646,f:poke198,0:wait198,1
10240 forx=1984to2023:pokex,peek(x-1156):pokex+54272,f:next:poke211,h1
10250 poke214,h2:sys58640:return
10300 rem******programmladen*****
10310 hi=int(la/256):lo=la-256*hi
10330 sys(57812)na$,8,0:poke780,0:poke781,lo:poke782,hi:sys65493
10340 return
10400 rem******decoderoutineholen**
10410 h=la:la=sd:sys(mp+229)13025,13184,sd
10430 la=h:h=sd+11:hi=int(h/256):lo=h-256*hi:pokesd+1,lo:pokesd+6,hi
10440 h=sd+161:hi=int(h/256):lo=h-256*hi:pokesd+25,lo:pokesd+29,hi
10460 hi=int(la/256):lo=la-256*hi:pokesd+103,lo:pokesd+107,hi
10470 pokela-1,0:bt=sd+161:return
10500 rem*****parameterladen*****
10530 fl$=mid$(str$(mo%)+"modul,s,r",2,13)
10540 close2:open2,8,2,fl$
10550 input#2,a$:ab=val(a$)
10560 forji=1toab:input#2,na$(ji):input#2,a$:as(ji)=val(a$)
10570 input#2,a$:ae(ji)=val(a$)
10580 input#2,a$:ad(ji)=val(a$)
10590 next
10600 close2:return
10610 rem****befehlstabellebearbeiten**
10615 yy=len(na$(i)):pokebt,yy
10620 fork=1toyy:pokebt+k,asc(mid$(na$(i),k,1)):next:bt=bt+k
10630 hi=int(pz/256):lo=pz-256*hi:pokebt,lo:pokebt+1,hi
10635 hi=int(ma/256):lo=ma-256*hi:pokebt+2,lo:pokebt+3,hi
10636 le=ae(ab)+ad(ab)-as(1):pokebt+4,int(le/256):bt=bt+5
10640 return
10650 rem**********verschieb**********
10660 gosub10530:a$=str$(mo%)+"erw .ass":na$=mid$(a$,2,13):gosub10310:pz=la
10670 n1=pz:fori=1toab:gosub10610:n=as(i)
10680 sysmp,pz:a=peek(247)
10690 ifa<>3then10740
10700 a1=peek(249)+256*peek(250)
10710 ifa1<as(1)ora1>ae(ab)+ad(ab)then10750
10720 a1=a1-as(1):a1=n1+a1:hi=int(a1/256):lo=a1-256*hi
10730 pokepz+1,lo:pokepz+2,hi
10740 ifa=0thena=1
10750 pz=pz+a:n=n+a:ifn<>ae(i)+1then10680
10760 pz=pz+ad(i):next
10770 sys(mp+229)la,pz,ma
10780 ma=ma+le+1:return
11000 rem******protokoll********
11010 printchr$(147)tab(12)"protokoll":printh$
11020 gn=3
11025 close1:open1,gn
11030 print#1,"erweiterung hypra-basic version 1.1":print#1,h$
11040 print#1,"anzahl der befehle:         ";zb
11050 print#1,"startadresse befehlstabelle:";sd
11060 print#1,"startadresse der module:    ";ms:print#1,h$
11070 print#1,"bytes fuer tabelle:         ";hg
11080 print#1,"bytes fuer befehle:         ";ma-ms:print#1,h$
11082 print#1,"die erweiterung enthaelt folgende module":print#1
11085 fori=1toki-1:print#1,a%(i);:next:print#1
11090 iffk=1thenfk=0:gn=3:close1:return
11100 print#1,h$:print#1,"  ausgabe auf drucker (j/n)"
11110 poke198,0:wait198,1:geta$:ifa$="n"thenclose1:return
11120 gn=4:fk=1:close1:goto11025
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →